2013-10-29 75 views

回答

1

這將檢查對sig上升沿,trigger是高4個CLK週期前:

assert_name: assert property (
    @(posedge clk) (
    ($rose(sig) -> $past(trigger,4)) 
    ) 
); 
+0

但我不認爲這會檢查觸發是否高於​​sig上升前的4 **連續**週期?這是我需要的。所以也許'| - >($ past(trigger,4)&$ past(trigger,3))'...? – Meir

+0

@Meir你正確的這隻檢查它是高4克拉前。然後你可以檢查它從那一刻起高4碼。 – Morgan

-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

爲什麼人們投票呢?我誤解了這個問題嗎? –