还有其他方法可以在 Verilog 中初始化模块吗?

Is there any other way to initialize a module in Verilog?

我是 verilog 新手。在我预定义的处理器设计中,控制模块定义为:

module control(in,regdest,alusrc,memtoreg,regwrite,memread,memwrite,branch,funct,branch_cont0,branch_cont1,branch_cont2,aluop0,aluop1,aluop2);

但稍后在处理器模块中它被初始化如下:

 //Control unit
control cont(instruc[31:26],regdest,alusrc,memtoreg,regwrite,memread,memwrite,branch,
aluop1,aluop0);

前8个赋值似乎是正确的,但是在分支参数之后,还有一些其他参数需要设置。

我的问题是:verilog 中是否还有其他模块实现?因为这段代码可以正常工作。我可以正确地获得信号。(据我了解,控制模块在初始化时需要15个参数。)

我想你的意思是实例化一个模块。
有两种方法可以实例化一个模块。通过 connect-by-order(你有)和 connect-by-name。

//Control unit
control cont( .in(instruc[31:26]), .regdest(regdest),
  .alusrc(alusrc), .memtoreg(memtoreg), .regwrite(regwrite),
  .memread(memread), .memwrite(memwrite),
  .aluop1(aluop1), .aluop0(aluop0),
  .branch(branch)
);

如果您启用了 SystemVerilog,并且端口名称和信号名称相同,您可以使用 .portname(例如:.in(instruc[31:26]), .regdest, .alusrc)。或者 .* 将推断与匹配端口和信号的连接。