在定义之前使用变量

时间:2011-08-15 08:18:23

标签: vhdl

   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吗?如果是,可以解释原因。

1 个答案:

答案 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;

(我忽略了代码中的一些语法错误,假设它们只是错别字。)