In reply to leya:
Apologies for my mistake, as the comparison expression I used is incorrect.
What you need, and really mean, is inside a region.
1800: 11.4.13 Set membership operator
inside_expression ::= expression inside { open_range_list }
int a, b, c;
if ( a inside {b, c} ) ...
// THUS,
property p_clk_freq;
realtime current_time;
@ (posedge clk)
disable iff ( !(!(reset) && (flag)))
('1, current_time = $realtime) |=>
// (clock_input <= ($realtime - (current_time-0.001ns))||
// ($realtime - (current_time+0.001ns)));
($realtime - current_time) inside {clock_input - 0.001ns, clock_input + 0.001ns}
endproperty
ap_clk_freq: assert property (p_clk_freq);
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
- Real Chip Design and Verification Using Verilog and VHDL, 2002 isbn 978-1539769712
- 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
- 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
See Paper: 1) VF Horizons:PAPER: SVA Alternative for Complex Assertions | Verification Academy
2) http://systemverilog.us/vf/SolvingComplexUsersAssertions.pdf