In reply to ben@SystemVerilog.us:
Ben , need your thoughts on the following ::
LRM 9.4.2.4 says “The process executing the event control shall block until the specified sequence reaches its end point. A process resumes execution following the Observed region in which the end point is detected.”
LRM 16.11 says “The subroutines are scheduled in the Reactive region”
For ::
covergroup frame @( Detect_EOP) ;
@( Detect_EOP ) would unblock in Active region whereas framelength is updated in Reactive region
So at time : 55 when $rose( EOP ) is True there are 2 possibilities ::
(1) Via feedback from observed to active region , @( Detect_EOP ) unblocks and default value of framelength of 0 is sampled
( Reactive region hasn't started yet )
(2) Via feedback from Reactive to active region , first framelength is updated then @( Detect_EOP ) unblocks and samples updated value of 5
Since reactive occurs after observed region , sequence Detect_EOP has reached endpoint by then
So some tools follow (1) and sample auto[0] whereas some follow (2) and sample auto[5] .