Hi Forum,
In the following quote ::
A sequence is multi-threaded if it includes any of the following operators:
and, intersect, or, range delay, consecutive range repetition, and repetition operator (i.e. [*n], [=n]. [ ->n] ).
I understand reason behind or , range delay ##[min:max] , consecutive range repetition [*min:max] , non-consecutive repetition [=n] operators being multi-threaded.
However why are and , intersect , repetition operator [*n] , goto repetition [→n] operators considered as multi-threaded ?
Consider the following examples
//[1] Antecedent has lhs & rhs sequence of unequal length
( a ##1 b ) and ( c ## $rose(d)[->1] ) |-> z;
Antecedent results in non-vacuous pass only when both lhs & rhs sequence match,
then why is the antecedent considered multithreaded ?
//[2] Using intersect operator
( a ##1 $rose(b)[->1] ) intersect ( c ##1 $rose(d)[->1] ) |-> z;
Antecedent results in non-vacuous pass only when both lhs & rhs sequence start and end at the same clock,
then why is the antecedent considered multithreaded ?
//[3] Using repetition operator
a ##1 b[*4] |-> z;
//[4] Using go-to repetition operator
a ##1 b[->4] |-> z;
Why are the above 4 cases considered as multi-threaded ?