2013-03-01 141 views
1

使用SystemVerilog斷言$assertoff;$assertkill;有什麼區別?

他們似乎都停止執行斷言。

回答

3

$assertoff將停止斷言,除了那些已處於活動狀態的斷言。

一旦觸發並等待移動到失敗或完成,斷言處於活動狀態。 $assertoff不會停止或殺死斷言處於活動狀態。

$assertkill將停止所有斷言,將所有斷言全部關閉。

Cadence的幫助:

$ assertoff
暫停,直到遇到$ asserton所有指定的斷言檢查。已經執行的斷言 將繼續執行,包括斷言操作塊。

$ assertkill
止步不前了目前正在執行,然後掛起檢查所有指定的斷言,直到遇到$ asserton所有指定的斷言檢查。
注:根據IEEE 1800 SystemVerilog標準,由於調度問題,$ assertkill任務對即時斷言和非時間併發斷言沒有影響。

-2

$ assertoff只是停止檢查所有指定的斷言,除非直到$ assert的sunsequent處於打開狀態。

當你處理一個斷言時,它不會影響我的斷言是通過還是失敗。

相關問題