On 13/01/2015, at 9:37 am, Tristan Gingold <[email protected]> wrote:
> Indeed, GHDL is correct. See LRM93 4.3.2.2 Association lists:
>
> Furthermore, every scalar subelement of the explicitly declared interface
> object must be associated exactly once with an actual (or subelement thereof)
> in the same association list, and all such associations must appear in a
> contiguous sequence within that association list.
>
> So, the only way for GHDL to compile it is first to fix it, using eg a
> dummy signal.
And right before the NOTES in 4.3.2.2:
It is an error if an actual of open is associated with a formal that is
associated individually. An actual of open counts as the single association
allowed for the corresponding formal but does not supply a constant, signal, or
variable (as is appropriate to the object class of the formal) to the formal.
--
So you can't use an open association with the remaining subelement of the
formal. And that paragraph is also found in -2008, 6.5.7.1 so you can't point
to differences in the standard in support of different behavior by various
tools.
And there are two ways to supply a dummy, expanding the actual to contain more
elements than are used or use a separate dummy signal that is associated with
the individual formal subelement:
oData(8) => dummy(i),
oData(7 downto 0) => HRDATA(8 * i + 7 downto 8 * i),
And that is acceptable to ghdl, while not requiring selection when the data is
actually used.
_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss