process is
variable a_var, b_var : std_logic ?
begin
wait until ( rising_edge ( clk ) );
a_var := x or y ;
b_var := a_var nor z ;
res <= b_var xor y ;
end process:
在这种情况下,IS是在定义之前使用的变量b_var吗?如果是,可以解释原因。
答案 0 :(得分:1)
不,你已经在variable
行清楚地定义了它。在此过程中使用它之前,您还设置了b_var
的值,这意味着不会为它推断触发器。
您的代码相当于
FOO: process(clk)
begin
if rising_edge(clk) then
res <= ((x or y) nor z) xor y;
end if;
end process FOO;
(我忽略了代码中的一些语法错误,假设它们只是错别字。)