Subject: RE: [sv-cc] Detailed comments on latest rev of Bassam's proposal
From: Bassam Tabbara (bassam@novas.com)
Date: Mon Nov 24 2003 - 12:21:32 PST
Thanks Doug for the feedback. I've update with (1), (2), (3), (5).
With regards to (4) yes that is the intent, when it comes to obtaining a
value, instead of scanning a value list, you can do a simple time tag
test of the traverse handle(s) (belonging to the collection) to see if
there is a VC or not. I updated the example on p. 13-14 to address this:
"Alternatively we may wish to go to the next VC of the traverse
collection defined to be the VC with the smallest time among the VCs in
the traverse object in the collection; again traverse objects with no
VCs are ignored. This is shown in the following code snippet.
vpiHandle loadCollection = ...;
vpiHandle trvsCollection;
vpiHandle vc_trvs1_hdl, vc_trvs2_hdl;
p_vpi_time time_p, time1_p, time2_p;
/* Create traverse collection */
trvsCollection = vpi_handle(vpiTrvsCollection, loadCollection);
vc_trvs1_hdl = ... ; /* some element of trvsCollection
*/
vc_trvs2_hdl = ... ;/* another element of trvsCollection
*/
/* Go to earliest next VC in the collection */
for (;;) { /* for all collection VCs in time */
if (vpi_control(vpiTrvsNextVC, trvsCollection) == 0) {
/* already at MaxTime */
break; /* cannot go further */
}
vpi_get_time(trvsCollection, time_p);
/* Time of VC */
/* Test to see which elements have a VC at this time */
vpi_get_time(vc_trvs1_hdl, time1_p);
if (time1_p->real == time_p->real) {
/* Element has a VC */
vpi_get_value(vc_trvs1_hdl, value_p);
/* VC data */
/* Do something at this VC point */
...
}
...
}
By testing the traverse handle time of any element against the
collection VC time we can find out if the element has a VC at that time
or not. This is shown in the last segment of the code sample above."
-- Dr. Bassam Tabbara Technical Manager, R&D Novas Software, Inc.http://www.novas.com (408) 467-7893
> -----Original Message----- > From: owner-sv-cc@eda.org [mailto:owner-sv-cc@eda.org] On > Behalf Of Warmke, Doug > Sent: Friday, November 21, 2003 1:55 PM > To: sv-cc@eda.org > Subject: [sv-cc] Detailed comments on latest rev of Bassam's proposal > > > Bassam, > > Here are some comments & questions on the proposal from our > internal R&D staff. We feel you are moving in the right > direction. Please keep up the progress! > > Regards, > Doug > > 1) The references to "vpi_get_value(vpiType,<object_handle>)" > on pages 2 and 5 are incorrect. The prototype of vpi_get_value() > is vpi_get_value( <object_handle>, <value_pointer> ). > > 2) I don't understand this sentence in section 29.2.2.2.2: > "The function can be alteratively obtained indirectly through > a combination of vpi_control() call to go to the min, max, or > specific time, or without calling vpi_control() use the place the > handle is already pointing at (if valid), and a vpi_get_time() > call." > Is this trying to say that vpi_control() moves to the specified > time whereas vpi_get_time() simply returns the time > being pointed at? > This needs to be reworded. > > 3) A comment should be inserted somewhere that specifically states > that vpi_scan() does NOT automatically free a collection handle > that it is scanning when it returns NULL. > > 4) In regard to time-ordered traversal using a traverse collection, > when vpi_control() is used to move to the next or previous > value change, there is no way to know which objects in the > collection are the ones that had actual value changes. You > basically have to get the value of every object in the collection > because you can't tell which one changed. Is this the intended > functionality? > > 5) vpi_trvs_get_time() - In regard to vpiTrvsTime used on a traverse > collection, instead of having it be "undefined and left to tool > implementation", why not define something so tools can > be consistent? > How about giving this function a return value? It could return 1 > on success and 0 on failure. It would succeed if the handle is a > single object or a collection where all objects in the collection > are at the same time. It would fail if the handle is a > collection > where all objects in the collection are not at the same time. On > failure, the time_p parameter would not be modified. >
This archive was generated by hypermail 2b28 : Mon Nov 24 2003 - 12:23:21 PST