2011-02-03 33 views
4

我在VHDL访问阵列时存在如下的问题:数组索引到宽为阵列

说我有一个排列构成的非大小2 ^的n,例如大小6. 。然后,如果我想要使用宽度为3位的索引(= ceil(log2(6)))访问此数组,该索引显然可以达到两个位置,即7和8,这超出了我正在访问的数组的大小。赛灵思ISE在这种情况下给我一个警告。

我应该怎么办?我可能的解决方案如下:

1.)忽略警告。希望综合是聪明的。

2.)只能使用大小为2^n的数组。希望未使用的数组部分将被优化。

回答

3

我建议在这种情况下忽略警告。合成可以处理这个。

合成也可以很容易地优化不使用的任何东西,但人为增加的数组大小看起来像是过度杀伤。

+3

只是一个想法:你可以使用“整数范围0到5”而不是3位向量。这可能会使模拟器感到高兴,并为优化的综合工具提供清晰的提示。 – Philippe 2011-02-03 14:56:01