如何使用 VHDL 在组合逻辑中并发执行语句



我想知道如何使用VHDL在组合逻辑中并发执行信号分配语句?例如,对于下面的代码,这三个语句应该同时运行。我怀疑的是,当我运行模拟时,"y"输出信号如何立即改变,尽管如果语句同时运行,"y"不会看到"wire1"和"wire2"的效果(仅当语句执行多次时(。

entity test1 is port (a, b, c, d : in bit; y : out bit);
end entity test1;
------------------------------------------------------
architecture basic of test1 is
signal wire1, wire2 : bit;
begin
    wire1 <= a and b;
    wire2 <= c and d;
    y <= wire1 and wire2;
end architecture basic;

由于VHDL用于仿真数字电路,因此其工作原理必须与实际电路类似,其中(在仿真中通常忽略的小延迟之后(电路连续跟随其输入。

我假设您想知道实现如何实现此行为:

模拟器将跟踪哪个信号取决于哪个其他符号,并在其中一个输入发生变化时重新计算表达式。

因此,当a发生变化时,wire1将被更新,进而触发更新 y .只要需要组合更新,这种情况就会继续。因此,在模拟中,更新确实井井有条,尽管没有经过模拟时间。此类更新之间的"时间"通常称为"增量周期"。

最新更新