对模块定义说明如下:
(1)一个模块以module 开始,以endmodule结束
(2)模块中应包括:模块名、端口定义、I/O 说明、内部信号声明、功能定义
(3)模块中的语句除顺序块外,都是并行的
(4)输入输出端口若不特别说明类型及位宽,默认为1位wire型
module AndGate_version1(
input i1,
input i2,
output o1
);//模块定义、端口定义、IO说明
assign o1 = i1&i2;//模块功能定义
endmodule//结束模块的定义
//另一种表示法
module AndGate_version2(i3,i4,o2);
input i3;
input i4;//也可合并为:input i3,i4;
output o2;
//上为IO说明
//内部信号声明
reg x;
assign o2 = i3&i4;//模块功能定义
endmodule
//3输入8位或门
module OrGate8Bits(
input [7:0] a,
input [7:0] b,
input [7:0] c,
output [7:0] result
);
assign result = a | b | c;
endmodule