我想检查变量的当前值是否为“1”,那么变量的先前值应该为“0”。我在系统 Verilog 断言中使用 $past。在这里,我正在检查 cal_frame_mode = 1,然后它是 cal_frame_mode = 0 的先前值。我的代码如下。但是,我看到断言失败。当我检查波形时,它的行为正确。断言在第一次检查后标记 2 个时钟。仅检查一个时钟周期后如何停止此断言?
property p_NOP_2_RX_CAL;
@(posedge clk)
(cal_frame_mode==3'b001) |-> ##2 $past(cal_frame_mode)==3'b000;
endproperty
assert_nop2cal : assert property(p_NOP_2_RX_CAL);