我希望为基于SPI的IO扩展器创建通用驱动程序。想法是在实例化中传递初始化值,以匹配所请求的IO设置。
我的当前尝试看起来像这样:
问题出在IO_cfg数组上,我尝试过多种不同的方式(如使用/不使用初始值等),但似乎无法确定如何指定数组。
我相信读到过可以将数组作为通用类型传递,但是一直没有得到很好的运行结果。Xilinx ISE只告诉我“语法错误:'array'附近”,这并不足以让我有所进展。
如果能提供任何帮助将不胜感激。
在实例化此模块时,我总是需要7个值。
我的当前尝试看起来像这样:
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只告诉我“语法错误:'array'附近”,这并不足以让我有所进展。
如果能提供任何帮助将不胜感激。
在实例化此模块时,我总是需要7个值。
integer_vector
。 - Martin Thompson