Verilog 如何将输入输出信号连接到输出和输入端口
PS_GPIO是模块“xillydemo”中的56位“输入输出”信号。现在,我想将PSGPIO的不同部分分配给顶部模块中的三个不同端口:Verilog 如何将输入输出信号连接到输出和输入端口,verilog,Verilog,PS_GPIO是模块“xillydemo”中的56位“输入输出”信号。现在,我想将PSGPIO的不同部分分配给顶部模块中的三个不同端口: 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_bl
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的非数组类型导线”。
有人能帮我吗?
谢谢 您还没有在任何地方定义
PS\GPIO
,因此Verilog采用单个位
即使这是固定的,我不认为你在正确的轨道上。
在输入、输出和输入输出端口中乱搞输入输出并将其拆分至少是令人困惑的。我甚至不确定该工具是否会接受上面写的内容。做一个干净的设计,在
xillydemo
中做三个端口,一个输入
,一个输出
和一个输入
都具有正确的宽度 “PS_GPIO”是“xillybus”系统中的一个56位输入输出端口,开发人员制作了PS_GPIO端口来控制zedboard上的不同GPIO,因此它是固定的。我想用其中一些作为输入,另一些作为输出。有什么办法吗?唉!如果你让业余爱好者乱用HDL,你就会得到这样的结果。(我指的是xillybus的设计师,不是你)。他们应该有3套GPIO端口,输入、输出和tri。添加wire[55:0]PS\u GPIO代码>并从那里尝试。请注意,分配给PS_GPIO2和PS_GPIO3的索引是交换的(从低到高),这是您想要的吗?