Subject: [sv-ec] Proposal for ERR-41 associatve array index restrictions
From: Dave Rich (David.Rich@synopsys.com)
Date: Tue Nov 11 2003 - 00:20:44 PST
The following changed refer to SV3.1 or SV3.1aDraft1
Add the text in blue to the end of the fist paragraph in section 4.9
Associative arrays do not have any storage allocated until it is used,
and the index expression is not
restricted to integral expressions, but can be of any type where the
equality operation has been defined..
Add a new section after 4.9.6
4.9.7 Other user defined types
Example:
typedef struct {real R; int I[*];} Unpkt;
int array_name [ Unpkt ];
In general, associative arrays that specify an index of any type have
the following properties
* Declared Indices must have the equality operator defined for its
type to be legal. This includes all of the dynamically sized types
as legal Index types
* An Index expression that is or contains X or Z in any of its
elements is invalid.
* An Index expression that is or contains a null class handle or
chandle in any of its elements is invalid.
* An Index expression that is or contains an empty value for any of
it elements does not make the Index invalid.
* If the relational operator is defined for the Index type, the
ordering is as defined in the preceding sections. If not, the
relative ordering of any two entries in such an associative array
can vary, even between successive runs of the same tool. However,
the relative ordering must remain the same within the same
simulation run while no Indices have been added or deleted.
-- -- David.Rich@Synopsys.com Technical Marketing Consultant http://www.SystemVerilog.org tele: 650-584-4026 cell: 510-589-2625
This archive was generated by hypermail 2b28 : Tue Nov 11 2003 - 00:24:33 PST