前面已经介绍了什么是HDL,现在我们来了解一下HDL的模块和数据流方式。
1、模块
模块是Verilog的基本描述单位,用于描述某个设计的功能或结构与其他模块通信的·外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述;设计数据流行行为使用连续赋值语句进行描述;时序行为使用过程结构描述。一个模块可以在另一个模块中使用。
一个模块基本语法如下:
module module_name(port_list);
Declarations:
reg,wire,parameter,
input,output,inout,
function,task,.......
Statements:
initial statement
Always statement
Module instantiation
Gate instantiation
Udp instantiation
Continuous assignment
endmodule
说明部分和语句可以散布在模块的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为使得模块有好的可读性,最好把说明语句放在语句前面。
下面举一个半加器电路的模块例子。
程序如下:
module halfadder(A,B,Sum,Carry);
input A,B;
output Sum,Carry;
assign #2 Sum=A^B;
aseign #5 Carry = A & B;
endmodule
上面模块名字为halfadder。两个输入端口A和B,输出端口为S