An Immediate Assertion for Reset Value Check

In reply to verificator:
You can use the final.
Deferred assertions use #0 (for an Observed deferred assertion) or
final (for a final deferred assertion in the Postponed region) after the verification directive.
Corrections


upcnt : assert property (
    disable iff (!rstn)
      @(posedge clk)
        (!ld && en && updn) //  |-> q == $past(q) + 8'h1 // ERROR 
                                |=> q == $past(q) + 8'h1
  );
 
  always @(negedge rstn)
    rst_val : assert final (q == 'h0)  // <------------------
      $display("reset value check passed in %m");
    else
      $error("reset value check failed in %m");

:

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr


  1. SVA Alternative for Complex Assertions
    https://verificationacademy.com/news/verification-horizons-march-2018-issue
  2. SVA: Package for dynamic and range delays and repeats - SystemVerilog - Verification Academy
  3. SVA in a UVM Class-based Environment
    https://verificationacademy.com/verification-horizons/february-2013-volume-9-issue-1/SVA-in-a-UVM-Class-based-Environment