我想知道如何使用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
.只要需要组合更新,这种情况就会继续。因此,在模拟中,更新确实井井有条,尽管没有经过模拟时间。此类更新之间的"时间"通常称为"增量周期"。