错误:索引名称不是整数

时间:2015-10-22 15:02:37

标签: vhdl fpga

合成项目时出错了。我在这一行中有错误:

axi_rdata <= patternCount(axi_awaddr(ADDR_LSB+OPT_MEM_ADDR_BITS downto ADDR_LSB));

我收到了这个错误:

  

[Synth 8-2234]索引名称不是整数

如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

您已声明数组类型:

type PatternCount_memory is array (31 to 0) of std_logic_vector(4 downto 0);
signal patternCount : PatternCount_memory;

您通常会像这样访问此数组中的元素:

a <= patternCount(3);
b <= patternCount(0);

如您所见,数组使用整数编制索引。如果你有一个位域:

signal bit_field : std_logic_vector(4 downto 0) := "01010";

然后使用以下方法直接索引数组是错误的:

a <= patternCount(bit_field);  -- Error, indexed name is not an integer

您可能希望转换您的位域,以便将其解释为整数:

a <= patternCount(to_integer(unsigned(bit_field)));  -- OK, we have converted our bitfield

使用numeric_std包时可以使用这些转换功能。