Section 28.3.2.1

LRM-121

Change (changes in red and blue):

typedef struct t_vpi_source_info {

PLI_BYTE* PLI_BYTE8 *fileName;

PLI_INT32 startLine;

PLI_INT32 startColumn;

PLI_INT32 endLine;

PLI_INT32 endColumn;

} s_vpi_source_info, *p_vpi_source_info;

typedef struct t_vpi_assertion_info {

PLI_BYTE8 *name *assertName;      /* name of assertion */

vpiHandle instance;               /* instance containing assertion */

PLI_BYTE8 *defname;             /* name of module/interface containing assertion */

vpiHandle clock;                  /* clocking expression */

PLI_INT32 assertionType;          /* vpiSequenceType, ... vpiAssertType, vpiCoverType,

   vpiPropertyType, vpiImmediateAssertType */

s_vpi_source_info sourceInfo;

} s_vpi_assertion_info, *p_vpi_assertion_info;

int PLI_INT32 vpi_get_assertion_info (assert_handle, p_vpi_assertion_info);

Section 28.4.2

LRM-121

Change (changes in red and blue):

vpiHandle vpi_register_assertion_cb(

vpiHandle assertion,       /* handle to assertion */

PLI_INT32 reason,          /* reason for which callbacks needed */

PLI_INT32 (*cb_rtn)(       /* callback function */

PLI_INT32 reason,    /* callback reason */

p_vpi_time cb_time,  /* callback time */

vpiHandle assertion,

p_vpi_attempt_info info,

PLI_BYTE8 *userData ),

PLI_BYTE8 *user_data       /* user data to be supplied to cb */

);

typedef struct t_vpi_assertion_step_info {

PLI_INT32 matched_expression_count;

vpiHandle *matched_exprs;                /* array of expressions */

p_vpi_source_info *exprs_source_info;    /* array of source info */

PLI_INT32 stateFrom, stateTo;            /* identify transition */

} s_vpi_assertion_step_info, *p_vpi_assertion_step_info;

typedef struct t_vpi_attempt_info {

union {

vpiHandle failExpr;

p_vpi_assertion_step_info step;

} detail;

s_vpi_time attemptTime, attemptStartTime; /* Time attempt triggered */

} s_vpi_attempt_info, *p_vpi_attempt_info;

LRM-121

Change (changes in red and blue):

The callback function shall be supplied the following arguments:

 

1) the reason for the callback

 

2) a pointer to the time of the callback

 

2) 3) the handle for the assertion

 

3) 4) a pointer to an attempt information structure

 

4) 5) a reference to the user data supplied when the callback was placed registered.

 

The attempt information structure contains details relevant to the specific event that occurred.

 

—      On disable, enable, reset and kill events callbacks, the info field is absent (a NULL pointer is given as the value of info) NULL.

 

—      On start and success events callbacks, only the attemptStartTime time field is valid.

 

—      On a failure event callback, the attemptStartTime time and detail.failExpr are valid.

 

—      On a step callback, the attemptStartTime time and detail.step elements are valid.

Section 28.5.2

LRM-121

Change (changes in red and blue):

Usage example: vpi_control(vpiAssertionKill, assertionHandle, attemptStartTime)

 

vpiAssertionKill

discards the given attempts, but leaves the assertion enabled and does not reset any state used by this assertion (e.g., past() sampling).

 

Usage example: vpi_control(vpiAssertionDisableStep, assertionHandle, attemptStartTime)

 

vpiAssertionDisableStep

disables step callbacks for this assertion. This has no effect if stepping not enabled or it is already disabled.

 

—      For the following operator, the second argument shall be a valid assertion handle, the third argument shall be an attempt start-time (as a pointer to a correctly initialized s_vpi_time structure) and the fourth argument shall be a step control constant.

 

Usage example: vpi_control(vpiAssertionEnableStep, assertionHandle, attemptStartTime, vpiAssertionClockSteps)