User guide
23-8
SystemVerilog Assertion Constructs
You can specify an infinite number of repetitions with the $ token. For
example:
sequence s1;
(sig1 ##2 sig2) [*1:$];
endsequence
Note:
##1 is automatically added between repetitions.
The goto repetition operator [-> (non-consecutive exact repetition)
specifies the repetition of a boolean expression, such as:
a ##1 b [->min:max] ##1 c
This is equivalent to:
a ##1 ((!b [*0:$] ##1 b)) [*min:max]) ##1 c
Adding the range specification to this allows the construction of useful
sequences containing a boolean expression that is true for at most
N occurrences:
a ##1 b[->1:N] ##1 c // a followed by at most N occurrences
// of b, followed by c
The non-consecutive repetition operator [= extends the goto
repetition by extra clock ticks where the boolean expression is not
true.
a ##1 b [=min:max] ##1 c
This is equivalent to:
a ##1 ((!b [*0:$] ##1 b)) [*min:max]) ##1 !b[*0:$] ##1 c