Verilog门级建模及驱动强度简介
一、门级建模是指调用
Verilog 内部自定义的基本门元件(或者用户自定义基本元件)来对硬件电路进行结构描述门级建模方式采用的是一种特殊的模块调用方式。此时所调用的模块式 Verilog 内部预先定 义好的基本门级元件或者用户自定义的基本元件,在这种建模方式下硬件电路将被描述成由 一组基本门级元件的实例组成。
二、内置基本门级元件
Verilog HDL 内含的基本门级元件有 14种,如下表所示:
No. | Basic gate level components | Function |
1 | and | 与门 |
2 | nand | 与非门 |
3 | or | 或门 |
4 | nor | 或非门 |
5 | xor | 异或门 |
6 | xnor | 异或非门 |
7 | buf | 缓冲器 |
8 | not | 非门 |
9 | bufif1 | 高电平使能缓冲器 |
10 | bufif0 | 低电平使能缓冲器 |
11 | notif1 | 高电平使能非门 |
12 | notif0 | 低电平使能非门 |
13 | pullup | 上拉电阻 |
14 | pulldown | 下拉电阻 |
三、基本门级元件的调用
3.1 语法格式
<门级元件名><驱动强度说明>#(<门级延时量>)<实例名>(端口连接表);
- <门级元件名>:就是前面列出的Verilog HDL内含的14种基本门级元件类型中的任意一种,它用于指明被当前模块调用的是哪一种门级基本元件
- <驱动强度说明>:这一项是可选项,它的格式为:(<对高电平的驱动强度>,<对低电平的驱动强度>)
3.2 驱动强度
驱动强度用来对本次基本门级元件调用所引用的门级元件实例的输出端驱动能力加以说明。这是因为:在结构建模方式下,一条连线可能会由多个前级输出端同时驱动,该连线最终的逻辑状态将取决于各个驱动端的不同驱动能力,因此有必要对元件实例的输出驱动能力进行说明。
对于门级元件,驱动强度分为对高电平(逻辑1)的驱动强度和对低电平(逻辑0)的驱动强度,因此<驱动强度说明>部分由<对高电平的驱动强度>和<对低电平的驱动强度>这两种成分组成。其中的每一种驱动强度成分可以是supply、strong、pull、weak和highz中的某一个等级。
3.3 驱动强度说明关键词
对高电平的驱动强度 | Supply1 | strong1 | pull1 | weak1 | highz1 |
对低电平的驱动强度 | Supply0 | strong0 | pull0 | weak0 | highz0 |
- 如果基本门级元件实例语句中的<驱动强度说明>部分被省略,则默认的驱动强度为(strong0, strong1)。
四、Verilog驱动强度
4.1 概念
当一个wire由多个驱动时,才会有强度的概念;强度分为驱动强度和充电强度2种。
4.2 驱动强度
分别为supply,strong,pull,weak,highz强度依次递减。
4.3 驱动强度的应用
在进行RTL或者门级模型的设计时,只会用到强驱动(1,0,x)或者比weak还弱的驱动(highz)。驱动强度只在如下的两种情况下才会被用到
- 用连续赋值语句对一个线性进行赋值
- Verilog内建的原语逻辑门的门级输出(如and以及后面例子里使用的bufif1)