主模块的output不能加reg,只在子模块的output 加reg。
关于子模块调用,有两种调用方式。
第一种是位置对应,如:bcd accbcd(in8,out71,ou72,out73),如上图所示。
第二种是信号名对应方式,此时不必按顺序。如:accbcd(.in8( in8 ),.out71(out72),.out72(out71),.out73(out73))。.xxx对应的是子模块中的变量,(xxx)括号内对应的是主模块的参数。
对于简单的代码来说,子模块和主模块写在同一Verilog HDL file内即可。