VHDL中两个连续信号分配(一个带延迟)如何工作

问题描述 投票:0回答:1

我在一个过程中有一段这样的代码:

A <= '1';
A <= '0' after 5 sec;

是否先将A设置为1,然后在5秒钟后将A设置为0?如果没有,我应该如何调整?

vhdl fpga
1个回答
0
投票

没有它是这样做的:

i)将A的设置安排为'1' 在下一个模拟(或增量)循环中>]。

ii)不。再三考虑,不要那样做。 代替

,在5秒钟内安排A'0'的设置。

在VHDL中执行信号分配运算符

时,它立即驱动信号。相反,它计划对信号的更改(称为event)在将来的某个时间进行操作。如果未指定延迟,则事件将在下一个模拟(或增量)周期上执行。如果VHDL在处理任何先前的信号之前遇到另一个与同一信号相关的信号,则相应的事件(通常)将被删除并替换为新的事件。

这听起来很愚蠢,但这是有充分理由的。将代码替换为:

A <= '1';
wait for 5 sec;
A <= '0';
© www.soinside.com 2019 - 2024. All rights reserved.