could you provide how the through out operator is executed. (exp) [*0:$] intersect seq
i guess it is divided into two sequences one is (exp) [*0:]
and the other one is seq.
the sequence (exp) [*0:] is divided into (exp) or (exp ##1 exp) or …
after simulation of only (exp)[*1:$],I came to know that if exp is true in the current slot then repetition of expression is not checked from next clock on words. but from the through out operator meaning ,exp should hold true through out the sequence.is the meaning getting changed due to the context of through out operator.
and if we use (exp) [*1:] in the above sequence instead of (exp)[*0:] what would be the difference.
it seems (exp) [*0:] intersect seq , (exp) [*1:] intersect seq both are same.
You’re correct. This is because something like:
a[*0:3] intersect b[*3]
// IS SAME AS
(a[*0] or a[*1] or a[*2] or a[*3]) intersect b[*3] // parentheses are needed
// and in this case, because of the intersect, it is also the same as
a[*3] intersect b[*3]
One must be very cautious when using the [*0]; for example,
a and b[*0] // is 0
a[*0] ##0 b // is 0
a[*0] ##1 b // is same as (b)