其实际目的是什么null
VHDL 中的声明?考虑以下代码
1-
CASE s IS
BEGIN
WHEN 0 => y <= 0;
WHEN 1 => NULL;
END CASE;
2-
CASE s IS
BEGIN
WHEN 0 => y <= 0;
END CASE;
在第二个代码中,由于没有赋值s=1
, then y
保留其先前的值。不是吗?所以,我认为在这两种情况下,合成器都会放置一个触发器来保持先前的值y
.
我引用IEEE1076-2008:
10.14 空语句
null 语句不执行任何操作。
null_statement ::= [ 标签 : ] null ;
null 语句的执行除了传递到下一条语句之外没有任何影响。
注意:空语句可用于明确指定当某些条件为真时不执行任何操作,尽管为此(或任何其他)目的从来都不是强制性的。这在与 case 语句结合使用时特别有用,其中 case 表达式的所有可能值都应包含在选项中;对于某些选择,可能不需要采取任何行动。
VHDL 语言要求 case 语句中的每个选择都有一个语句:否则综合会报错 http://www.edaboard.com/thread150865.html. 实施示例: http://www.vhdl.renerta.com/source/vhd00045.htm
case OPCODE is
when "001" => TmpData := RegA and RegB;
when "010" => TmpData := RegA or RegB;
when "100" => TmpData := not RegA;
when others => null;
end case;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)