SVA : using $past

In reply to sraja:
Am not clear as to what you mean by “the assertion should not trigger if the past [0 to 2] clock cycles value is din == 00.” If I call “a” what I am looking looking for, and that any sequence of 1, 2, or 3 occurrences of (din ==2’b00) means a result of “!a” then you can express it as follows:


 //the assertion should not trigger if the past [0 to 2] clock cycles value is din == 00.
     ap_din_a: assert property((din ==2'b00) [*1:3] |-> !a); 

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us

  • SystemVerilog Assertions Handbook 4th Edition, 2016 ISBN 978-1518681448
  • A Pragmatic Approach to VMM Adoption 2006 ISBN 0-9705394-9-5
  • Using PSL/SUGAR for Formal and Dynamic Verification 2nd Edition, 2004, ISBN 0-9705394-6-0
  • Real Chip Design and Verification Using Verilog and VHDL, 2002 isbn 0-9705394-2-8
  • Component Design by Example ", 2001 ISBN 0-9705394-0-1
  • VHDL Coding Styles and Methodologies, 2nd Edition, 1999 ISBN 0-7923-8474-1
  • VHDL Answers to Frequently Asked Questions, 2nd Edition ISBN 0-7923-8115