VHDL入门基础——信号

VHDL基础——信号赋值篇

信号与变量不同,对变量的赋值是立即执行的并且对后续语句有影响。对信号的赋值虽然也是立即执行的,但信号的带入却是有“延时”的,也就是,虽然赋值语句立即生效,但是其新值对于后续语句的作用效果需要下一个周期才能体现,此时的周期仍然使用原值。因此进程中如果存在变量,那么进程语句可视为顺序执行,如果没有变量可理解为所有语句是并行执行的。
用一段小程序来解释:
VHDL入门基础——信号
VHDL入门基础——信号
在两个进程中,对1和2进行了调换,如果是顺序执行则仿真结构结果应该不同,但实际上仿真结果是相同的,所以说实际上进程中的语句是并行执行的,也就是同时进行的,在第一个进程中由于A=1,B立马被赋值为4,但是B=4并不立刻被代入,第二个if被判断时B依然为0,因此在这一个周期中A=1其实是不变的,必须等到下个周期才变为5.