[sv-cc] Date: Fri, 28 Feb 2003 15:31:10 -0800


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