VHDL代码是:
next_x(7 downto 0) <= rec_data;
这条线做什么?什么是等同的陈述?该行在一个过程中,并在condition_1为真时执行。
我的猜测是这句话会更新next_x吗?
有人可以解释一下这个陈述并找到相应的,如果有的话吗?
感谢。
答案 0 :(得分:2)
由于这是信号分配,因此计划 next_x
在流程完成后具有rec_data
的值。需要注意的最大警告是,在计划此更改的过程中随后读取信号next_x
将返回此信号的旧值 - 此更改尚未生效。您可以将其视为与过程中的所有其他信号分配同时执行,但允许同一信号的多个分配,只有最后一个将生效。
另一方面,变量赋值立即生效,因此过程中所有后续语句都可以看到更改,就像命令式编程语言一样。
等效变量分配为next_x(7 downto 0) := rec_data;
,但next_x
必须是变量,而不是信号。
以下是signal versus variable assignment的完整摘要。