我是VHDL的新手。我明白過程是同時執行的。但我不掌握以下程序的輸出:以VHDL的兩個進程分配信號
-- library declaration
library IEEE;
use IEEE.std_logic_1164.all;
use ieee.numeric_std.all;
entity Ex2 is
end Ex2;
architecture behav of Ex2 is
signal A : std_logic;
begin
proc1 : process is
begin
wait for 20 ns;
A <= '1';
wait for 20 ns;
A <= 'Z';
wait for 20 ns;
A <= '0';
end process proc1;
proc2 : process is
begin
wait for 10 ns;
A <= '0';
end process proc2;
end behav;
「A」 有一段時間的follwing值:
- 0 NS - 20 NS - >ü
- 20納秒 - 30納秒 - > X
- 30 NS - 40納秒 - > 1
- 40 NS - 80 NS - > 0
- 80 NS - 90 NS - > X
我的想象輸出應該什麼樣子:
- 在PROC2 「A」 爲10ns後得到0。該過程結束,因此在10ns後「A」應該爲0。
- 20ns後,兩個進程都恢復,兩者都同時寫入「A」,因此X可以。
- 後30ns的PROC2再次寫入0,因此「A」應該成爲0,但它是1
- 等