1.4模块的基本概念
基本概念
模块(module)是Verilog HDL语言的基本单元,代表一个基本的功能块,用于描述某个设计的功能或结构以及与其他模块通信的外部端口。
-
模块的开始与结束:以关键词module开始,以关键词endmodule结束的一段程序,模块开始语句必须要以分号结束。
-
端口定义:定义端口变量里输入(input)、输出(output)和双向端口(inout)以及位宽说明。
-
数据类型说明:包括wire、reg、memory和parameter等类型,用来说明模块中用到的内部信号、调用模块等的声明语句和功能定义语句。
-
逻辑功能描述:用来产生各种逻辑(组合逻辑和时序逻辑)。主要包括一下部分:initial语句、always语句、其它子模块实例化语句、门实例化语句、用户自定义(UDP)实例化语句、连续赋值语句(assign)、函数(function)和任务(task)
模块引用时端口的对应方式
-
严格按照模块定义的端口顺序来连接,不用标明源模块定义时规定的端口名。
模块名(连接端口1信号名,连接端口2信号名)
-
引用时用"."标明模块定义时规定的端口名,不必严格按端口顺序对应。
模块名(.端口1名(连接信号1名),.端口2名(连接信号2名))