2
讓我們舉一個簡單的例子,說明異步復位的d觸發器。如何爲異步復位行爲編寫斷言
q應該在時鐘的下一個邊沿上用d更新,這可以用簡單的蘊涵算子斷言來寫。
但是如何在斷言中捕獲重置行爲。 我試過以下幾條
assert @(posedge rst) (1'b1 |-> !Q);
assert @(posedge rst) (1'b1 ##0 !Q);
這兩個斷言失敗了,我想這是因爲第一個沒有未來posedge?
assert @(posedge clk) ($rose(rst) |-> !Q);
通行證,但需要自由運行的時鐘,並且時鐘的2個邊之間有效(未安inteded的第一個行爲)
assert #0 (not (rst & Q));
按我的理解,這是一個正確的立即斷言,不過,我可以看不到這個波形查看器通過/失敗。更進一步,我認爲我不能在最後一種斷言中寫封面。
謝謝,更新了我的斷言。初步測試正在通過。我會跑西裝看看結果。現在我不需要運行它與r2q延遲,但很好知道:) – wisemonkey