Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章

上传人:E**** 文档编号:89354545 上传时间:2019-05-23 格式:PPT 页数:107 大小:1.03MB
返回 下载 相关 举报
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章_第1页
第1页 / 共107页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章_第2页
第2页 / 共107页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章_第3页
第3页 / 共107页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章_第4页
第4页 / 共107页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章》由会员分享,可在线阅读,更多相关《Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第1-7章 第5章(107页珍藏版)》请在金锄头文库上搜索。

1、第5章 结构级建模方法,5.1 Verilog HDL内置基元 5.2 用户定义原语(UDP) 5.3 模块的调用 5.4 行为描述和结构描述的混合使用,5.1 Verilog HDL内置基元 Verilog HDL提供了26个内置基元,用于对数字系统实际的逻辑结构进行建模。这些基元包括基本门电路、上拉电阻、下拉电阻、MOS开关和双向开关。,这26个基元可以再分类如下: (1) 多输入门:and、nand、or、nor、xor、xnor。 (2) 多输出门:buf、not。 (3) 三态门:bufif0、bufif1、notif0、notif1。 (4) 上拉、下拉电阻:pullup、pull

2、down。 (5) MOS开关:cmos、nmos、pmos、rcmos、rnmos、rpmos。 (6) 双向开关:tran、tranif0、tranif1、rtran、rtranif0、rtranif1。,这些基元调用语句的语法格式如下: (); 其中,“门的类型”是门声明语句所必需的,它可以是26个基元中的任意一种。“驱动能力”和“延时”是可选项,可根据不同的情况选不同的值或不选。“例化的门名字”是在本模块中引用的这种类型的门的实例名。按(输出,输入1,输入2,)顺序列出。,下面是门类型的引用: nand #10 nd1(a,data,clock,clear); 该语句中引用了一个名为n

3、d1的与非门(nand),其输入为data、clock和clear,输出为a,输出与输入的延时为10个单位时间。,5.1.1 基本门 1多输入门 多输入门具有1个或多个输入,但只有一个输出。内置的多输入门有6种:and(与门)、nand(与非门)、or(或门)、nor(或非门)、xor(异或门)、xnor(异或非门)。 多输入门实例化语句的语法格式如下: gate_type instance_name (output, input1, , inputN);,图5.1 多输入门的输入/输出关系,1) 与门(and) 图5.2和表5.1所示为与门的逻辑符号和逻辑表。 例如: and U1(out1

4、, a, b, c, d); /*与门U1,输出为out1,有4个输入a、b、c、d*/,图5.2 与门的逻辑符号,2) 与非门(nand) 图5.3和表5.2所示为与非门的逻辑符号和逻辑表。 例如: nand U2 (sum, a, b, c); /*与非门U2,输出为sum,带有3个输入a、b、c*/,图5.3 与非门的逻辑符号,3) 或门(or) 图5.4和表5.3所示为或门的逻辑符号和逻辑表。 例如: or U3(out,in1,in2),U4 (out1, a, b, c); /*或门U3、U4(同类门实例引用简化方式)*/,图5.4 或门的逻辑符号,4) 或非门(nor) 图5.5

5、和表5.4所示为或非门的逻辑符号和逻辑表。 例如: nor U5(out,in1,in2); nor U6 (out1, out, b, c); /U5输出out信号连接到U6的输入端口,图5.5 或非门的逻辑符号,表5.4 或非门的逻辑表,5) 异或门(xor) 图5.6和表5.5所示为异或门的逻辑符号和逻辑表。 例如: xor U7(out,in1,in2); xor U8 (out1, out, in1, c); /in1信号连接到U7、U8的输入端口,图5.6 异或门的逻辑符号,表5.5 异或门的逻辑表,6) 异或非门(xnor) 图5.7和表5.6所示为异或非门的逻辑符号和逻辑表。

6、例如: xnor U11(out,in1,in2); xnor (out1, out, b, c); /没有实例名,图5.7 异或非门的逻辑符号,表5.6 异或非门的逻辑表,2多输出门 多输出门具有一个输入、一个或多个输出。内置的多输出门有两种:buf(缓冲门)和not(非门)。 多输出门实例语句的语法格式如下: gate_type instance_name(output1,outputN,input); 其中,gate_type为门类型,是上述的两种多输出门之一;instance_name是这个实例门的名称;端口output1, , outputN是输出端,最后一个端口input是输入端。

7、多输出门的形式如图5.8所示。,图5.8 多输出门,图5.9和表5.7为多输出门的逻辑符号和逻辑表。,图5.9 多输出门的逻辑符号,3三态门 三态门用于对三态驱动器建模,共有3个端口:一个数据输入端、一个控制信号输入端和一个数据输出端。内置的三态门有4种:bufif1(高有效三态门)、bufif0(低有效三态门)、notif1(高有效三态非门)、notif0(低有效三态非门)。 三态门实例语句的语法格式如下: gate_type instance_name(output,input,control); 其中,gate_type为门类型,是上述的4种三态门之一;instance_name是这个实

8、例门的名称;第一个端口output是输出端,第二个端口input是输入端,第三个端口control是控制信号输入端。 图5.10所示为三态门的逻辑符号。,图5.10 三态门的逻辑符号,表5.8表5.11所示分别为四种三态门的逻辑表。表中的某些项是可选的。例如,0/z表明根据输入数据的信号强度和控制信号的值,输出既可以为0也可以为z。,例如:,5.1.2 上拉、下拉电阻 上拉电阻和下拉电阻是一类只有一个端口(输出端)的器件模型,其作用是改变其输出端的值。上拉电阻将输出置为1,下拉电阻将输出置为0。 声明上拉电阻和下拉电阻的关键字是:pullup(上拉电阻)、pulldown(下拉电阻)。 上拉、

9、下拉电阻的语法形式如下: pull_type instance_name (output); 其中,pull_type是pullup或pulldown;可选项instance_name是实例名;output是唯一的输出端口。,5.1.3 MOS开关 Verilog HDL具有对MOS晶体管级进行设计的能力。随着电路复杂性的增加(上百万的晶体管)及先进CAD工具的出现,以开关级为基础进行的设计正在逐渐萎缩。Verilog HDL目前仅提供用逻辑值0、1、x、z和与它们相关的驱动强度进行数字设计的能力,没有模拟设计能力。因此在Verilog HDL中,晶体管也仅被当作导通或者截止的开关。MOS模型

10、在仿真时表现为两种状态:开或关,即导通或不导通。对于MOS来说,数据只能从输入端流向输出端,并且可以通过设置控制信号来关闭数据流,所以MOS是单向的。,Verilog提供了6种MOS晶体管开关:cmos、pmos、rcmos、rpmos、nmos、rnmos。 MOS晶体管开关的语法格式如下: mos_type instance_name (outputA, inputB, controlC); 其中,mos_type是nmos、rnmos、pmos和rpmos四种三端口MOS开关之一;可选项instance_name是这个MOS开关实例的名称;第一个端口outputA为输出端,第二个端口in

11、putB是输入端,第三个端口controlC是控制信号输入端。pmos、nmos、rnmos和rpmos均为三端口MOS开关,包括一个数据输出端、一个数据输入端和一个控制信号输入端。nmos用于NMOS晶体管建模;pmos用于PMOS晶体管建模。NMOS和PMOS开关符号如图5.11所示。,图5.11 NMOS和PMOS开关符号,pmos、nmos、rnmos和rpmos这四种MOS开关的工作过程如下: (1) 对于nmos和rnmos开关,如果其控制信号为0,那么关闭这个开关,使输出为z;如果控制信号是1,则打开这个开关,把输入端的数据传输至输出端。 (2) 对于pmos和rpmos开关,如

12、果其控制信号为1,那么关闭这个开关,使输出为z;如果控制信号是0,则打开这个开关,把输入端的数据传输至输出端。 rnmos和rpmos与nmos和pmos相比,它们的输入端和输出端之间存在阻抗(电阻)。因此,对于rnmos和rpmos,当数据从输入端传输至输出端时,由于电阻带来的损耗,使得数据的信号强度减弱。,例如: nmos n1 (out, data, control); /实例名为n1的nmos开关 pmos p1 (out, data, control); /实例名为p1的pmos开关 输出out的值由输入data和control的值确定。nmos和pmos的逻辑表如表5.12所示。信

13、号data和control不同的组合导致这两个开关输出1、0 或者z、x 逻辑值(如果不能确定输出为1或0,就有可能输出z、x值)。,cmos和rcmos(cmos的高阻态)有4个端口:一个数据输出端,一个数据输入端和两个控制信号输入端。其语法格式如下: (r)cmos instance_name (outputA, inputB,Ncontrol,Pcontrol); 其中,可选项instance_name是这个MOS开关实例的名称;第一个端口outputA为输出端,第二个端口inputB是输入端,第三个端口Ncontrol是N通道控制信号输入端,第四个端口Pcontrol是P通道控制信号输

14、入端。cmos(rcmos)的开关行为与pmos(rpmos)和nmos(rnmos)的类似。,可以这样认为,cmos (outputA, inputB, Ncontrol, Pcontrol)是一个nmos (output, input, Ncontrol)和一个pmos (output, input, Pcontrol)的组合。也就是可以用如图5.12所示nmos和pmos器件来建立一个cmos器件的模型。,图5.12 cmos开关,在cmos开关中,存在着pmos和nmos两条数据通路,当Pcontrol为0时,上半部分的pmos开关打开,数据可以从输入端inputB传输到输出端outp

15、utA;当Ncontrol为1时,下半部分的nmos开关打开,数据可以从输入端inputB传输到输出端outputA;因此,cmos的真值表可以参考pmos和nmos的。,例如: cmos c1 (out, data, ncontrol, pcontrol); /实例名c1的cmos开关 rcmos是cmos的高阻态,其开关行为与cmos完全相同,只是在其输入端和输出端之间存在着阻抗,所以数据从输入传送到输出的过程中存在着损耗,使得其信号强度被减弱。,5.1.4 双向开关 NMOS、PMOS和CMOS管都是从漏极向源极导通的,是单向的。在数字电路中,双向导通的器件也很常用。对双向导通的器件而言

16、,其两边的信号都可以是驱动信号。通过设计双向开关就可以实现双向导通的器件。Verilog HDL内置了6种双向开关,即数据可以在两个端口之间双向流动。这6种双向开关是tran、rtran、tranif0、rtranif0、tranif1、rtranif1。 其中,前两种开关tran和rtran(tran的高阻态)是不能关断的,始终处于打开状态,数据可以在两个端口之间自由流动。tran和rtran的语法形式如下: (r)tran instance_name (signalA, signalB);,这两种开关只有两个端口signalA和signalB,数据可以在这两个端口之间流动,因为没有控制信号,这两个开关都不能被关断,所以这种双向的数据流动是无条件进行的。 后4种开关(trani

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号