Assertion Question

In reply to Vanshika Chawla:

You need some support logic.
My testbench needs improvement :)


//import uvm_pkg::*; `include "uvm_macros.svh" 
module top; 
    bit clk, a, b, e3, select; 
    int count; 
    default clocking @(posedge clk); endclocking
    initial forever #10 clk=!clk;  

    always_ff @(posedge clk) begin
      count<=(count+1) % 3; 
      $display("count= %d", count);        
    end
    
  ap: assert property(count==0 |-> ##3 select ##1 !select[*2])
    $display("%t ap pass count=%d, select=", $realtime, $sampled(count), $sampled(select));
    else   $display("%t ap FAIL count=%d, select=", $realtime, $sampled(count), $sampled(select));
endmodule  
 

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact http://cvcblr.com/home


  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