这个VHDL赋值的等价声明是什么?

时间:2011-11-01 18:07:22

标签: vhdl

VHDL代码是:

next_x(7 downto 0) <= rec_data;

这条线做什么?什么是等同的陈述?该行在一个过程中,并在condition_1为真时执行。

我的猜测是这句话会更新next_x吗?

有人可以解释一下这个陈述并找到相应的,如果有的话吗?

感谢。

1 个答案:

答案 0 :(得分:2)

由于这是信号分配,因此计划 next_x在流程完成后具有rec_data的值。需要注意的最大警告是,在计划此更改的过程中随后读取信号next_x将返回此信号的旧值 - 此更改尚未生效。您可以将其视为与过程中的所有其他信号分配同时执行,但允许同一信号的多个分配,只有最后一个将生效。

另一方面,变量赋值立即生效,因此过程中所有后续语句都可以看到更改,就像命令式编程语言一样。

等效变量分配为next_x(7 downto 0) := rec_data;,但next_x必须是变量,而不是信号。

以下是signal versus variable assignment的完整摘要。