天天看点

Verilog基础(五)

五、模块

5.1 基本概念

构成

Verilog基础(五)
  1. 模块的开始与结束:

模块在语言形式上是以关键词module开始、以关键词endmodule结束的一段程序,其中模块开始语句必须以分号结束。模块的开始部分包括模块名和端口列表,模块名是模块唯一的标识符,端口列表相当于引脚。

  1. 模块端口的定义:

定义端口列表中哪些是输入、输出、位宽

  1. 模块数据类型的声明

包括:wire、reg、memory、parameter等数据类型。

一般来说,module的input缺省定义为wire类型,output信号可以是wire类型,也可以是reg类型,inout一般为tri(三线型)类型,表示多个驱动源。

  1. 模块逻辑功能描述

产生各种逻辑(主要是组合逻辑和时序逻辑),包括initial语句,always语句、其他例化语句、连续赋值语句、函数和任务。

模块设计采用多种建模方式,行为描述方式、结构描述方式、混合描述方式

D触发器举例:

Verilog基础(五)

 5.2 端口

定义

缺省状态下,默认端口类型是wire类型,在某一端口类型的声明中,类型的声明长度必须与端口声明的长度一致。

三种端口的声明方式:

  1. 输入端口:

Input [信号位宽-1:0] 端口名 1;

  1. 输出端口

output [信号位宽-1:0] 端口名 1;

  1. 输入、输出端口

Inout  [信号位宽-1:0] 端口名 1;

模块引用时端口的对应方式

  1. 在引用时,严格按照模块定义的端口顺序来连接,不用标明源模块定义时规定的端口名。
  2. 在引用“.”标明源模块定义时规定的端口名

继续阅读