Variable delay in $past(sig_name, vari_delay) assertion

In reply to ben@SystemVerilog.us:
In you need a var delay between $fell(ADC_START) and $changed(o_c_500k)
consider using my package at
https://verificationacademy.com/forums/systemverilog/sva-package-dynamic-and-range-delays-and-repeats
Thus,


//   $fell(ADC_START) |->  strong(##1 $stable(ADC_START)  // (like your ",5" ",4"
//                               ##[1:$] $changed(o_c_500k));   
import sva_delay_repeat_range_pkg::*;
int d1=30;  // dynamic var set to 30
sequence my_sequence; 
  $changed(o_c_500k); 
endsequence 
$fell(ADC_START) |->  strong(##1 $stable(ADC_START)  // (like your ",5" ",4"                      
                             ##0 q_dynamic_delay(d1) ##0 my_sequence);  
// OK too (the sequence is needed for other cases, see the package) 
$fell(ADC_START) |->  strong(##1 $stable(ADC_START)  // (like your ",5" ",4"                      
                             ##0 q_dynamic_delay(d1) ##0 $changed(o_c_500k));  


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