假设你有一个带有所有必需语句和作业的模块+子模块:
module top (...);
input wire [7:0] sw;
output wire [7:0] o_ledset;
output wire [6:0] o_LED1;
output wire [6:0] o_LED2;
output wire [6:0] o_LED3;
output wire [6:0] o_LED4;
reg [7:0] ledset;
reg [6:0] LED1;
reg [6:0] LED2;
reg [6:0] LED3;
reg [6:0] LED4;
assign o_ledset = ~ledset;
assign o_LED1 = ~LED1;
assign o_LED2 = ~LED2;
assign o_LED3 = ~LED3;
assign o_LED4 = ~LED4;
step1 inst1 (sw, ledset, LED1, LED2, LED3, LED4);
....
endmodule
module step1 (sw, ledset, LED1, LED2, LED3, LED4);
input wire [7:0] sw;
output reg [7:0] ledset;
output reg [6:0] LED1;
output reg [6:0] LED2;
output reg [6:0] LED3;
output reg [6:0] LED4;
然而,当我尝试在ISPLever中生成JEDEC文件时,它会抛出一个错误,指出它是"期望连接输出连接,找到ledset。"由于LED用于低电平有效配置,我必须使用ledset和LEDx作为模块实例化的参数。
我遵循其他网站的建议,包括宣布ledset为"输出线"只是"输出"在step1模块中,它只是告诉我"分配目标(变量)必须是reg或genvar"类型。
我还尝试使用以下行实例化模块:
step1 inst1 (.sw (sw),
.ledset (ledset),
.LED1 (LED1),
.LED2 (LED2),
.LED3 (LED3),
.LED4 (LED4));
由于某种原因,它没有被认可,因为它会引发一个期待的结束模式"错误。我尝试的另一种方法是更改模块声明:
module step1 (
input wire [7:0] sw,
output reg [7:0] ledset,
output reg [6:0] LED1,
output reg [6:0] LED2,
output reg [6:0] LED3,
output reg [6:0] LED4);
刚刚抛出相同的错误,结果我被困在端口声明部分。
如何解决此错误?