我正在尝试为基于 SPI 的 IO 扩展器创建通用驱动程序。这个想法是在实例化中传递与请求的 IO 设置相匹配的初始化值。
我目前的尝试如下所示:
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 数组上,我尝试了各种尝试 w/wo 初始化值等。似乎无法弄清楚如何指定数组。
我相信已经读到您可以将数组作为泛型传递,但仍然没有太多运气。Xilinx ISE 只是告诉我“'array' 附近的语法错误”,这不足以让我前进。
任何帮助,将不胜感激
实例化此模块时,我总是需要 7 个值。