Verilog基础(五)
五、模块
5.1 基本概念
构成
- 模块的开始与结束:
模块在语言形式上是以关键词module开始、以关键词endmodule结束的一段程序,其中模块开始语句必须以分号结束。模块的开始部分包括模块名和端口列表,模块名是模块唯一的标识符,端口列表相当于引脚。
- 模块端口的定义:
定义端口列表中哪些是输入、输出、位宽
- 模块数据类型的声明
包括:wire、reg、memory、parameter等数据类型。
一般来说,module的input缺省定义为wire类型,output信号可以是wire类型,也可以是reg类型,inout一般为tri(三线型)类型,表示多个驱动源。
- 模块逻辑功能描述
产生各种逻辑(主要是组合逻辑和时序逻辑),包括initial语句,always语句、其他例化语句、连续赋值语句、函数和任务。
模块设计采用多种建模方式,行为描述方式、结构描述方式、混合描述方式
D触发器举例:
5.2 端口
定义
缺省状态下,默认端口类型是wire类型,在某一端口类型的声明中,类型的声明长度必须与端口声明的长度一致。
三种端口的声明方式:
- 输入端口:
Input [信号位宽-1:0] 端口名 1;
- 输出端口
output [信号位宽-1:0] 端口名 1;
- 输入、输出端口
Inout [信号位宽-1:0] 端口名 1;
模块引用时端口的对应方式
- 在引用时,严格按照模块定义的端口顺序来连接,不用标明源模块定义时规定的端口名。
- 在引用“.”标明源模块定义时规定的端口名