2017-06-15 87 views
2

我是新來的SystemVerilog斷言改變,我知道我可以檢查是否有信號沒有時鐘之間使用併發斷言蜱改變:如何檢查是否有信號不使用SystemVerilog聲明立即斷言

assert property (@(posedge clk) enable == 0 |=> $stable(data)); 

但是,我會如何不斷使用即時斷言?這是我在網上找到的一個例子,但我不確定它是否是我需要的以及它是如何工作的:

assign not_a = !a; 
always_comb begin : b1 
    a1: assert (not_a != a); 
    a2: assert #0 (not_a!= a); // Should pass once values have settled 
end 

回答

0

您要求的內容沒有任何意義。如果它的信號永遠不會改變,那麼它一定是一個常數。在您展示的示例中,a1可能會失敗 - 在anot_a之間存在爭用條件。 a2是延遲斷言 - 它照顧的比賽,永遠不會失敗。但這兩個斷言的問題是,如果a在某個時間更改,a2永遠不會失敗,並且您可能不會看到失敗a1

+0

感謝您的意見。我想我沒有正確地說出我的問題,我所需要的是使用即時斷言來檢查信號是否穩定,因爲我沒有時鐘。 –

+0

沒有任何參考,您對_stable_的定義是什麼? –

+0

斷言運行時信號不會改變。 –

相關問題