如何編寫SVA來檢查如果sig變爲高電平觸發器高電平4個週期之前trigger [*4] |-> signal
不夠好,因爲它不檢查信號沒有去高3個週期。我應該用$past
怎麼樣?系統verilog斷言觸發器== 1在信號斷言之前4個週期
0
A
回答
1
這將檢查對sig
上升沿,trigger
是高4個CLK週期前:
assert_name: assert property (
@(posedge clk) (
($rose(sig) -> $past(trigger,4))
)
);
-1
沒有什麼能阻止你寫一小塊可綜合RTL的,其對多少個週期trigger
一直居高不下。
always @(posedge clk) begin
if (trigger) begin
triggerCount := triggerCount + 1;
end else begin
triggerCount := 0;
end
end
assert_name: assert property (
@(posedge clk) (
($rose(sig) -> triggerCount == 4)
)
);
+0
爲什麼人們投票呢?我誤解了這個問題嗎? –
相關問題
- 1. Django斷言post_save信號叫
- 2. AfxGetInstanceHandle()觸發斷言失敗
- 3. 何時使用$玫瑰系統任務與斷言信號
- 4. 向前斷言
- 5. 系統verilog斷言中的 - >和=>有什麼區別?
- 6. 使用類似斷言的觸發器
- 7. 從rspec中斷言斷言與斷言
- 8. 斷言調試器斷言失敗
- 9. 斷言IE編號
- 10. 斷言與JUnit斷言
- 11. 如何在android中判斷當前系統語言?
- 12. 如何在verilog中創建1個週期自上升信號?
- 13. 模糊系統在輸入期間python斷言錯誤
- 14. Xcode 4斷言錯誤
- 15. mysql的觸發模擬斷言
- 16. 斷言失敗時觸發函數
- 17. 基於事件觸發的SV斷言
- 18. ,只有發生在斷言
- 19. 斷言在Java
- 20. 保存斷言在序言
- 21. Node.JS:在通過HTTPS發送數據之前斷言授權
- 22. python信號,中斷系統調用
- 23. 信號如何中斷系統調用
- 24. 擴展新的xUnit斷言類斷言
- 25. 結合靜態斷言和斷言?
- 26. HasMember期間的Rapidjson斷言
- 27. 流利斷言:斷言一個或另一個值
- 28. 系統Verilog聲明位向量
- 29. 斷言繼續拋出錯誤斷言錯誤0 == 1在摩卡測試中,
- 30. 在失敗的斷言中觸發一個函數
但我不認爲這會檢查觸發是否高於sig上升前的4 **連續**週期?這是我需要的。所以也許'| - >($ past(trigger,4)&$ past(trigger,3))'...? – Meir
@Meir你正確的這隻檢查它是高4克拉前。然後你可以檢查它從那一刻起高4碼。 – Morgan