当我在这样的过程中为信号F分配信号B的补码时:
architecture V1 of E is
signal B: bit;
begin
process (A) begin
B<=A;
F<=not b;
end process;
end architecture;
则F将在第一周期中保持B的旧的否定值。
但是,在这个例子中,我只是使用并发语句,为什么这一点不成立呢?
architecture V1 of E is
signal B : bit;
begin
B<=A;
F<=not b;
end architecture;
当我想到硬件组件F将接收来自B的信号时,所以在第一个周期中,F也应该保持B的旧否定值?
并发信号分配只是进程的简写。您的第二个代码与以下代码相同:
process(A)
begin
B <= A;
end process;
process(b)
begin
F <= not b;
end process;
行为不同的原因是,对于第一个代码,只有当信号A
发生变化时,进程才会恢复,而对于第二个代码,每个进程都会在其灵敏度列表中的信号发生变化时恢复。