I have a requirement where I need to check the repetition of sequence 11011010 on the valid signal when idle is low. Valid is pulled low when Idle is high. So, until idle is low I have to check for the sequence. Attached is the waveform for reference.
In reply to nimitz_class:
I can easily provide the code, but it would be more beneficial for you to write something. Conceptually these are the steps:
declare a sequence that has that signature.
the property you need has as antecedent $fell(idle)
the property is of the form
$fell(a) |-> ##1 sequence_name[*1:$] ##1 $rose(a);
// another property needed
Idle |-> valid ==1'b0;
[/systemverilog[
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact http://cvcblr.com/home
** SVA Handbook 4th Edition, 2016 ISBN 978-1518681448
...
1) SVA Package: Dynamic and range delays and repeats https://rb.gy/a89jlh
2) Free books: Component Design by Example https://rb.gy/9tcbhl
Real Chip Design and Verification Using Verilog and VHDL($3) https://rb.gy/cwy7nb
3) Papers:
- Understanding the SVA Engine,
https://verificationacademy.com/verification-horizons/july-2020-volume-16-issue-2
- SVA Alternative for Complex Assertions
https://verificationacademy.com/news/verification-horizons-march-2018-issue
- SVA in a UVM Class-based Environment
https://verificationacademy.com/verification-horizons/february-2013-volume-9-issue-1/SVA-in-a-UVM-Class-based-Environment