Section 31.*

LRM-309

      we need to add 1 extra diagram. This new diagram should come just before the expressions diagram (31.40, page 446)

The new diagram is a copy of simple expression diagram from IEEE-1364 (26.6.25) with one addition: immediately after the variables reference in the simple  expression class, add "ref obj" (inside solid enclosure).

[To editors: This errata is needed to permit the representation of reference objects used in expressions.]

      in the typedef diagram (31.12, page 419) correct note 1 to read as follows:

1)       if the vpiTypedef is TRUE and the typedef creates an alias of another typedef, then  the vpiTypedefAlias shall return a non null handle which represents the handle to the aliased typedef.

Ex:

typedef enum bit [0:2] {red, yellow, blue} primary_colors;

typdef primary_colors colors;

 

If "h1" is a handle to the typespec colors, its vpiType shall return a vpiEnumTypespec, the vpiTypedef property shall be true, the vpiName property shall return "colors", the vpiTypedefAlias shall return a handle "h2" to the typespec "primary_colors" of vpiType vpiEnumTypespec.

The vpiTypedef property shall be false for h2 and its vpiTypedefAlias shall return null.

 

      add a new note to the typedef diagram (31.12, on notes page 420) reading:

6)       if a type is defined as an alias of another type, it inherits the vpiType of this other type.

Ex:

typedef time my_time;

my_time t;

 

The vpiTypespec of the variable named "t" shall return a handle h1 to the typespec "my_time" whose vpiType shall be a vpiTimeTypespec. The vpiTypedefAlias applied to handle h1 shall return a typespec handle h2 to the predefined type "time".

 

      in the typedef diagram (31.12, page 419) correct the iteration to range (at the bottom left of the diagram). Currently this relation is 1 to many from "void typespec".

It should be a 1 to many relation from "array typespec" (basically move the source of the arrow up from void typespec to array typespec)

 

      in the instance arrays diagram (31.14, page 421) the relation to range (on lhs of the diagram) should be an iterator, rather than a 1-to-1 relation.

 

Correct the notes underneath instance array to read as follows

1-       param assignments can only be obtained from non-primitive instance arrays

2-       to obtain all the dimensions of a multi-dimensional array, you must use the range iterator. Using the vpiLeftRange/vpiRightRange properties will only return the last dimension of a multi-dimensional array