使用较小的聚合在 VHDL 中聚合分配

Aggregate assignment in VHDL using smaller aggregates

有没有办法这样写:

x <= (2 downto 0 => y(2 downto 0), others => y(3));

而不是这个:

x <= (2 => y(2), 1 => y(1), 0 => y(0), others => y(3));

谢谢。

显示声明是个好主意。可以根据您对 x 的作业中的第二个聚合的期望来回答。

lasplund 对您的问题的评论认为它应该起作用是基于 IEEE 标准 1076-2008 兼容性,其中添加了聚合中的切片。 (参见 Peter Ashenden 和 Jim Lewis 的书 VHDL 2008 Just the New Stuff,6.4 Slices in Aggregates)。

支持因 VHDL 工具实现而异,通常是提供 -2008 支持的命令行或配置选项。该标准的先前修订仅遵循您显然可以使用单元素关联的替代方案。

参见 1076-2008 8.5 切片名称和 9.3.3.3 数组聚合。