[sv-ec] Proposal for ERR-41 associatve array index restrictions


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