Я хотел бы спросить, возможно ли использовать псевдоним с многомерными массивами в VHDL и как решить (1).
У меня есть следующий массив, определенный в начале архитектуры>
subtype WORD8 is STD_LOGIC_VECTOR (7 downto 0);
type IMEM is array (0 to 576) of WORD8;
signal MEM: IMEM;
Через программу я использую процессы и псевдоним части памяти, например, так>
alias Version: STD_LOGIC_VECTOR (3 downto 0) is MEM(0)(3 downto 0);
alias IHL: STD_LOGIC_VECTOR (3 downto 0) is MEM(0)(7 downto 4);
Эта следующая строка тоже псевдоним, обе строки работают
alias TOS: STD_LOGIC_VECTOR (7 downto 0) is MEM(1);
alias TOS: STD_LOGIC_VECTOR (7 downto 0) is MEM(1)(7 downto 0);
Теперь у меня есть данные, которые больше, чем WORD8, длиной 2xWORD8. Я попробовал следующий код, но безуспешно. Это вызывает>
Ошибка: индексированное имя не является 'std_logic_vector'
--(1) How to solve this?
alias TL: STD_LOGIC_VECTOR (15 downto 0) is MEM(3 downto 2);
Эта строка также выдает ту же ошибку>
alias TL: STD_LOGIC_VECTOR (15 downto 0) is MEM(3 downto 2)(7 downto 0);
Я экспериментировал с обходным путем но тоже безуспешно>
alias TL2: STD_LOGIC_VECTOR (7 downto 0) is MEM(2);
alias TL3: STD_LOGIC_VECTOR (7 downto 0) is MEM(3);
alias TL4: STD_LOGIC_VECTOR (15 downto 0) is TL3&TL2;