模块调用
模块调用有两种方法:
位置关联:
引用时,严格按照模块定义的端口顺序来连接,不用标明原模块定义时规定的端口名。
名称关联:
引用时用”.”符号,标明原模块定义时规定的端口名
例如:
原模块:
module and (C,A,B);
input A,B;
output C;
...
位置关联:
and A1 (T3,A,B); //实例化时采用位置关联,T3对应输出端口C,A对应A,B对应B
名称关联:
and A2 (.C(T3),.A(A), .B(B));//实例化时采用名字关联,.C是and器件的端口,其与信号T3相连
建议:在例化的端口映射中采用名字关联,这样,当被调用的模块管脚改变时不易出错。
悬空端口的处理
在实例化中,可能有些管脚没用到,可在映射中采用空白处理。
更多参见这里
模块命名
注意事项:
1.模块命可以由字母,数字,下划线组成。
2.模块第一个字母必须是字母。
3.命名是大小写敏感的。
4.最好模块命能表明模块意思。
5.模块命要和文件名一致。
6.在verilog中,也可以使用ANSI C风格进行端口声明
如(module fulladd4(output reg [3:0] sum))