【发布时间】:2021-11-17 10:13:10
【问题描述】:
我有两个定义如下的二维数组
type ram_1300_block is array (1300 downto 0) of std_logic_vector(7 downto 0);
type ram_2700_block is array (2700 downto 0) of std_logic_vector(7 downto 0);
rx_ram : ram_1300_block;
Q1_ram : ram_2700_block;
然后我在我的代码中使用下面的赋值语句:
Q1_ram(1300 downto 1) <= rx_ram(1341 downto 42);
在合成时,我在 vivado 2015.3 中遇到以下错误
Synth 8-2234 indexed name is not a ram_3700 block?
有什么解决方法吗?
由于资源限制,我不想增加小数组大小。
【问题讨论】:
-
这些不是二维数组。它们是一维数组类型的一维数组
-
请注意,在单个赋值语句中实际上将整个 RAM 分配给另一个 RAM 在模拟中会很好,但会合成到糟糕的硬件(超过 10,000 FF)
标签: arrays 2d vhdl assignment-operator