我是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个参数)
我想你的意思是实例化一个模块。
有两种方法来实例化模块。通过按顺序连接(您有)和按名称连接。
//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
)。或.*
,将推断连接到匹配的端口和信号。