RE: [sv-cc] assertion erratas: 2 minor issues


Subject: RE: [sv-cc] assertion erratas: 2 minor issues
From: Swapnajit Mittra (mittra@juno.com)
Date: Wed Jan 21 2004 - 12:26:02 PST


   Michael,

   Please make a composite errata that includes this and
   your previous doc (which is on poll). We should not pass
   too many documents on the same subject to our LRM team.

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

Please note: message attached

attached mail follows:


Francoise, thx a lot for the careful reading, you have found 2 errata: [Swapnajit please take care of sending to David (and be careful to keep all the courier fonts), I think this passed already, if anyone objects to the fixes/changes please voice your concern we can close on this by Friday] - "info" field is correct, this is talking about the returned info *pointer*, so "info" is correct, just change the word from field to pointer, and explain that no attempt structure info is available. - yes, apparently that is bug: we can say cb_time is NULL, but now that I think about it I'd rather we return the time of the disable/..... (makes sense to mark some sort of "endpoint" to the assertion). - I also added another bug that bugged me :-)! See the first bullet below (line before the "info" bug) Thanks, ok with you Francoise ? Please give ths a once over ... -Bassam. %%%%%%%%%%%% 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.

-----Original Message----- From: owner-sv-cc@server.eda.org [mailto:owner-sv-cc@server.eda.org] On Behalf Of Francoise Martinolle Sent: Wednesday, January 21, 2004 7:53 AM To: sv-cc@server.eda.org Subject: [sv-cc] assertion erratas: 2 minor issues

I noted a problem in the assertion errata which we are supposed to vote on today.

The description is incorrect, there is no "info" field in the attempt info structure. It should say that the "step" field is NULL. Additionally we should replace the sentence: "not possible, data supplied is NULL." with "the cb_time field shall be NULL"

Text is the following. The attempt information structure contains details relevant to the specific event that occurred. - On disable, enable, reset and kill callbacks, the info field is NULL.

- 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 elementsfields are valid. NOTES 1) ... 2) ... 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 - not possible, data supplied is NULL. 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.

________________________________________________________________ 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 : Wed Jan 21 2004 - 12:32:05 PST