ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:145KB ,
资源ID:6639414      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6639414.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(VERILOG 学习 第11章完稿.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

VERILOG 学习 第11章完稿.doc

1、第十一章 开关级建模 ----------------------------------------------------------------------------- 在本书第一部分中,我们在逻辑门级、数据流级和行为级等较高抽象层次上解释了数字逻辑的设计和仿真。然而在少数情况下,设计者可能会选择用晶体管作为设计的底层模块,即叶级(leaf-level)模块。Verilog语言具有对MOS晶体管级进行设计的能力。随着电路复杂性的增加(上百万的晶体管)及先进CAD工具的出现,以开关级为基础进行的设计正在逐渐萎缩。Verilog HDL目前仅提供用逻辑值0、1、x、z和与它们相关的驱动

2、强度进行数字设计的能力,没有模拟设计能力。因此在Verilog HDL中,晶体管也仅被当作导通或者截止的开关。在本章中,我们讨论开关级建模的基本原理。大多数设计者只需知道基本知识就足够了。附录A,即强度建模和高级线网类型定义,给出了信号强度和高级线网类型定义的详细内容。关于开关级建模的全部详细内容请参考有关IEEE Verilog硬件描述语言标准 的文档。 学习目标 l 能够描述基本MOS开关:nmos、pmos和cmos。 l 理解双向传输开关,电源 和地 的建模方法。 l 识别阻抗MOS开关。 l 解释在基本MOS开关 和双向传输开关上说明延迟的方法。 l 在Verilo

3、g中,用所提供的开关建立基本开关级电路。 11.1 开关级建模元件 Verilog提供了各种语言结构可以为开关级电路建立模型,MOS晶体管级数字电路可以用这些最基本的电路模型元件(elements)[注1] 来描述。 ------------------------------------------------------------------------------------------------------------------ [注1]: 可以用实例组(即多个并列的实例引用)来定义开关组。在5.1.3中对实例组进行了描述。 ----------------

4、 11.1.1 MOS开关 可以用关键字nmos和pmos定义两种类型的MOS开关。 //定义MOS开关的关键字 nmos pmos 关键字nmos用于NMOS晶体管建模;关键字pmos用于PMOS晶体管建模。NMOS和PMOS开关符号如图11-1所示。 data out control NMOS data o

5、ut control PMOS 图11-1 NMOS和PMOS开关 在Verilog语言里,调用(实例引用)nmos和pmos开关,见例11-1所示。 [例11-1] nmos和pmos开关的实例引用 nmos n1 (out, data, ncontrol ); //调用(实例引用)一个nmos开关; pmos p1 (out, data, ncontrol ); //调用(实例引用)一个pmos开关; 因为开关是用Verilog原语定义的,类似于逻辑门,实例名称是可选项,所以调用(实例引用)开关

6、时可以不给实例命名。 nmos (out, data, ncontrol ) ; //调用一个nmos开关;无实例名称 pmos (out, data, ncontrol ) ; //调用一个pmos开关;无实例名称 信号out的值由信号data和control的值确定。 out的逻辑值如表11-1所示。信号data和control不同的组合导致这两个开关输出1、0 或者z、x 逻辑值 (如果不能确定输出为1或0,就有可能输出z、x值)。符号L代表0或者z,H代表1或者z。 表11-1 NMOS和PMOS逻辑表 pmos control

7、 0 1 x z data 0 0 z L L 1 1 z H H x x z x x z z z z z nmos control 0 1 x z data 0 z 0 L L 1 z 1 H H x z x x x z z z z z 因此,nmos开关在control信号为1时导通。如果control信号是0,则输出为高阻态值。与此类似,如果control信号是0则pmos开关导通。 11.1.2 CMOS开关 CMOS开

8、关用关键字cmos声明。 可以用nmos和pmos器件来建立cmos器件的模型。cmos开关的符号如图11-2所示。 data out pcontrol ncontrol CMOS 图11-2 CMOS开关 cmos开关的应用如例11-2所示 [例11-2] cmos开关的实例引用 cmos c1 (out, data, ncontrol, pcontrol); // 调用(实例引用)一个cmos开关 cmos (out, data, ncontrol, pcontrol); //

9、没有指定实例名 信号ncontrol和pcontrol通常是互补的。当信号ncontrol为1且pcontrol信号为0时,开关导通。如果信号ncontrol为0且pcontrol为1,则开关的输出为高阻值。cmos门本质上是两个开关:nmos和pmos的组合体。因此上述cmos的实例等价于: nmos (out, data, ncontrol); // 调用(实例引用)一个nmos开关 pmos (out, data, ncontrol); // 调用(实例引用)一个pmos开关 因为cmos开关由nmos和pmos开关派生出来,所以

10、给定data、ncontrol和pcontrol的信号值就可以根据表11-1推断出cmos的输出值。 11.1.3 双向开关 NMOS、PMOS和CMOS门都是从漏极向源极导通,是单向的。在数字电路中,双向导通的器件很重要。对双向导通的器件而言,其两边的信号都可以是驱动信号。通过设计双向开关就可以实现双向导通的器件。三个关键字用来定义双向开关:tran、tranif0和tranif1。 tran tranif0 tranif1 这些开关符号如下图11-3所示。 inout1 inout2 inout1 inout2 inout1 in

11、out2 control control tran tranif0 tranif1 图11-3 双向开关 tran开关作为两个信号inout1和inout2之间的缓存。inout1或inout2都可以是驱动信号。仅当control信号是逻辑0时tranif0开关连接inout1和inout2两个信号。如果control信号是逻辑1,则没有驱动源的信号取高阻态值z。有驱动源的信号仍然从驱动源取值。如果control信号是逻辑1则tranif1开关导通。 这些开关的使用如例11-3所示。 [例11-3] 双向开关的实例引用

12、 tran t1 ( inout1, inout2 ); //实例名t1 是可选项 tranif0 ( inout1, inout2, control ); //没有指定实例名 tranif1 ( inout1, inout2, control ); //没有指定实例名 双向开关经常用来在总线或信号之间提供隔离。 11.1.4 电源和地 设计晶体管级电路时需要电源(Vdd,逻辑1)和地(Vss,逻辑0)两极。电源和地极用关键字supply1和supply0来定义。 源极类型supply1相当于电路中的Vdd且把逻辑1放在

13、网表中。源极类型supply0相当于ground或Vss并将逻辑0放在网表中。在整个模拟过程中,supply1和supply0始终为网表提供逻辑1值和逻辑0值。 源supply1和supply0如下所示。 supply1 vdd; supply0 gnd; assign a = vdd ; // 连接到电源电压vdd assign b = gnd ; // 连接到地 11.1.5 阻抗开关 前面所讨论的MOS、CMOS和双向开关可以用相应的阻抗器件建模。阻抗开关比一般的开关具有更高的源极到漏极的阻抗,且在通过它们传输时减少了信

14、号强度。在相应的一般开关关键字前加带r前缀的关键字声明阻抗开关。阻抗开关与一般开关语法类似。 rnmos rpmos // 阻抗性nmos 和pmos 开关 rcmos // 阻抗性cmos 开关 rtran rtranif0 rtranif1 // 阻抗性双向开关 在一般开关和阻抗开关之间有两个主要区别:源极到漏极的阻抗和传输信号强度的方式。关于Verilog中强度级别参看附录A,强度建模和高级线网类型定义。 l 阻抗器件具有较高的源极到漏极阻抗。一般开关源极到漏极阻抗较低

15、 l 阻抗开关在传递信号时减少了它们的强度。变化如下所示。一般开关从输入到输出一直保持强度级别不变。有一点例外,如果输入supply强度,则输出strong强度。表11-2显示出由于阻抗开关导致的强度缩减。 表11-2 阻抗开关的强度缩减 输入强度 输出强度 supply strong [译者注] strong pull pull weak weak medium large medium medium small small small high high -----

16、 [译者注]: 原文中此处输出强度为pull,与上文中解释不符合,翻译者认为改为strong比较合适。上文中好像讲的是一般开关通常不改变强度级别,只是在输入为supply时,输出慰strong。并不是针对阻抗开关讲的。 ---------------------------------------------------------------------------

17、 11.1.6 开关中的延迟说明 MOS和CMOS开关 可以为通过这些开关级元件的信号指定延迟。延迟是可选项,它只能紧跟在开关关键字之后。延迟说明类似于5.2.1节中讨论的Rise、Fall和Turn-off 延迟。可以为开关指定零个、一个、两个或者三个延迟,参考表11-3。 表11-3 MOS和CMOS开关的延迟说明 开关元件 延迟说明 举例 pmos, nmos, rpmos rnmos 0个说明 (没有延迟

18、 pmos p1(out,data,control); 1个说明 (所有暂态过程相同) pmos # (1 ) p1(out,data,control); 2个说明 (上升、下降) nmos # (1,2 ) p2(out,data,control); 3个说明 (上升、下降、关断) nmos # (1,2,3 ) p2 (out,data,control); cmos, rcmos 0、1、2、3个延迟说明与上面相同 cmos # (5 ) c2 ( out,data,nctrl,pctrl ); cmos # (1,2 ) c1 (out,data,nc

19、trl, pctrl ); 双向传输开关 双向传输开关的延迟说明需要稍作区别解释。这种开关在传输信号时没有延迟。但是,当开关值切换时有开(turn-on)和关(turn-off)延迟。可以给双向开关指定零个、一个或者两个延迟,如表11-4所示。 表11-4 双向开关的延迟说明 开关元件 延迟说明 举例 tran , rtran 不允许指定延迟说明 tranif1, rtranif1 tranif0, rtranif0 0个延迟说明 rtranif0 rt1( inout1, inout2, control ); 1个延迟说明 tranif0

20、 (3) T (inout1, inout2, control ); 2个延迟说明 tranif0 # (1,2 ) t1 (inout1, inout2, control ); Specify块 也可以给用开关设计的模块指定路径延迟(引脚到引脚延迟)及时序检查。用specify块描述路径延迟。在第10章时序和延迟中详细讨论了路径延迟说明,它在开关级模型中也完全适用。 11.2 举例 本节我们讨论如何用开关级建模元件建立实际的数字电路。 11.2.1 CMOS或非门(nor) 虽然Verilog有nor门原语,我们在这里尝试用CMOS开关设计自己的或非门。或非

21、门和或非门的开关级电路图如图11-4所示。 a b out Vdd pwr out gnd a b c my_nor my_nor 图11-4 或非门门级 / 开关级的电路图表示 使用11.1节中讨论的开关原语,开关建模元件,电路的Verilog描述如下例11-4所示。 [例11-4] 或非门的开关级Verilog描述 //定义自己的或非们,my_nor module my_nor(out, a, b); output out; input a, b;

22、 wire c; //定义电源和地 supply1 pwr; //pwr连接到Vdd supply0 gnd; //gnd连接到Vss(地) //实例引用pmos开关 pmos (c, pwr, b); pmos (out, c, a); //实例引用nmos开关 nmos (out, gnd, a); nmos (out, gnd, b); endmodule 我们可以用下列激励来测试我们的或非门 //测试该或非门的激励 module stimulus; reg A, B; wire OUT; //实例引用模

23、块my_nor my_nor n1(OUT, A, B); //产生激励 initial begin //测试所有可能的输入信号组合 A = 1'b0; B = 1'b0; #5 A = 1'b0; B = 1'b1; #5 A = 1'b1; B = 1'b0; #5 A = 1'b1; B = 1'b1; end //检查测试结果 initial $monitor($time, " OUT = %b, A = %b, B = %b", OUT, A, B); endmodule 仿真输出如下所示。

24、 0 out = 1, A = 0, B = 0 5 out = 0, A = 0, B = 1 10 out = 0, A = 1, B = 0 15 out = 0, A = 1, B = 1 这样我们就设计出了自己的或非门。如果设计者要定制某个库模块,可以采用开关级建模。 11.2.2 二选一多路选择器 可以用CMOS开关定义二选一多路选择器。我们将用11.2.1节中声明的my_nor门,一个CMOS或非门来实现非(not)逻辑功能。多路选择器电路图如下图11-5所示。 图11-5 用开关表示的二选一多路器 Sbar

25、 OUT 二选一多路器 S i0 i1 二选一 多路器 S i0 i1 OUT 二选一多路选择器在S=0时将输入I0传到输出OUT,在S=0时把I1传到OUT。二选一多路选择器的开关级描述如例11-5所示。 [例11-5] 二选一多路选择器的开关级Verilog描述 //用开关定义二选一多路选择器 module my_mux (out, s, i0, i1); output out; input s, i0, i1; //内部连线 wire sbar;

26、 // s的反 // 生成s的反 my_nor nt(sbar, s, s); //相当于1个非门 // 调用(实例引用)cmos 开关 cmos (out, i0, sbar, s); cmos (out, i1, s, sbar); endmodule 二选一多路选择器可以用一个小激励进行测试。激励留作读者练习。 11.2.3 简单的CMOS锁存器 我们在前面的例子中设计了组合逻辑器件。现在我们来定义一种可以存储值的存储元件。电平敏感CMOS锁存器电路图如图11-6所示。 FF q qbar d clock C1 C2 d

27、 clk qbar q 图11-6 CMOS锁存器 e 开关C1和C2是11.1.2节,CMOS开关中讨论的CMOS开关。如果clk=1则C1开关关闭,如果clk=0则C2开关关闭。clk的相反值被送给C2的ncontrol输入端。可以用MOS开关定义CMOS反相器,如图11-7所示。 in out my_not Vdd pwr out gnd in my_not 图11-7 CMOS反向器 现在已经

28、准备好给CMOS锁存器写Verilog描述。首先要用开关设计自己的反相器my_not。可以根据图11-7的开关级电路图来写CMOS反相器的Verilog模块描述。反相器的Verilog描述如例11-6所示。 [例11-6] CMOS反相器 // 用 MOS 开关定义反相器 module my_not (out, in); output out; input in; //定义电源和地 supply1 pwr; supply0 gnd; //调用(实例引用)nmos 和 pmos 开关 pmos (out, pwr, in); nmos (out, g

29、nd, in); endmodule 现在,CMOS锁存器可以用CMOS开关和my_not反相器来定义。CMOS锁存器的Verilog描述如例11-7所示。 [例11-7] CMOS触发器 //定义CMOS 触发器 module cff ( q, qbar, d, clk); output q, qbar; input d, clk; //内部连线 wire e; wire nclk; // 时钟信号 clock的反相 // 调用(实例引用)反相器 my_not nt(nclk, clk); //调用(实例引用) CMOS 开关

30、 cmos (e, d, clk, nclk); //switch C1; e = d when clk = 1. cmos (e, q, nclk, clk); //switch C2; e = q when clk = 0. //调用(实例引用)反相器 my_not nt1(qbar, e); my_not nt2(q, qbar); endmodule 这里给读者留一个练习,写一个小激励模块来测试这个设计,验证这个锁存器的存取特性。 11.3 总结 本章讨论了Verilog的下面几方面内容: l 开关级建模处于很低的设计抽象层次。只在很少

31、的情况下,比如在设计者需要定制自己的叶级元件(即最基本的元件)时,才使用开关级建模。随着电路复杂度的增加,这个级别的Verilog设计越来越少见; l MOS、CMOS、双向开关和supply1、supply0源可用于设计任意的开关级电路。CMOS开关是MOS开关的一种组合; l 延迟对开关元件来说是可选的。对不同的双向器件,有不同的延迟解释。 11.4 练习 1. 使用nmos和pmos开关为异或门(xor)画电路图。写出它的Verilog描述。使用激励测试这个设计。 2. 使用nmos和pmos开关为与门(and)和或门(or)画电路图。写出它们的

32、Verilog描述。使用激励测试这两个设计。 3. 使用1和2中设计的异或门(xor)、与门(and)和或门(or)设计下图所示的一位全加器。使用激励测试这个设计。 a sum c_in b c_out s1 c1 s2 练习3图 一位全加器 4. 设计一个四位的双向总线开关,其中一侧有两个总线BusA和BusB,另一侧有一个总线BUS。一个一位的control信号用作开关。当control=1时,BusA和BUS连接在一起。当control=0时,BusB和BUS连接在一起。(提示:使用开关tranif0和tranif1。)使用激励测试这个设计。 总线开关 BusA BusB BUS control 5. 以下面的延迟值调用开关。使用自己的输入和输出端口名称。 a. rise = 2、fall = 3的pmos开关 b. rise = 4、fall = 6、turn-off = 5的nmos开关 c. delay = 6的cmos开关 d. turn-on = 5、turn-off = 6的tranif1开关 e. delay = 3的tranif0开关

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服