以下は私が実行しているコードです。wait until
私の質問は、modelsimで 3 番目のトリガーが実行されないのはなぜですか? コンソール出力は単純GOT HERE
です。ラインに到達することはありませんGOT HERE 2
。wait until <SIGNAL> = 1
条件が2回とも真であるため、同じものが2回連続しても問題ないと思います。そこに「イベント」を追加しなかったので、シミュレーターがエッジを確認する必要はないと思います。誰でもこの動作を説明できますか?
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity example_wait_failure is
end example_wait_failure;
architecture behave of example_wait_failure is
signal r_CLK_TB : std_logic := '0';
begin
r_CLK_TB <= '1' after 20 ns, '0' after 40 ns, '1' after 60 ns;
p_TEST : process
begin
wait until r_CLK_TB = '1';
report "GOT HERE" severity note;
wait until r_CLK_TB = '1';
wait until r_CLK_TB = '1';
report "GOT HERE 2 " severity note;
end process p_TEST;
end behave;