Re: [sv-bc] unpacked multi-D array type compatibility

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Sun Mar 05 2006 - 00:38:09 PST
Fair enough.  But array_2 is really a one-dimensional array, too,
because all arrays in Verilog are one-dimensional.  An array in Verilog
is said to be "multidimensional" if its elements are arrays.

The syntax for declaring nested array types without defining them in
typedef stages is just sugar.

-- Brad


-----Original Message-----
From: Bresticker, Shalom [mailto:shalom.bresticker@intel.com] 
Sent: Saturday, March 04, 2006 11:34 PM
To: Brad Pierce; sv-bc@eda.org
Subject: RE: [sv-bc] unpacked multi-D array type compatibility

Aah, but there's the very ambiguity.

You state,
> Type matching of multidimensional arrays is not impacted by
> whether the multiple dimensions are built up in stages with
> typedef.

But does the LRM say that unambiguously?

You say, "Both arrays have 2 unpacked dimensions." That is not at all
clear. That may be the intention, but I don't see that the LRM says that
unambiguously. A reasonable reading of the text would be that array_1 is
a 1-dimensional array of elements whose type is itself a 1-D array. Does
the LRM unambiguously say otherwise?

Shalom

> -----Original Message-----
> From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On
> Behalf Of Brad Pierce
> Sent: Sunday, March 05, 2006 9:14 AM
> To: sv-bc@eda.org
> Subject: Re: [sv-bc] unpacked multi-D array type compatibility
> 
> They match, because, according to 6.9.1.f, "Two array types
> match if they have the same number of unpacked dimensions and
> their slowest varying dimensions have matching types and the
> same left and right range bounds. The type of the slowest
> varying dimension of a multidimensional array type is itself an
> array type."
> 
> Both arrays have 2 unpacked dimensions.  The slowest-varying
> dimensions have the same left and right bounds (1 and 3).
> Likewise, the types of the slowest-varying dimensions are both
> one-dimensional unpacked arrays of logic from 1 up to 5, so
> they match.
> 
> Type matching of multidimensional arrays is not impacted by
> whether the multiple dimensions are built up in stages with
> typedef.
> 
> -- Brad
> 
> -----Original Message-----
> From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On
> Behalf Of Bresticker, Shalom
> Sent: Saturday, March 04, 2006 10:22 PM
> To: sv-bc@eda.org
> Subject: [sv-bc] unpacked multi-D array type compatibility
> 
> Hi,
> 
> If I have 2 unpacked arrays:
> 
> Array 1
> =======
> typedef logic typ_a [1:5] ;
> typ_a array_1 [1:3] ;
> 
> Array 2
> =======
> logic array_2 [1:3][1:5] ;
> 
> I hope I got these syntaxes correct.
> 
> What degree of type compatibility (section 6.9) do these two
> arrays have? Where is it stated unambiguously in the LRM?
Received on Sun Mar 5 00:38:25 2006

This archive was generated by hypermail 2.1.8 : Sun Mar 05 2006 - 00:39:42 PST