Assume when signal falls it will remain low until two periods of clock have passed

In reply to Andrew R:


// You have 2 clock systems 
// Use as sampling clock the slower clock in your consequent, 
// but use the negedge of clock to sample the clock signal.
assume property (@(edge mclk) $fell(async_signal) |-> 
  @(posedge clk) (!async_signal throughout ($rose(clock, @(negedge clock))[*3])));

// On the cover, I would use the got operator 
cover property (@(posedge mclk) async_signal[->2]);
// goto: a[->1] is same as !a ##[0:$] a 
//       a[->2] is same as !a ##[0:$] a ##1 !a ##[0:$]a 
 

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