以下のようにプロパティをチェックするSVアサーションがあります
propert my_property;
@(posedge clk) disable iff(reset) $rose(halt) ##0 ((rx_prio) > (expec_prio)) ##[0:$] $rose(rdy) |-> ##[1:100] (my_prio[rx_prio]==1'b1);
endproperty:my_property
以下のような主張があります。
MY_PROPERTY_CHECK:assert property (my_propert)
else
$error;
ここでのシナリオは、前件が真であり、後件が 1 ~ 100 クロック サイクルの間でチェックされるというものです。前例の後、クロック ゲーティングによりクロックがしばらく停止し、その後、クロックは再びカチカチと動き始めます。信号my_prio[rx_prio]は、クロック ゲーティングの後、100 クロック サイクル以内に再びアサートされます。しかし、私はまだアサーションの失敗を取得します。
失敗の問題を理解することができません。アサーション チェック間のクロック ゲーティングに問題はありますか? または他の理由の失敗?ありがとう。