Subject: [sv-cc] Date: Fri, 28 Feb 2003 15:31:10 -0800
From: Bassam Tabbara (bassam@novas.com)
Date: Fri Feb 28 2003 - 15:31:41 PST
Hello Joao and Joe, (Thanks to Surrendra from SV-AC for pointing this
out).
Here's some more feedback on the Assertion API. We really need to
explicitly add a "sequence" directive (this used to be implicit in the
temporal expression nomenclature but it was not clear how to
access/sense this in the rest of the sections...). Just some
reorg/clarification to explain that we have something like:
Clock: Directive (sequence, assert, assume, cover, check, OTHER)
-Assertion Temporal Expression-
Here's my suggestion on how to accomplish this clarification...
2.1.2 Nomenclature
The following terms are used in this standard.
Directive- a type applied to a temporal expression describing how the
results of the temporal expression
are to be captured and/or interpreted.
Assertion clock - the Verilog event expression that indicates to an
assertion when time has advanced
(and when HDL signals can be sampled, etc.).
Assertion Temporal expression - A declarative expression (one or more
clock cycles) describing the behavior of a system
over time. // This is the "body" of the assertion.
2.2.1 Object types
This section lists the object type VPI calls. The VPI reserved range for
these call is 700 - 729.
#define vpiAssertion 700 /* assertion */
2.2.2 Object properties
This section lists the object property VPI calls. The VPI reserved range
for these call is 700 - 729.
/* Directives as properties */
#define vpiSequenceAssertion 701
#define vpiAssertAssertion 702
#define vpiAssumeAssertion 703
#define vpiRestrictAssertion 704
#define vpiCoverAssertion 705
#define vpiCheckAssertion 705 /* inlined behavior assertion */
#define vpiOtherDirectiveAssertion 706 /* placeholder for other
assertion directive */
2.3.1 Obtaining assertion handles
....
4) /* room for expanding iteration later, filtering based on "object
property" e.g.
itr = vpi_iterate_property(vpiAssertion, /* property_here: e.g.
vpiCheckAssertion*/, NULL);
while (assertion = vpi_scan(itr)) {
/* process assertion */
}
......
2.3.2 Obtaining static assertion information
The following information about an assertion is considered to be
"static".
- Assertion name
- Instance in which the assertion occurs
- Module definition containing the assertion
- Assertion directive
1) assert
2) check
3) assume
4) cover
5) sequence
6) Any assertion updates from the SV-AC.
- Assertion source information: the file, line, and column where the
assertion is defined.
- Assertion clocking domain/expression2
** Rest should work fine with this addition....
Thanks
-Bassam.
-- Dr. Bassam Tabbara Technical Manager, R&D Novas Software, Inc.http://www.novas.com <http://www.novas.com/> (408) 467-7893
This archive was generated by hypermail 2b28 : Fri Feb 28 2003 - 15:32:19 PST