In reply to dave_59:
property write;
int a,b;
@(posedge clk) first_match (($rose(cond1), a=addr, b=data) ## [2:50] cond2 == a)
|=> cond3 == b;
end property
cond1 may appear twice before cond2 can happen.
At each clocking event there is an attempt, and if that attempt is successful the local Variables are updated, and they are local to that thread ONLY. If $rose(cond1)appears again in another cycle then a new thread is started, independently from the other thread.
During a successful attempt, Local variables are updated for that attempt in the sequence matched item. Again, those local variables are local to that thread for that attempt, and not for any other attempt.Read my paper https://verificationacademy.com/news/verification-horizons-march-2018-issue and understand the equivalency (but not implementation) of an SVA assertion using automatic tasks with automatic local variables that are started with fork-join.
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr
- SVA 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 978-1539769712
- 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
- https://verificationacademy.com/news/verification-horizons-march-2018-issue
- http://systemverilog.us/vf/SolvingComplexUsersAssertions.pdf
- “Using SVA for scoreboarding and TB designs”
http://systemverilog.us/papers/sva4scoreboarding.pdf - “Assertions Instead of FSMs/logic for Scoreboarding and Verification”
https://verificationacademy.com/verification-horizons/october-2013-volume-9-issue-3 - 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
FREE BOOK: Component Design by Example
… A Step-by-Step Process Using VHDL with UART as Vehicle