Re: [sv-bc] Built-in types are not packed arrays

From: Brad Pierce <Brad.Pierce@synopsys.com>
Date: Wed Nov 24 2004 - 15:36:01 PST

The proposal approved for erratum 101 makes clear that built-in
integer types and packed structs have 1 dimension. But neither
that proposal nor the approved proposal for erratum 254 (see its
definition of simple bit vector type) indicate that they are packed
arrays.

According to 254 each built-in type *matches* a packed array of one
dimension. For example,

  typedef bit signed [7:0] BYTE; // matches the byte type
  typedef bit signed [0:7] ETYB; // does not match the byte type

hence $typeof(BYTE) == $typeof(byte) and $typeof(ETYB) != $typeof(byte).
But BYTE and byte are not identical types and they are distinguishable
with $typename().

In open erratum 51, James Vellenga points to possible ambiguity
in the following text from Section 4.2 --

  "An integer type with a predefined width can be treated as a single
  dimension packed array ..."

Is this really ambiguous? If so, what textual tweaking would need
to be made? How about something along these lines --

  "Although an integer type with a predefined width is not a packed array,
   it matches (see Section 5.8.1), and can be selected from as if it
   were, a packed array type with a single [n-1:0] dimension"

Additionally, would it be a useful enhancement to allow the "array"
querying functions such as $left() to be applicable also to built-in
integer types?

-- Brad
Received on Wed Nov 24 15:34:51 2004

This archive was generated by hypermail 2.1.8 : Wed Nov 24 2004 - 15:34:54 PST