On Feb 23, 11:05 am, "KJ" <Kevin.Jenni...@Unisys.com> wrote:
> On Feb 23, 9:41 am, Ralf Hildebrandt <Ralf-Hildebra...@gmx.de> wrote:
>
> > Brad Smallridge schrieb:
>
> > > I have some modules that accept a matrix of video bits.
> > > These are binarized windows of one bit per pixel.
> > > Presently I input the rows of bits using a separate
> > > std_logic_vector for each row of bits. I would like to
> > > clean this code up and input an array of std_logic_vector's.
>
> > Using 2D-Arrays as I/O signals _may_ be a problem for some synthesis
> > tools. If you encounter problems,
>
> KJ: Open a service request to the supplier of the synthesis tool
> complaining about their lack of support for two dimensional arrays.
> Mention to them that both Quartus and Modelsim handle them properly
> (tends to get somewhat more attention when you point out things that
> their competitors are doing that they can not). Also add that you'll
> consider their current lack of support for what is now a 20 year old
> feature of the language when deciding whether to continue using their
> parts and/or tools.
>
> At this point, you'll have done your part to help the supplier improve
> their tools but don't bother holding your breath waiting for the fix
> so continue on with what Brad posted....
>
> > create one large std_ulogic_vector and
> > put all elements in a line into it.
> > (Every n-dimensional structure can be mapped to an (n-1)-dimensional
> > structure concatenating the elements.)
>
> > Ralf
You can declare an array of std_logic_vectors, where the number of
vectors is unconstrained, but the size of each vector must be
constrained. This method works with virtually any synthesis tool. If
these are primary IO of the FPGA, the suggestion to code it with one
long slv is probably best.
Andy
|