等待特定的持續時間

僅使用 for <timeout> 子句,可以獲得持續特定持續時間的無條件等待。這是不可綜合的(沒有真正的硬體可以如此簡單地執行此行為),但經常用於在測試平臺內排程事件和生成時鐘。

此示例在模擬測試平臺中生成 100 MHz,50%佔空比時鐘,用於驅動被測裝置:

constant period : time := 10 ns;
...
process
begin
   loop
      clk <= '0';
      wait for period/2;
      clk <= '1';
      wait for period/2;
   end loop;
end process;

此示例演示瞭如何使用文字持續時間等待對測試平臺激勵/分析過程進行排序:

process
begin
   rst <= '1';
   wait for 50 ns;
   wait until rising_edge(clk); --deassert reset synchronously
   rst <= '0';
   uut_input <= test_constant;
   wait for 100 us; --allow time for the uut to process the input
   if uut_output /= expected_output_constant then
      assert false report "failed test" severity error;
   else
      assert false report "passed first stage" severity note;
      uut_process_stage_2 <= '1';
   end if;
   ...
   wait;
end process;