Assertion triggering based on values rather than clock

can anyone share the document in which it consists of assertion trigerring based on change in variable rather than clock.i would be thankful for it

In reply to venky970:
Isn’t @(variable==some_value) a clocking event? SVA is event-based; usually, that event is a clock edge, but it does not have to be. Thus,


module top; 
    int a, b, c, d;
    ap_abc: assert property(@ (a==1) b==2 |-> d==3 );  
    ap_abc2: assert property(@ (a==1) b==2 |-> @(b==5) d==4 );  
// Note: some functions require a clocking event  
$rose ( expression [, [clocking_event] ] )
$fell ( expression [, [clocking_event] ] )
$stable ( expression [, [clocking_event] ] )
$changed ( expression [ , [ clocking_event ] ] )
$past ( expression1 [, [number_of_ticks ] [, [expression2 ] [, [clocking_event]]] ] )
endmodule 

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


  1. SVA Alternative for Complex Assertions
    Verification Horizons - March 2018 Issue | Verification Academy
  2. SVA: Package for dynamic and range delays and repeats | Verification Academy
  3. SVA in a UVM Class-based Environment
    SVA in a UVM Class-based Environment | Verification Horizons | Verification Academy