使用SystemVerilog斷言$assertoff;
和$assertkill;
有什麼區別?
他們似乎都停止執行斷言。
使用SystemVerilog斷言$assertoff;
和$assertkill;
有什麼區別?
他們似乎都停止執行斷言。
$assertoff
將停止斷言,除了那些已處於活動狀態的斷言。
一旦觸發並等待移動到失敗或完成,斷言處於活動狀態。 $assertoff
不會停止或殺死斷言處於活動狀態。
$assertkill
將停止所有斷言,將所有斷言全部關閉。
Cadence的幫助:
$ assertoff
暫停,直到遇到$ asserton所有指定的斷言檢查。已經執行的斷言 將繼續執行,包括斷言操作塊。$ assertkill
止步不前了目前正在執行,然後掛起檢查所有指定的斷言,直到遇到$ asserton所有指定的斷言檢查。
注:根據IEEE 1800 SystemVerilog標準,由於調度問題,$ assertkill任務對即時斷言和非時間併發斷言沒有影響。
$ assertoff只是停止檢查所有指定的斷言,除非直到$ assert的sunsequent處於打開狀態。
當你處理一個斷言時,它不會影響我的斷言是通過還是失敗。