[sv-cc] LRM Changes for Chapter 27 of 3.1 "SystemVerilog Assertion API"


Subject: [sv-cc] LRM Changes for Chapter 27 of 3.1 "SystemVerilog Assertion API"
From: Swapnajit Mittra (mittra@juno.com)
Date: Fri Nov 14 2003 - 18:09:05 PST


Errata on the assertion API chapter from Bassam. Hopefully
the reflector will retain the font colors that Bassam has
used.

Given the schedule crunch we have, let us try to draw a
closure on this by the next meeting. So please send out
your comments before the meeting.

--
Swapnajit Mittra
Project VeriPage ::: http://www.angelfire.com/ca/verilog

Please note: forwarded message attached

attached mail follows:


**Please view this in html form so it is very easy to see the change, otherwise just read the new**

** Please comment if you have any issues with this before we finalize and vote on it**

LRM Changes for Chapter 27 of 3.1 "SystemVerilog Assertion API":

1) p. 251:

OLD:

vpiHandle vpi_register_assertion_cb(

vpiHandle, /* handle to assertion */

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

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

PLI_INT32 reason,

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,

} s_vpi_attempt_info, *p_vpi_attempt_info;

NEW:

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 attemptStartTime; /* Time attempt triggered */

} s_vpi_attempt_info, *p_vpi_attempt_info;

2) p. 252

OLD:

The callback function shall be supplied the following arguments:

1) the reason for the callback

2) the handle for the assertion

3) a pointer to an attempt information structure

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

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

- On disable, enable, reset and kill events, the info field is absent (a NULL pointer is given as the value

of info).

- On start and success events, only the attempt time field is valid.

- On a failure event, the attempt time and detail.failExpr are valid.

- On a step callback, the attempt time and detail.step elements are valid.

NEW:

The callback function shall be supplied the following arguments:

1) the reason for the callback 2) a pointer to the time of the callback

3) the handle for the assertion

4) a pointer to an attempt information structure

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

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

- On disable, enable, reset and kill callbacks, the info field is absent (a NULL pointer is given as the value

of info).

- On start and success callbacks, only the attemptStartTime field is valid.

- On a failure callback, the attemptStartTime and detail.failExpr are valid.

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

3) p. 253:

OLD:

Usage example: vpi_control(vpiAssertionKill, assertionHandle, attempt)

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, attempt)

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, attempt,

NEW:

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,

---
Thx.
-Bassam.

-- Dr. Bassam Tabbara Technical Manager, R&D Novas Software, Inc.

<http://www.novas.com/> http://www.novas.com (408) 467-7893

________________________________________________________________ The best thing to hit the internet in years - Juno SpeedBand! Surf the web up to FIVE TIMES FASTER! Only $14.95/ month - visit www.juno.com to sign up today!



This archive was generated by hypermail 2b28 : Fri Nov 14 2003 - 18:10:48 PST