Как определить целочисленный массив как универсальный в VHDL?

Я пытаюсь создать универсальный драйвер для расширителя ввода-вывода на основе 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 значений при создании экземпляра этого модуля.

6
задан wap26 3 August 2012 в 08:55
поделиться