in the following code:
property req_ack;
@(posedge clk) disable iff(!en)
$rose(req) |=> ack;
endproperty
assert property(req_ack);
if en goes high after $rose(req) but before ack, will (should) the assertion be activated ?
in the following code:
property req_ack;
@(posedge clk) disable iff(!en)
$rose(req) |=> ack;
endproperty
assert property(req_ack);
if en goes high after $rose(req) but before ack, will (should) the assertion be activated ?
@(posedge clk) disable iff(!en)
$rose(req) |=> ack;
if en goes high after $rose(req) but before ack, will (should) the assertion be activated ?
When en==0, the assertion is cancelled, and any new attempt (at every leading cloking event, the posedge clk) is rejected. Thus, if en goes high after $rose(req) but before ack, the previous $rose(req) is not considered, as that previous attempt was never activated. Haever, when en==1’b1, all future attempts are considered and the assertion will be evaluated.
Ben Cohen http://www.systemverilog.us/