Я довольно новичок в VHDL, и я запускаю некоторые фрагменты кода, который мне дали, чтобы посмотреть, что он делает. Существует специальный тип массива, который я хочу видеть в консоли, но я получаю сообщение об ошибке при попытке его записать.
entity hello_world is
end entity hello_world;
library STD;
library IEEE;
use IEEE.std_logic_1164.all;
use STD.textio.all;
use IEEE.std_logic_textio.all;
use IEEE.numeric_std.all;
architecture test of hello_world is
type row_type is array(0 to 2) of std_logic_vector(3 downto 0);
type new_type is array(0 to 1) of row_type;
signal max_new : new_type := (others => (others => (others => '0')));
begin
my_print : process is
variable my_line : line;
begin
write(my_line, string'("Value of max_new"));
write(my_line, max_new);
writeline(output, my_line);
wait;
end process my_print;
end architecture test;
Ошибка, которую я получаю во время симуляции:
Ошибка: ошибка типа около 'max_new': ожидаемый тип 'std_ulogic'. Ошибка: формальное 'l' режима inout должно иметь фактическую привязку. Ошибка: формальное значение не имеет фактического значения или значения по умолчанию. Ошибка: префикс индексированного имени типа 'void' не является типом массива
Если я правильно понял, тип строки - это массив размера 3, в каждой позиции у меня есть вектор из 4 битов. new_type - это массив размера 2, в каждой позиции у меня есть row_type, который является массивом размера 3 с вектором 4 бита в каждой позиции. Это правильно? Поскольку он инициализирован в 0, я ожидаю увидеть только это.
Я использую Vivado 2018.3 для симуляции.
Любая помощь будет принята с благодарностью!