[sv-cc] Assertion API errata


Subject: [sv-cc] Assertion API errata
From: Joao Geada (Joao.Geada@synopsys.com)
Date: Fri Jan 23 2004 - 14:52:49 PST


David,

below is the finalized Assertion API errata from Bassam/Michael that is to
be included into draft4 of the LRM.

Thanks,

Joao

%%%%%%%%%%%% Corrected LRM submission as of 1/21/04, this is an LRM errata
going into draft 4%%%%%%%%%%%%%
Section 28.4.2, "Placing assertion callbacks"
update this part of LRM
[prototype for vpi_register_assertion_cb()]
Change (changes in red and blue):
      /* typedef for vpi_register_assertion_cb callback function */
      typedef PLI_INT32 (vpi_assertion_callback_func)(
         PLI_INT32 reason, /* callback reason */
         p_vpi_time cb_time, /* callback time */
         vpiHandle assertion, /* handle to assertion */
         p_vpi_attempt_info info, /* attempt related information */
         PLI_BYTE8 *user_data /* user data entered upon registration */
      );
      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 ),
            vpi_assertion_callback_func *cb_rtn,
            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;

[towards the end of the section, make the following change (in Blue), also
add the 3rd and 4th NOTES at the end of this section]

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

— On disable, enable, reset and kill callbacks, the info field is NULL
returned p_vpi_attempt_info info pointer is NULL and no attempt information
is available.

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

— On a cbAssertionFailure callback, the attemptStartTime and
detail.failExpr fields are valid.

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

NOTES

3 -- The content of the cb_time field depends on the reason identified by
the reason field, as follows:
       — cbAssertionStart - cb_time is the time when the assertion attempt
has been started.
       — cbAssertionSuccess, cbAssertionFailure - cb_time is the time when
the assertion succeeded/failed.
       — cbAssertionStepSuccess, cbAssertionStepFailure - cb_time is the
time when the assertion attempt step succeeded/failed.
       — cbAssertionDisable, cbAssertionEnable, cbAssertionReset,
cbAssertionKill - cb_time is the time when the assertion
            attempt was disabled/enabled/reset/killed.
4 -- In contrast to cb_time, the content of attemptStartTime is always the
start time of the actual attempt of an assertion. It can be used as an
unique ID that distinguishes the attempts of any given assertion.

============================================================================
==
Joao Geada, PhD Principal Engineer Verif Tech
Group
Synopsys, Inc TEL: (508)
263-8083
377 Simarano Drive, Suite 300, FAX: (508)
263-8069
Marlboro, MA 01752, USA
============================================================================
==



This archive was generated by hypermail 2b28 : Fri Jan 23 2004 - 14:58:01 PST