我有这样的代码:
signal IndexA_1 : std_logic_vector(31 downto 0);
signal IndexA_2 : std_logic_vector(31 downto 0);
type Register_array_type is array (0 to 255) of
std_logic_vector(63 downto 0);
signal RegArray : Register_array_type;
IndexA_1 <= data_in1;
IndexA_2 <= data_in2;
RegArray(1) <= x"00000000_0000000b";
RegArray(2) <= x"00000000_0000000c";
RegArray(3) <= x"00000000_0000000d";
RegArray(4) <= x"00000000_0000000e";
RegArray(5) <= x"00000000_0000000f";
RegArray(to_integer(unsigned(IndexA_1(7 downto 0)))) <= Rx_data_1 ;
RegArray(to_integer(unsigned(IndexA_2(7 downto 0)))) <= Rx_data_2 ;
例如,我想将RegArray的一部分分配给某个固定值,而数组的另一部分则从Rx_data_x获取数据。因此,在代码中,我知道IndexA_1的索引不会与固定索引重叠(在代码中,索引永远不会是1,2、3、4或5)。但是我遇到了多个驱动程序错误(因为Quartus认为IndexA_1&2可能与1,2,3,4,5重叠)。任何想法如何为此编码可以避免错误?
谢谢!