0
當我合成我的項目時出現錯誤。我有一個錯誤在這行:錯誤:索引名稱不是整數
axi_rdata <= patternCount(axi_awaddr(ADDR_LSB+OPT_MEM_ADDR_BITS downto ADDR_LSB));
,我得到這個錯誤:
[Synth 8-2234] indexed name is not a integer
我將不勝感激,如果你能幫助我。
當我合成我的項目時出現錯誤。我有一個錯誤在這行:錯誤:索引名稱不是整數
axi_rdata <= patternCount(axi_awaddr(ADDR_LSB+OPT_MEM_ADDR_BITS downto ADDR_LSB));
,我得到這個錯誤:
[Synth 8-2234] indexed name is not a integer
我將不勝感激,如果你能幫助我。
您已經聲明數組類型:
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
包時可以使用這些轉換函數。
非常感謝你,它被解決了,它真的幫助完整 – mohi
您需要爲此代碼段中使用的對象添加聲明。 –
最基本的問題是,你試圖通過'axi_awaddr'中的一個位域來索引'patternCount',它可能是某種數組。你只能用一個整數索引一個數組。如果你澄清問題中的對象類型,我可以回答。 –
@scary_jeff感謝回答,這是'patternCount'的類型: 'type PatternCount_memory是std_logic_vector(4 downto 0)的數組(31到0); \t signal patternCount:PatternCount_memory; ' – mohi