合成项目时出错了。我在这一行中有错误:
axi_rdata <= patternCount(axi_awaddr(ADDR_LSB+OPT_MEM_ADDR_BITS downto ADDR_LSB));
我收到了这个错误:
[Synth 8-2234]索引名称不是整数
如果你能帮助我,我将不胜感激。
答案 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
包时可以使用这些转换功能。