In reply to ben@SystemVerilog.us:
Hi Ben ,
Yes I do understand that the right sequence should be 1[*4:10] , but even when using 1[*10]
why is it that assertion fails at t:35 specifically ? i.e how is the consequent evaluated ?
(1) For the 1st stimulus , ‘sig’ is True throughout simulation :
initial begin
#04 ; sig = 1 ;
#90 ;
#5 ; $finish();
end
sig[*1] is True at t:5 , sig[*2] is True at t:15 , sig[*3] is True at t:25 , sig[*4] is True at t:35 .
My understanding is that the intersect operator fails as soon as either the left or right sequence is false , so at t:45 wouldn’t sig[*4] be considered false ?
(2) For the 2nd stimulus , ‘sig’ is False at t:45 :
initial begin
#04 ; sig = 1 ;
#40 ; sig = 0 ;
#60 ;
#5 ; $finish();
end
As ‘sig’ is false at t:45 , I expected the assertion to fail at t:45 .
Yet I see the assertion fails at t:35