我正在练习VHDL,我有一个关于“简单”语句的基本问题,它不需要进程。
我想知道它们之间的区别
c< = a和b;声明在哪里……
您可以将任何VHDL单线性视为隐含过程,其中RHS上的参数为< =在灵敏度列表中。 这就是为什么你写的两个代码片段实际上是等价的。
是的,这两个描述是等价的。
并发信号分配 c <= a and b 在任何参数的每次更新时评估( a 要么 b ),每次更新敏感度列表中的任何参数时,该过程也将评估( a 要么 b )。
c <= a and b
a
b
在简单的例子中,它不需要使用 process ,但对于更复杂的表达, process 具有控制结构的优点 if 和 for 可以使用,这在并发信号分配中是不可能的。此外,对于顺序逻辑a process 是必须的。
process
if
for