进程语句和并发语句之间的区别



当我在这样的过程中为信号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发生变化时,进程才会恢复,而对于第二个代码,每个进程都会在其灵敏度列表中的信号发生变化时恢复。

最新更新