2

我正在练习 VHDL,我有一个关于不需要过程的“简单”语句的基本问题。

我想知道两者的区别

c <= a and b;

语句不在进程内,只是在架构开始后编写,并且

process(a,b)
begin
    c <= a and b;
end process;

这些结果会产生同样的结果吗?泰:)

4

2 回答 2

2

是的,这两种描述是等价的。

c <= a and b每次更新任何参数(a或)时都会评估并发信号分配b,并且该过程还将在每次更新敏感度列表中的任何参数时评估(ab)。

在这个简单的例子中,它不需要使用 a process,但对于更复杂的表达式,process它的优点是可以使用控制结构iffor这在并发信号分配中是不可能直接实现的。此外,对于时序逻辑,aprocess是必需的。

于 2018-10-03T08:20:46.517 回答
0

您可以将任何 VHDL 单行视为隐含过程,其中 RHS 上的参数为 <= 在敏感性列表中。这就是为什么您编写的两个代码片段实际上是等效的。

于 2018-10-13T15:42:32.150 回答