Triggering Covergroup Sampling via SVA

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] .