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

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3173846.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中文版Verilog HDL简明教程:第5章 门电平模型.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

中文版Verilog HDL简明教程:第5章 门电平模型.doc

1、中文版 Verilog HDL 简明教程:第 5 章 门电平模型本章讲述 Verilog HDL 为门级电路建模的能力,包括可以使用的内置基本门和如何使用它们来进行硬件描述。5.1 内置基本门Verilog HDL 中提供下列内置基本门:1) 多输入门:and, nand,or, nor,xor,xnor2) 多输出门:buf, not3) 三态门:bufif0, bufif1, notif0,notif14) 上拉、下拉电阻:pullup, pulldown5) MOS 开关:cmos, nmos, pmos, rcmos, rnmos, rpmos6) 双向开关:tran,tranif0,

2、 tranif1, rtran, rtranif0, rtranif1门级逻辑设计描述中可使用具体的门实例语句。下面是简单的门实例语句的格式。gate_typeinstance_name (term1, term2, . . . ,termN);注意,instance_name 是可选的;gate_type 为前面列出的某种门类型。各 term 用于表示与门的输入/输出端口相连的线网或寄存器。同一门类型的多个实例能够在一个结构形式中定义。语法如下:gate_typeinstance_name1 (term11, term12, . . .,term1N),instance_name2 (ter

3、m21, term22, . . .,term2N),. . .instance_nameM (termM1, termM2, . . .,termMN);5.2 多输入门内置的多输入门如下:and nand nor or xor xnor这些逻辑门只有单个输出,1 个或多个输入。多输入门实例语句的语法如下:multiple_input_gate_typeinstance_name (OutputA, Input1, Input2, . . .,InputN);第一个端口是输出,其它端口是输入。下面是几个具体实例。and A1(Out1, In1, In2);and RBX (Sty, Rib

4、, Bro, Qit, Fix);xor (Bar, Bud0,Bud1, Bud2),(Car, Cut0, Cut1),(Sar, Sut2, Sut1, Sut0, Sut3);第一个门实例语句是单元名为 A1、输出为 Out1、并带有两个输入 In1 和 In2 的两输入与门。第二个门实例语句是四输入与门,单元名为 RBX,输出为 Sty,4 个输入为 Rib、Bro、Qit 和 Fix。第三个门实例语句是异或门的具体实例,没有单元名。它的输出是 Bar,三个输入分别为 Bud0、Bud1和 Bud2。同时,这一个实例语句中还有两个相同类型的单元。5.3 多输出门多输出门有:buf n

5、ot这些门都只有单个输入,一个或多个输出。这些门的实例语句的基本语法如下:multiple_output_gate_typeinstance_name (Out1, Out2, . . . OutN ,InputA);最后的端口是输入端口,其余的所有端口为输出端口。例如:buf B1 (Fan 0,Fan 1 ,Fan 2,Fan 3,Clk);not N1 (PhA ,PhB,Ready );在第一个门实例语句中,Clk 是缓冲门的输入。门 B1 有 4 个输出: Fan0到 Fan3。在第二个门实例语句中,Ready 是非门的唯一输入端口。门 N1 有两个输出:PhA 和 PhB。5.4

6、三态门三态门有:bufif0 bufif1 notif0 notif1这些门用于对三态驱动器建模。这些门有一个输出、一个数据输入和一个控制输入。三态门实例语句的基本语法如下:tristate_gateinstance_name (OutputA, InputB,ControlC);第一个端口 OutputA 是输出端口,第二个端口 InputB 是数据输入,ControlC 是控制输入。根据控制输入,输出可被驱动到高阻状态,即值 z。对于 bufif0,若通过控制输入为 1,则输出为 z;否则数据被传输至输出端。对于 bufif1,若控制输入为 0,则输出为 z。对于 notif0,如果控制输

7、出为 1,那么输出为z;否则输入数据值的非传输到输出端。对于 notif1,若控制输入为 0;则输出为 z。例如:bufif1 BF1 (Dbus,MemData,Strobe ) ;notif0 NT2 (Addr, Abus, Probe);当 Strobe 为 0 时,bufif1 门 BF1 驱动输出 Dbus 为高阻;否则 MemData 被传输至 Dbus。在第 2 个实例语句中,当 Probe 为 1 时,Addr 为高阻;否则 Abus 的非传输到 Addr。5.5 上拉、下拉电阻上拉、下拉电阻有:pullup pulldown这类门设备没有输入只有输出。上拉电阻将输出置为 1

8、。下拉电阻将输出置为 0。门实例语句形式如下:pull_gateinstance_name (OutputA);门实例的端口表只包含 1 个输出。例如:pullup PUP (Pwr);此上拉电阻实例名为 PUP,输出 Pwr 置为高电平 1。5.6 MOS 开关MOS 开关有:cmos pmos nmos rcmos rpmos rnmos这类门用来为单向开关建模。即数据从输入流向输出,并且可以通过设置合适的控制输入关闭数据流。pmos(p 类型 MOS 管) 、nmos(n 类型 MOS 管),rnmos(r 代表电阻)和 rpmos 开关有一个输出、一个输入和一个控制输入。实例的基本语法

9、如下:gate_typeinstance_name (OutputA, InputB, ControlC);第一个端口为输出,第二个端口是输入,第三个端口是控制输入端。如果 nmos 和 rnmos 开关的控制输入为 0,pmos 和 rpmos 开关的控制为 1,那么开关关闭,即输出为 z;如果控制是 1,输入数据传输至输出;如图 5-5 所示。与 nmos 和 pmos 相比, rnmos 和 rpmos 在输入引线和输出引线之间存在高阻抗(电阻)。因此当数据从输入传输至输出时,对于 rpmos 和 rmos,存在数据信号强度衰减。信号强度将在第 10 章进行讲解。例如:pmos P1 (

10、BigBus, SmallBus, GateControl);rnmos RN1 (ControlBit, ReadyBit, Hold);第一个实例为一个实例名为 P1 的 pmos 开关。开关的输入为 SmallBus,输出为 BigBus,控制信号为GateControl。这两个开关实例语句的语法形式如下:(r)cmos instance_name(OutputA, InputB, Ncontrol, PControl);第一个端口为输出端口,第二个端口为输入端口,第三个端口为 n 通道控制输入,第四个端口为是 P 通道控制输入。cmos(rcmos)开关行为与带有公共输入、输出的 pm

11、os(rpmos)和 nmos(rnmos)开关组合十分相似。5.7 双向开关双向开关有:tran rtran tranif0 rtranif0 tranif1 rtranif1这些开关是双向的,即数据可以双向流动,并且当数据在开关中传播时没有延时。后 4 个开关能够通过设置合适的控制信号来关闭。tran 和 rtran 开关不能被关闭。tran 或 rtran(tran 的高阻态版本 )开关实例语句的语法如下:(r)tran instance_name (SignalA, SignalB );端口表只有两个端口,并且无条件地双向流动,即从 SignalA 向 SignalB,反之亦然。其它双

12、向开关的实例语句的语法如下:gate_typeinstance_name (SignalA, SignalB, ControlC);前两个端口是双向端口,即数据从 SignalA 流向 SignalB,反之亦然。第三个端口是控制信号。如果对tranif0 和 tranif0, ControlC 是 1;对 tranif1 和 rtranif1,Controlc 是 0;那么禁止双向数据流动。对于rtran、rtranif0 和 rtranif1,当信号通过开关传输时,信号强度减弱。5.8 门时延可以使用门时延定义门从任何输入到其输出的信号传输时延。门时延可以在门自身实例语句中定义。带有时延定义

13、的门实例语句的语法如下:gate_type delayinstance_name(terminal_list);时延规定了门时延,即从门的任意输入到输出的传输时延。当没有强调门时延时,缺省的时延值为 0。门时延由三类时延值组成:1) 上升时延2) 下降时延3) 截止时延门时延定义可以包含 0 个、1 个、2 个或 3 个时延值。下表为不同个数时延值说明条件下,各种具体的时延取值情形。无时延 1 个时延(d) 2 个时延(d1, d2) 3 个时延 (dA, dB, dC)上升 0 d d1 dA下降 0 d d2 dBto_x 0 d min (d1, d2) min (dA, dB, dC)

14、截止 0 d min (d1, d2) dC min 是 minimum 的缩写词。注意转换到 x 的时延(to_x)不但被显式地定义,还可以通过其它定义的值决定。下面是一些具体实例。注意 Verilog HDL 模型中的所有时延都以单位时间表示。单位时间与实际时间的关联可以通过timescale 编译器指令实现。在下面的实例中 ,not N1 (Qbar, Q);因为没有定义时延,门时延为 0。下面的门实例中,nand #6 (Out, In1, In2);所有时延均为 6,即上升时延和下降时延都是 6。因为输出决不会是高阻态,截止时延不适用于与非门。转换到 x 的时延也是 6。and #(

15、3,5) (Out, In1, In2, In3);在这个实例中,上升时延被定义为 3,下降时延为 5,转换到 x 的时延是 3 和 5 中间的最小值,即 3。在下面的实例中,notif1 #(2,8,6) (Dout, Din1, Din2);上升时延为 2,下降时延为 8,截止时延为 6,转换到 x 的时延是 2、8 和 6 中的最小值,即 2。对多输入门(例如与门和非门)和多输出门(缓冲门和非门) 总共只能够定义 2 个时延(因为输出决不会是 z)。三态门共有 3 个时延,并且上拉、下拉电阻实例门不能有任何时延。min:typ:max 时延形式门延迟也可采用 min:typ:max 形式

16、定义。形式如下:minimum: typical: maximum最小值、典型值和最大值必须是常数表达式。下面是在实例中使用这种形式的实例。nand #(2:3:4, 5:6:7) (Pout, Pin1, Pin2);选择使用哪种时延通常作为模拟运行中的一个选项。例如,如果执行最大时延模拟,与非门单元使用上升时延 4 和下降时延 7。程序块也能够定义门时延。5.9 实例数组当需要重复性的实例时,在实例描述语句中能够有选择地定义范围说明(范围说明也能够在模块实例语句中使用)。这种情况的门描述语句的语法如下:gate_type delayinstance_name leftbound:right

17、bound(list_of_terminal_names);leftbound 和 rightbound 值是任意的两个常量表达式。左界不必大于右界,并且左、右界两者都不必限定为0。示例如下。wire 3:0 Out, InA, InB;. . .nand Gang 3:0 (Out, InA, InB);带有范围说明的实例语句与下述语句等价:nandGang3 (Out3, InA3, InB3),Gang2 (Out2, InA2, InB2),Gang1 (Out1, InA1, InB1),Gang0 (Out0, InA0, InB0);注意定义实例数组时,实例名称是不可选的。5.1

18、0 隐式线网如果在 Verilog HDL 模型中一个线网没有被特别说明,那么它被缺省声明为 1 位线网。但是default_nettype 编译指令能够用于取代缺省线网类型。编译指令格式如下:default_nettype net_type例如:default_nettype wand根据此编译指令,所有后续未说明的线网都是 wand 类型。default_nettype 编译指令在模块定义外出现,并且在下一个相同编译指令或resetall 编译指令出现前一直有效。5.11 简单示例下面是 4-1 多路选择电路的门级描述。注意因为实例名是可选的( 除用于实例数组情况外),在门实例语句中没有指

19、定实例名。module MUX4x1 (Z,D0,D1,D2,D3,S0,S1);output Z;input D0,D1,D2,D3,S0,S1;and (T0,D0,S0bar,S1bar),(T1,D1,S0bar,S1),(T2,D2,S0,S1bar),(T3,D3,S0,S1),not (S0bar,S0),(S1bar,S1);or (Z,T0,T1,T2,T3,);endmodule如果或门实例由下列的实例代替呢?or Z (Z,T0,T1,T2,T3); /非法的 Verilog HDL 表达式。注意实例名还是 Z,并且连接到实例输出的线网也是 Z。这种情况在 Verilog

20、 HDL 中是不允许的。在同一模块中,实例名不能与线网名相同。5.12 2-4 解码器举例2-4 解码器电路的门级描述如下:module DEC24 (A,B,Enable,Z);input A,B,Enable;output 0:3 Z;wire Abar, Bbar;not # (1,2)V0 (Abar,A),V1(Bbar, B);nand # (4,3)N0 (Z3, Enable, A,B),N1 (Z0, Enable, Abar,Bbar),N2 (Z1, Enable, Abar,B),N3 (Z2, Enable, A,Bbar),endmodule5.13 主从触发器举例

21、主从 D 触发器的门级描述如下:module MSDFF (D,C,Q,Qbar);input D,C;output Q,Qbar;not NT1 (NotD,D),NT2 (NotC,C),NT3 (NotY,Y);nandND1 (D1,D,C),ND2 (D2,C,NotD),ND3 (Y,D1,Ybar),ND4 (Ybar,Y,D2),ND5 (Y1,Y,NotC),ND6 (Y2,NotY,NotC),ND7 (Q,Qbar,Y1),ND8 (Qbar,Y2,Q);endmodule5.14 奇偶电路9 位奇偶发生器门级模型描述如下:module Parity_9_Bit (D,

22、Even,Odd);input 0:8 D;output Even, Odd;xor # (5,4)XE0 (E0,D0,D1),XE1 (E1,D2,D3),XE2 (E2,D4,D5),XE3 (E3,D6,D7),XF0 (F0,E0,E1),XF1 (F1,E2,E3),XH0 (H0,F0,F1),XEVEN (Even, D8, H0);not #2XODD (Odd, Even);endmodule习题1. 用基本门描述图 5-11 显示的电路模型。编写一个测试验证程序用于测试电路的输出。使用所有可能的输入值对电路进行测试。2. 使用基本门描述如图 5-12 所示的优先编码器电路模型。当所有输入为 0 时,输出 Valid 为 0,否则输出为 1。并且为验证优先编码器的模型行为编写测试验证程序。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。