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

Difference between process and concurrent statements

当我在这样的过程中将信号 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 的旧否定值?

并发信号分配只是 shorthand 进程。您的第二个代码与:

process(A)
begin
  B <= A;
end process;

process(b)
begin
  F <= not b;
end process;

行为不同的原因是,对于您的第一个代码,进程仅在信号 A 发生变化时恢复,而对于第二个代码,每次其敏感列表中的信号发生变化时,每个进程都会恢复。