これは私を夢中にさせています。これまでのコードは次のとおりです。
signal SYS_CLK : std_logic := '0'; --Input
signal InputSignal : std_logic := '0'; --Input
signal SyncOutputSignal : std_logic; --Output
------------------------------------------------------
stim_proc:process(SYS_CLK)
begin
if (rising_edge(SYS_CLK)) then
if (InputSignal = '1') then
assert (SyncOutputSignal = '0') report "Bad Pulse..." severity ERROR;
end if;
end if;
end process stim_proc;
ISim波形の写真 ---> i.imgur.com/G5KvCQe.jpg
このテストの目的は、立ち上がりエッジ (SYS_CLK) で InputSignal = '1' の場合に、SYS_CLK の周期と同等のパルス (SyncOutputSignal) が送信されることを確認することです。
ただし、CLK が High になり、InputSignal が High になるたびにエラー レポートが発行されます。
簡単に言うと、コードにリストされている assert ステートメントを再度テストする前に、次の InputSignal Pulse を待つようにプログラムに指示する方法が必要です。何か案は??