I have tried to reconcile this for some time, but I keep coming up with contradictions. On pages 371-373 of IEEE Std 1800-2012 LRM for Systemverilog, I keep running into this discrepancy for Figure 16-10 (and 16-11).
The OR of two sequences:
seq1 or seq2
matches when one of the two operand sequences matches. So in figure 16-10 where the sequence is
(te1 ##2 te2) or (te3 ##2 te4 ##2 te5)
the LRM indicates that no match has occurred until tick 10 where the sequence
(te1 ##2 te2)
has now been satisfied.
However, what I am confused about is why the sequence
(te3 ##2 te4 ##2 te5)
was not satisfied at tick 6?
Clearly
te3
is true at tick 2 and then followed two ticks later (tick 4) by
te4
which is then followed two ticks later by
te5
at tick 6. Yet the LRM gives no green arrow confirming that this sequence has been satisfied at tick 6 (nor, consequently, the OR of both sequences). What am I missing?
In reply to ce_2015:
You are correct, one case is missing, the te3 ##2 te4 ##2 te5 that starts at cycle 2. Figure 16-10—ORing (or) two sequences shows the case when two matches for the composite sequence are recognized. This would have significance when that ORing sequence is used in an antecedent since all ORing possibilities (and consequents)must be evaluated for a property to be true. Maybe the committee felt it was too confusing to show both cases. Don’t expect any changes, as the text is clear on the intent.
BTW, I am a member of the AC committee.
Ben Cohen http://www.systemverilog.us/ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr
I think this figure is not intended to show the evaluation result of every tick. It focuses on taking tick 8 as starting point to show “In other words, the set of matches of te1 or te2 is the union of the set of matches of te1 with the set of matches of te2.” statement.
As you point out, tick 6 has a match and tick 13 has another match. They are not shown in the figure.
In reply to ce_2015:
You are correct, one case is missing, the te3 ##2 te4 ##2 te5 that starts at cycle 2. Figure 16-10—ORing (or) two sequences shows the case when two matches for the composite sequence are recognized. This would have significance when that ORing sequence is used in an antecedent since all ORing possibilities (and consequents)must be evaluated for a property to be true. Maybe the committee felt it was too confusing to show both cases. Don’t expect any changes, as the text is clear on the intent.
BTW, I am a member of the AC committee.
Ben Cohen http://www.systemverilog.us/ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr
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
Fair enough that there won’t be any changes. It just caused a bit of confusion for me as to how
(te1 ##2 te2) or (te3 ##2 te4 ##2 te5)
was not true at tick 6 when (te3 ##2 te4 ##2 te5) had clearly been satisfied…
I only asked here because I was starting to be under the impression that for an OR of operand sequences to succeed there was a rule that both sequences had to have started in order for the OR to be true…
Regardless, thank you for taking the time to clarify.