这一直让我发疯。这是我到目前为止的代码:
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
此测试的目的是确认当 InputSignal = '1' 在上升沿 (SYS_CLK) 时,会发出一个脉冲 (SyncOutputSignal) 等效且与 SYS_CLK 的周期一致。
但是,每次 CLK 变高且 InputSignal 为高时都会发出错误报告。
长话短说,我需要一种方法来告诉程序在再次测试我的代码中列出的断言语句之前等待下一个 InputSignal 脉冲。有任何想法吗??