Я пытаюсь создать универсальный драйвер для расширителя ввода-вывода на основе SPI. Идея состоит в том, чтобы передать значения инициализации в экземпляре, который соответствует запрошенной настройке ввода-вывода.
Моя текущая попытка выглядит так:
entity max7301_simple is
generic (
IO_cfg : array (1 to 7) OF integer range 0 to 255 := (16#55#, 16#55#, 16#55#, 16#55#, 16#55#, 16#55#, 16#55#)
);
port (
-- Application interface :
clk_i : in std_logic; -- input clock, xx MHz.
rst_i : in std_logic; -- sync reset.
en_i : in std_logic; -- enable, forces re-init of pins on MAX7301.
output_i : in std_logic_vector(27 downto 0); --data to write to output pins on MAX7301
irq_o : out std_logic; -- IRQ, TODO: what triggers, change on inputs ?
input_o : out std_logic_vector(27 downto 0); --data read from input pins on MAX7301
-- MAX7301 SPI interface
sclk : out std_logic; -- SPI clock
din : in std_logic; -- SPI data input
dout : out std_logic; -- SPI read data
cs : out std_logic -- SPI chip select
);
end max7301_simple;
Проблема связана с массивом IO _cfg, я пробовал разные попытки с / без значений инициализации и т. Д. И не могу понять, как указать массив.
Я полагаю, что читал, что вы можете передать массив как общий, но все еще не повезло с этим. Xilinx ISE просто сообщает med «синтаксическая ошибка рядом с« массивом »», что недостаточно информативно, чтобы продвинуть меня вперед.
Будем признательны за любую помощь
Мне всегда нужно 7 значений при создании экземпляра этого модуля.