Confused about Assertion Delay Range

I’m quite confused about how the “range” is evaluated in assertion.
For example,


a ##[1:10] b ##1 c

Let’s say a becomes true, then b becomes true 3 clock cycles later. The range says that b must be true between 1 to 10 clock cycles. Since it became true 3 clock cycles later, does that mean that c must be true 7+1=8 clock cycles later? Or is it that after b becomes true, then the sequence will proceed immediately to ##1 c, without waiting for the remaining 7 clock cycles?

In reply to Reuben:

This is equivalent to

(a ##1 b ##1 c) or (a ##2 b ##1 c) or (a ##3 b ##1 c) or ... (a ##10 b ##1 c)

Remember that sequences behave like regular expressions, so there can be many possible matches.

In reply to dave_59:

In reply to Reuben:
This is equivalent to

(a ##1 b ##1 c) or (a ##2 b ##1 c) or (a ##3 b ##1 c) or ... (a ##10 b ##1 c)

Remember that sequences behave like regular expressions, so there can be many possible matches.

Hi. So that means even if (a ##10 b ##1 c) fails but (a ##3 b ##1 c) passes, then the whole sequence evaluates to true?

In reply to Reuben:

A sequence can match or mis-match. Whenever you’ve a range delay in a sequence, you have the possibility of multiple matches. Now it depends on your requirement - do you care about all matches or just the first one? If first one only (and ignore the rest), use first_match ().

HTH
Srini
www.verifworks.com

In reply to Reuben:
Sequences either match or do not match - they do not pass or fail until they are asserted as a property. But you are correct in that one or more sub-sequences needs to match for the whole match.

In reply to dave_59:

In reply to Reuben:
Sequences either match or do not match - they do not pass or fail until they are asserted as a property. But you are correct in that one or more sub-sequences needs to match for the whole match.

Yeah, I should have used match/mismatch instead of pass/fail there. Anyway, I tried the assertion by writing a simple code, and it’s working just the way you mentioned it. As long as there is at least one sub-sequence that matches, the whole sequence will match as a whole.

Thanks for your help. I will now mark this as Solved!