2016-04-26 69 views
1

全部, 我是VHDL的新手。我有一個工作設計,但是我的模擬一直運行直到我取消模擬。在測試平臺中,如何在x個時鐘週期後停止模擬?這是否在時鐘進程中完成?如何在設定的時鐘週期內運行模擬

clk_process :process 
    begin 
    clk <= '0'; 
    wait for clk_period/2; 
    clk <= '1'; 
    wait for clk_period/2; 
end process; 

請和謝謝!

回答

0

在VHDL-2008:

if now >= clk_period * x then 
    std.env.stop; 
end if; 

在早期版本(仍然工作在2008年,雖然!):

assert now < clk_period * x report 
    "Stopping simulation : this is not a failure!" severity failure; 

這(濫用斷言),後者的好奇心雅尼克伯傑龍的書實際上是推薦「寫測試平臺」!

時鐘進程與其他任何地方一樣好,但是對於模擬控制來說,單獨的進程(可能對時鐘敏感)可能是稍微更清潔的設計。

+0

我想仿真在1000個時鐘週期後停止。你能告訴我如何將VHDL-2008代碼集成到時鐘進程中嗎?這是簡單的如果clk> = clk_period * 1000然後std.env.stop;萬一; – Craig3832

+0

我已經做了。只需將X設置爲1000.請注意,您的評論無效,因爲'clk'不是'time'類型。 –