Clock period assertion check

In reply to lisa.lalice:
It looks to me that the following should work. Here you check that the next posedge clk becomes reactivated (or gated ON) sometime after 60,000ns. There is no need to use the negedge of clk if all the signals are created using the nonblocking assignment operator ( <= ) in an always block.


let SRE=24'h535245;
property srf_clk_en_check_p;
    realtime start;
    @(posedge clk)
    (clk_enble==1 && cmd_debug==SRE, start=$realtime) ##27 1'b1 // no clocks after that 
         // at the next clocking event  
               |=>  $realtime-start>= 60000ns;
  endproperty

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact http://cvcblr.com/home.html
** SVA Handbook 4th Edition, 2016 ISBN 978-1518681448

  1. SVA Package: Dynamic and range delays and repeats SVA: Package for dynamic and range delays and repeats | Verification Academy
  2. Free books: Component Design by Example FREE BOOK: Component Design by Example … A Step-by-Step Process Using VHDL with UART as Vehicle | Verification Academy
    Real Chip Design and Verification Using Verilog and VHDL($3) Amazon.com
  3. Papers: