I am having difficulties on understanding this [=N] operator.
I was wondering the waveform below
_ _ _ _ _
clk | || || || || |
_
a | |________________
_
b | |________________
is it equivalent to waveform a[=1] ##1 b?
_ _ _ _ _
clk | || || || || |
_
a | |________________
_
b | |___________
b[=m] // is equivalent to ( b [->m] ##1 !b [*0:$] )
b [->m] // is equivalent to ( !b [*0:$] ##1 b)[*m]
// Thus,
a[=1] ##1 b // is equivalent to
a[->1] ##1 !a[*0:$] ##1 b // a==1 or a==0 when b==1
// equivalent to
!a[*0:$] a ##1 !a[*0:$] ##1 b // a==1 or a==0 when b==1
@(posedge clk) | | | | | | | | |
a 00000111100000000xxxxxxxxxxxx
b xxxxxx00000001111xxxxxxxxxxxxx
a==1 ^
b==1 ^
// Note: because of var[*0:$] ##1 b) == b if b occurs in that very 1st cycle
// var[*0] ##1 b is equivalent to ##0 b
// the sequence (a ##1 b) would also satisfy
// the sequence (a[=1] ##1 b) if a occurs in the 1sr cycle and
// if b occurs one cycle after the "a"
//