In reply to ben@SystemVerilog.us:
Hi Ben ,
Could you please further explain the above comment :
On ((vld[->1], sum=sum+data)[*999999])
the [*999999] is not needed and does not make sense because
the sequence_match_item sum=sum+data will only be activated when vld==1.
After that, the left sequence is done.
‘or’ operator completes as soon as the former of LHS or RHS is true.
Let’s assume a case that $fell(go) is never true .
Won’t local variable sum be assigned on each occurrence of vld[->1] then ?
So the only way ‘or’ operator completes is when the LHS ( vld[->1] ) is true , 999999 times consecutively .
This would mean that sum is assigned 999999 times ( using prior value of sum )
Please correct me if wrong .
Thanks ,
hisingh