我正在练习VHDL,我有一个基本问题,即不需要过程的“简单”语句。
我想知道两者之间的区别
c <= a and b;
该语句不在流程内部,而是在架构开始后编写的,并且
process(a,b)
begin
c <= a and b;
end process;
这些结果会产生相同的结果吗? Ty:)
答案 0 :(得分:2)
是的,两个描述是等效的。
并发信号分配c <= a and b
在每次更新任何自变量(a
或b
)时进行评估,并且该过程还将在每次更新自变量中的任何自变量时进行评估敏感度列表已更新(a
或b
)。
在简单的示例中,不需要使用process
,但是对于更复杂的表达式,process
的优点是可以像if
和for
这样的控件结构使用并发信号分配中不可能直接使用。另外,对于顺序逻辑,需要process
。
答案 1 :(得分:0)
您可以将任何VHDL衬板视为一个隐含过程,其灵敏度列表中RHS上的参数<=。 这就是为什么您编写的两个代码片段实际上都等效的原因。