PS_GPIO是模块“ xillydemo”中的56位“ inout”信号。现在,我想将PS_GPIO的不同部分分配给顶部模块中的三个不同端口:
module xilly_mydemo(
input clk_100,
input otg_oc,
inout [23:0] PS_GPIO1,
output [23:0] PS_GPIO2,
input [7:0] PS_GPIO3,
output [3:0] GPIO_LED,
output [3:0] vga4_blue,
output [3:0] vga4_green,
output [3:0] vga4_red,
output vga_hsync,
output vga_vsync,
output audio_mclk,
output audio_dac,
input audio_adc,
input audio_bclk,
input audio_lrclk,
output smb_sclk,
inout smb_sdata,
output [1:0] smbus_addr,
output [23:0] sig_out);
wire [23:0]PS_GPIO1;
wire [23:0]PS_GPIO2;
wire [7:0] PS_GPIO3;
xillydemo xillydemo(
.clk_100(clk_100),
.otg_oc(otg_oc),
.PS_GPIO(PS_GPIO),
.GPIO_LED(GPIO_LED),
.vga4_blue(vga4_blue),
.vga4_green(vga4_green),
.vga4_red(vga4_red),
.vga_hsync(vga_hsync),
.vga_vsync(vga_vsync),
.audio_mclk(audio_mclk),
.audio_dac(audio_dac),
.audio_adc(audio_adc),
.audio_bclk(audio_bclk),
.audio_lrclk(audio_lrclk),
.smb_sclk(smb_sclk),
.smb_sdata(smb_sdata),
.smbus_addr(smbus_addr),
.sig_out(sig_out)
);
assign PS_GPIO1 = PS_GPIO[23:0];
assign PS_GPIO2= PS_GPIO[24:47];
assign PS_GPIO3=PS_GPIO[48:55];
endmodule
但是它显示“无法为PS_GPIO索引到非阵列类型的导线中”。 谁能帮我吗? 谢谢!
答案 0 :(得分:0)
您尚未在任何地方定义PS_GPIO
,因此Verilog假定只有一位。
即使这是固定的,我也不认为您走在正确的轨道上。
搞砸inout并将其拆分为输入,输出和inout端口至少是令人困惑的。我什至不确定该工具是否会接受此处编写的内容。
进行简洁的设计,在xillydemo
中创建三个端口,其中一个input
,一个output
和一个inout
都具有正确的宽度。