我将如何编写 SVA 来检查 sig 是否变高,触发器是否在 4 个周期之前trigger [*4] |-> signal
为高还不够好,因为它没有检查信号在 3 个周期内没有变高。我应该$past
如何使用?
问问题
1820 次
2 回答
1
这将检查 , 在4 个 clk 周期前的上升沿上是否sig
为高:trigger
assert_name: assert property (
@(posedge clk) (
($rose(sig) -> $past(trigger,4))
)
);
于 2013-10-29T13:32:09.353 回答
-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)
)
);
于 2013-10-31T13:46:49.707 回答