《组合逻辑电路分析与设计.pptx》由会员分享,可在线阅读,更多相关《组合逻辑电路分析与设计.pptx(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1一、集成逻辑门系列1.CMOS逻辑门最简单的集成逻辑门CMOS非门第1页/共120页2CMOS与非门和或非门第2页/共120页3CMOS逻辑系列4000系列74HC系列74HCT系列CMOS逻辑电路的特点逻辑摆幅大,电路抗干扰能力强。静态功耗低。输入阻抗极大,驱动同类型逻辑门的能力强。容易因静电感应造成器件击穿而损坏。CMOS集成电路使用注意事项器件防静电包装人员和设备良好接地正确处理不用的输入端。第3页/共120页42.TTL逻辑门74民品系列、54军品系列74系列中的子系列74系列的发展和演变TTL与CMOS的比较电源电压:典型TTL(5V),CMOS(318V)输出高电平:TTL(3.
2、6V),CMOS(VDD0.1)逻辑摆幅和抗干扰能力:CMOS更好静态功耗:CMOS的静态功耗很低第4页/共120页53.ECL逻辑门高速逻辑电路系列特点ECL的基本逻辑门是“或/或非门”早期ECL电路使用的单一负电源供电,输出低电平为,高电平为,该电平与TTL和CMOS器件的逻辑电平不兼容。新型ECL电路既可以采用、也可以采用供电,方便了不同系列逻辑器件的互联。强调高速度的ECL系列存在高功耗的缺点。ECL逻辑门的“或”输出端具有“线与”功能、“或非”输出端具有“线或”功能第5页/共120页6二、集成逻辑门的主要电气指标1.逻辑电平电压传输特性输入低电平VIL关门电平VOFF输入高电平VIH
3、开门电平VON输出低电平VOL输出高电平VOH第6页/共120页72.噪声容限低电平输入时的噪声容限VNL=VOFFVOLMAX高电平输入时的噪声容限VNH=VOHMINVON(a)(b)(c)图25 输入、输出电平和噪声容限示意图(a)一般关系;(b)典型TTL;(c)典型CMOS第7页/共120页83.输出驱动能力高电平输出电流IOH低电平输出电流IOL扇出系数NO逻辑电路在正常工作条件下,一个输出端可以同时驱动同系列逻辑电路输入端数目的最大值。4.功耗:逻辑电路消耗的电源功率静态功耗:电路的输出状态不变时的功率损耗。动态功耗:电路状态变化时产生的功耗。低速电路的功耗以静态功耗为主;高速电
4、路的功耗以动态功耗为主。第8页/共120页95.时延时延tpd,就是从输入信号达到电路输入端,到相应的输出信号出现在电路输出端之间所需要的时间。上升时延tpLH 下降时延tpHL平均时延tpd第9页/共120页106不同系列逻辑门的性能比较第10页/共120页11三、逻辑电路的其它输入、输出结构1.施密特触发器输入典型逻辑门对输入电压在阈值电压附近的波动敏感,容易造成输出错误。施密特触发器输入结构采用两个不同的阈值电压来克服输入电压的波动。第11页/共120页122.三态输出结构三态输出:逻辑电路的输出端不仅可以输出0和1,还可以呈现高阻抗状态。具有三态输出结构的非门的逻辑符号和真值表。三态输
5、出是一种独立于电路逻辑功能的输出结构,不同逻辑功能的电路,可以根据需要设置三态输出端。第12页/共120页13三态总线将多个三态输出端接在一起就构成了三态总线。三态门还能用于实现数据的双向传输。第13页/共120页143.漏极(集电极)开路输出结构 使用漏极开路门时,必须在输出端Z外接一个负载电阻RL,上拉到一个正电源VCC。改变上拉电源,可以改变输出电平,使之适用于逻辑电平不同的器件系列的互联。多个漏极开路逻辑门的输出端可以直接连在一起,实现所谓的“线与逻辑”。第14页/共120页154.CMOS模拟信号传输门结构 当使能信号EN=1时,MOS管导通,A、B之间呈现低阻通道,模拟信号(或数字
6、信号)可以沿任意方向传输(AB或BA)。当使能信号EN=0时,MOS管截止,沟道消失,A、B之间只有极低的漏电流,相当于开关断开。第15页/共120页16一、加法器q加法器是用于实现两个二进制数加法运算的电路。q加法器分类:不考虑低位进位的2个一位二进制数相加的半加器考虑低位进位的2个一位二进制数相加的全加器实现2个多位二进制数相加的加法器实现两个十进制数相加的BCD码加法器带符号数加法器等。2.2 2.2 常用常用MSIMSI组合逻辑模块组合逻辑模块 第16页/共120页171.半加器实现两个1位二进制数相加的电路称为半加器第17页/共120页182.全加器带有低位进位输入的一位加法器 第1
7、8页/共120页193串行加法器串行加法器:将n个一位全加器级联,得到两个n位二进制数的加法电路。串行加法器时延较大,电路的工作速度较慢。第19页/共120页204先行进位4位二进制全加器7483/283第20页/共120页217483/283的级联扩展 第21页/共120页22二、比较器q数值比较器用于比较两个数的大小,并给出“大于”、“等于”和“小于”三种比较结果。q两个多位二进制数比较大小的方法:从高位开始,逐位比较。高位不同,结果立现。高位相等,比较结果由低位的比较结果决定。当各位都对应相等时,则两个数完全相等。q比较器分类:半比较器:只能比较2个一位二进制数的比较器。全比较器:比较2
8、个一位二进制数。当它们相等时,全比较器的比较结果由低位送来的比较结果决定。第22页/共120页231.4位二进制数比较器位二进制数比较器7485 v74857485是采用并行比较结构的4 4位二进制数比较器第23页/共120页24v功能表用于描述芯片功能。第24页/共120页2527485的级联扩展的级联扩展 v74857485的三个级联输入端用于连接低位芯片的三个比较输出端,实现比较位数的扩展。第25页/共120页26三、编码器q编码:将一组字符或信号用二进制代码加以表示。q编码器:实现编码的数字电路,对于每一个有效的输入信号,编码器输出与之对应的一组二进制代码。q编码器分类:2n线n线编码
9、器(二进制编码器)BCD码编码器(十进制编码器)第26页/共120页271.2n线n线编码器 v以基本的8 8线3 3线编码器为例v存在问题:没有键被按下(即编码输入全为0 0)时,编码输出为“000000”,无法与I I0 01 1的编码输入相区别。若同时有多个键被按下(即有多个编码输入端同时为1 1),编码输出将出现混乱。输出函数表达式第27页/共120页2828线3线优先编码器74148优先编码器:当多个编码输入信号同时有效时,编码器仅对其中优先级最高的信号进行编码。低电平有效:就是信号有效时为低电平。第28页/共120页29会看MSI的功能表编码输入编码输出使能输入使能输出组选择输出第
10、29页/共120页3074148的级联扩展3BCD码编码器码编码器 v图2 22222可以用于实现各种BCDBCD码编码器。第30页/共120页31四、译码器q译码器执行与编码器相反的操作。q译码器分类:全译码器:译码器输入的n位二进制代码有2n种不同的取值,称为2n种不同的编码值。若将每种编码分别译出,则译码器有个2n译码输出端,这种译码器称为全译码器。部分译码器:若译码器输入的编码是一位BCD码,则不是输入取值的所有组合都有意义,此时只需要与输入BCD码相对应的十个译码输出端,这种译码器称为部分译码器。第31页/共120页3213线8线译码器7413874138是3位自然二进制编码的全译码
11、器。使能输入:只有当 时,该译码器才使能。74138的译码输出信号低电平有效。74138输出了编码输入变量的所有最大项。第32页/共120页3324线16线译码器74154和BCD码译码器74154是输出低电平有效的4线16线全译码器。利用74154可以实现各种BCD码译码器。第33页/共120页343七段显示译码器LED七段显示器通过七个发光段的亮灭组合,实现十进制字符09的显示,各段按ag命名。共阴极七段显示器的段驱动为高电平有效,共阳极七段显示器的段驱动是低电平有效。第34页/共120页35七段显示译码器7448功能:将8421BCD码变换为七段显示码,输出高电平有效。第35页/共120
12、页36第36页/共120页377448的四种工作模式:字符显示、灭灯、灭0和试灯。字符显示模式(功能表第一列为015对应的16行)显示16种字符,其中输入为00001001时输出8421BCD码对应的字符09;输入10101111时输出特殊字符。灭灯模式就是强行熄灭所有LED。灭0模式用于多位显示时关闭有效位之外多余的0的显示。试灯模式检验LED是否正常,各段全亮,与数据输入无关。利用 实现多位十进制数码显示器中熄灭多余0的电路 第37页/共120页384译码器的扩展和应用译码器的扩展译码器用于计算机中的地址译码第38页/共120页39五、数据选择器和数据分配器q数据选择器用于从多路输入信号中
13、选择一路信号输出。q数据分配器用于将一路输入信号分配到不同的输出通道。第39页/共120页4018选1数据选择器74151第40页/共120页412数据选择器的扩展3数据分配器数据分配器 第41页/共120页42第42页/共120页43q可编程逻辑器件中集成了大量的逻辑门、连线、记忆单元等电路资源,这些电路资源的使用由用户通过计算机编程方式加以确定。q本节介绍PLD的基本结构和表示方法,以及PLD在组合逻辑电路中的简单应用。2.3 2.3 组合型可编程逻辑器件组合型可编程逻辑器件第43页/共120页44一、PLD的一般结构与电路画法qPLD的基本结构中,包括输入输出缓冲电路、与阵列和或阵列。与
14、或阵列是其主体,任何逻辑函数都可以写成与或表达式的形式,通过与或阵列实现函数功能。第44页/共120页451PLD中连接的表示方法第45页/共120页462基本逻辑门的PLD表示法第46页/共120页473与或阵列图PLD中的与门被组织成与阵列结构,或门被组织成或阵列结构,与门输出的乘积项在或阵列中求和。图238是一个用与或阵列表示的电路图,与阵列是固定的,四个与门实现了A、B两个变量的四个最小项;或阵列是可以编程的。函数F1和F2的表达式为第47页/共120页48二、组合型PLDqPLD的分类:可编程只读存储器(PROM)可编程逻辑阵列(PLA)可编程阵列逻辑(PAL)通用阵列逻辑(GAL)
15、复杂可编程逻辑器件(CPLD)现场可编程门阵列(FPGA)简单PLD(SPCD)复杂PLD第48页/共120页49只读存储器(ROM)是计算机中用于存储确定信息的存储器。其中的数据由ROM生产厂家在制造ROM时“写入”,出厂后,用户无法修改。ROM中的数据通常按字节(8比特)寻址,每个地址对应一字节数据。1可编程只读存储器可编程只读存储器PROM和和EPROM 第49页/共120页50从逻辑函数发生器的角度来看,ROM的地址译码器可以实现n个输入变量An-1A0的全部2n个最小项,其地址译码器就是固定连接的与阵列。数据输出线Di的函数表达式为从实现逻辑函数的角度来看,存储矩阵的结构就像多输出函
16、数的真值表,存储矩阵中的每一列的取值就是多输出函数的真值表中各函数的取值。存储矩阵就是一个连接关系可以编程的或阵列。该ROM可以等效为一个与或阵列,可以实现8个n变量的逻辑函数。可编程ROM可以分为:熔丝型PROM、EPROM、EEPROM。第50页/共120页51PROM结构的缺点:采用固定的与阵列和可编程的或阵列,当输入变量个数增加时,与阵列的规模成倍增加,这种结构限制了PROM作为函数发生器的应用。可编程逻辑阵列PLA:采用与、或阵列都可编程的结构,使乘积项不必是最小项,从而为实现逻辑函数提供了较大的灵活性。PLA的问题:由于器件制造中的困难和相关应用软件的开发没有跟上,PLA很快被随后
17、出现的PAL取代。2可编程逻辑阵列可编程逻辑阵列PLA 第51页/共120页52PAL中与或阵列的特点:与阵列可编程、或阵列固定。PAL16L8:输入、输出:10个专用输入端,2个专用三态输出端和6个输入/三态输出(I/O)端。与阵列:可编程与阵列包括64个与门,每个与门有32个输入端。或阵列:或阵列包含8个7输入或门,这些或门和与门的连接关系是固定的,可以同时实现8个输出逻辑函数。输出由三态非门控制。函数形式:用PAL16L8实现的逻辑函数的基本表达式是与或非式。3可编程阵列逻辑可编程阵列逻辑PAL 第52页/共120页53第53页/共120页54用PAL16L8实现8421BCD码余3循环
18、码的转换电路4通用阵列逻辑通用阵列逻辑GALvGAL在芯片中增加了存储元件,并采用输出逻辑宏单元OLMC结构,改善了内部资源使用的灵活性,成为低密度可编程逻辑器件的首选。GAL的原理与应用在第4章介绍。第54页/共120页55q组合电路的分析,就是分析组合电路输入变量和输出变量的取值关系和函数关系,进而确定电路的功能。一、基本分析方法(步骤)据给定的组合电路,写出输出函数表达式据表达式,列出真值表说明电路的逻辑功能2.4 2.4 组合逻辑电路分析组合逻辑电路分析第55页/共120页56 例21 分析图241所示电路。解:表达式为真值表如上所示。逻辑功能:少数服从多数的三人表决电路。第56页/共
19、120页57二、分析实例 例22 分析图241所示电路。逻辑功能:一位全加器。其中,J是进位输出,S是本位和输出。解:表达式为第57页/共120页58例23分析图243所示电路,已知输入信号B3B2B1B0是5421BCD码。解:由真值表可以看出,该电路实现了5421码到8421码的转换。第58页/共120页59q组合逻辑电路设计就是根据功能要求设计相应的逻辑电路。设计的基本要求是功能正确,电路尽可能简化。一、基本设计方法(步骤)据功能要求,确定输入、输出变量,列出相应的真值表。据设计要求,采用适当的化简方法求出与所要求的逻辑门相适应的输出函数的最简表达式。画出与最简表达式相对应的逻辑电路图。
20、2.5 2.5 组合逻辑电路设计组合逻辑电路设计第59页/共120页60组合电路的设计方法:(1)逻辑抽象;确定输入、输出变量;定义逻辑状态的含义;根据给输出与输入之间的逻辑关系列真值表。(2)根据真值表写出逻辑函数表达式;(3)选定器件的类型;(4)将逻辑函数化简或变换成适当的形式;(5)画出逻辑电路图。第60页/共120页61例24设计一个组合电路,该电路能够判断一位BCD码是否8421码。若是8421码,则当该码能被4或5整除时,输出有所指示。要求分别用与非门、或非门、与或非门实现该电路(允许反变量输入)。解:定义输入、输出变量,列出真值表用输入变量ABCD的取值表示一位8421BCD码
21、,定义输出变量F11表示输入的是8421码,F21表示输入8421码可以被4或5整除。列出真值表。第61页/共120页62 用卡诺图化简法求最简式:用与非门实现时,应圈1 1得最简与或式,再转换为最简与非式。用或非门实现时,应圈0 0得最简或与式,再转换为最简或非式。用与或非门实现时,应圈0 0得最简或与式,再转换为最简与或非式。第62页/共120页63 输出函数的最简与或式和最简与非式为 输出函数的最简或与式、最简或非式和最简与或非式为 第63页/共120页64 画出实现该逻辑功能的三种不同门电路形式。第64页/共120页65二、设计实例(基于二、设计实例(基于MSI的组合电路设计)的组合电
22、路设计)例2 25 5 试用4 4位全加器74837483实现5421BCD5421BCD码到8421BCD8421BCD码的转换。解:第65页/共120页66 例2 26 6 试用4 4位全加器芯片74837483实现一位8421BCD8421BCD码加法器。解:两个一位十进制数相加时,和的取值范围是0 01818,将该范围内二进制数和8421BCD8421BCD码的取值列表,寻找将二进制结果转换为8421BCD8421BCD码的规律。第66页/共120页67 N N101099时,二进制数与84218421码相同 N N10101010时,84218421码比相应的二进制数大6 6。判断N
23、 N10101010的电路就用表中的D DC C。当C C4 4=1=1时,或S S3 3=1=1且S S2 2和S S1 1中至少有一个为1 1时,D DC C=1=1。D DC C的表达式为第67页/共120页68 由真值表直接写出输出函数的最小项表达式。并变换为与7413874138低电平有效的输出端相符的形式。画出电路图 例2 27 7 试用3 3线8 8线译码器7413874138实现一位二进制全减器。解:一位二进制数全减器就是两个一位二进制数的带借位的减法运算。定义变量:设被减数、减数和低位的借位输入分别为X、Y、Bi,运算结果为本位的差D和向高位的借位输出Bo 列出真值表第68页
24、/共120页69 例2 28 8 试用输出高电平有效的3 3线8 8线译码器实现逻辑函数 解:输出高电平有效的译码器的输出函数就是输入变量的最小项。直接实现该最小项表达式需要外接一个6 6输入的或门。对函数表达式稍加变换,就可以使电路更简单,如图2 24949所示。第69页/共120页70例2 29 9 试用8 8选1 1数据选择器实现逻辑函数 解:首先将函数F写成最小项表达式的变量形式,然后从四个自变量中选择三个作为MUX的地址变量(本例选ABC),并将表达式写成MUX输出函数表达式形式。当MUX的地址变量A2A1A0=ABC时,输入数据端 第70页/共120页71例2 21010 试用4
25、4选1 1数据选择器实现例2 29 9中的逻辑函数。解:选AB作为MUX的地址变量,按AB两个变量的最小项形式变换函数F的表达式 当4选1 MUX的地址变量A1A0=AB时,MUX的数据输入端实现D0和D2需要附加两个与门。第71页/共120页72例2 21111 试用8 8选1 1数据选择器实现逻辑函数 解:采用降维卡诺图法 选择MUXMUX的地址变量A A2 2A A1 1A A0 0=BCD=BCD,将BCDBCD作为卡诺图中的一组变量,函数F F中的其它变量作为另一组变量,画出降维卡诺图。第72页/共120页73q 数字电路的描述方法 真值表、表达式、电路图。硬件描述语言:VHDL、V
26、erilog HDL等。一、一、VHDL源程序的基本结构 VHDL源程序5个组成部分:实体说明、结构体、库、程序包和配置。实体说明和结构体组成设计实体,简称实体。通常,将实体理解为一个逻辑模块,实体说明用来描述该模块的端口。结构体用来描述该模块的内部功能。2.6 2.6 组合逻辑电路的组合逻辑电路的VHDL描述描述第73页/共120页74v 实体说明 实体说明用于描述逻辑模块的输入/输出信号,其语法如下:例2 21212 用实体说明语句描述2 2输入与非门的输入输出端口。第74页/共120页75 端口说明 语句格式:port port(端口名:端口模式 数据类型;.);端口模式指端口的数据传输
27、方向,共有以下4 4种:inin:输入端口,该引脚接收外部信号outout:输出端口,该引脚向外输出信号inoutinout:双向端口,可以双向传输信号bufferbuffer:缓冲端口,工作于缓冲模式 数据类型是端口信号的取值类型,VHDLVHDL有着丰富的数据类型。工业标准逻辑型是最常用的数据类型,该类型的数据有 0 0、1 1、X X(未知)、Z Z(高阻)等9 9种取值。类属说明:类属说明语句用于指定参数,其格式为genericgeneric(常数名:数据类型:=设定值;.);第75页/共120页76 例2 21313 用类属说明语句定义总线宽度。类属说明语句也常用来定义仿真时需要的时
28、间参数,例如:实体说明只是指出了输入、输出信号的名称、方向、类型。而电路的逻辑功能,即函数关系,是模块的内部信息,由相应的结构体定义。第76页/共120页77v 结构体 结构体的关键字是architecturearchitecture,结构体用于具体描述实体的逻辑功能,其语法如下:例2 21414 与例2 21212中实体说明对应的一种结构体。第77页/共120页78v 配置 一个实体可以用不同的结构体来描述,配置语句用于确定一个具体的实体和结构体对。配置语句的关键字是configurationconfiguration,语句的一般格式如下 例如,将例2 21414的结构体配置给实体说明,其配
29、置语句如下 第78页/共120页79v 库和程序包 库和程序包结构用于实现数据类型、常量和子程序在不同实体中的共享。程序包用来存放各个设计都能共享的数据类型、子程序说明、属性说明和元件说明。程序包由程序包说明和程序包体两部分组成,其语法格式为 数据类型、常量,以及子程序和元件等首先在程序包说明中定义,然后在程序包体中描述各项的具体内容。第79页/共120页80例2 21515 库是已编译数据的集合,它存放包集合定义、实体定义、结构定义和配置定义。库以VHDLVHDL源文件形式存在,主要包括:STDSTD库、WORKWORK库、IEEEIEEE库、ASICASIC库、用户自定义库等 vhdlvh
30、dl的库说明语句格式为:第80页/共120页81二、二、VHDL的基本语法v VHDL的语言要素:数据对象、数据类型和运算操作符 数据对象:包括变量、信号和常数。变量:VHDL的变量是局部量,只能用于进程和子程序中,变量的使用包括变量定义语句和变量赋值语句。变量定义语句的语法格式为 variable variable 变量名:数据类型 :=:=初始值;例2 21616 变量定义语句举例。第81页/共120页82变量赋值语句的格式为 变量名 :=:=表达式;例2 21717 变量赋值语句举例 信号:其概念类似于硬件电路中的连接线,与之相关的信号赋值、延时等语句适合于描述硬件电路的一些基本特征。信
31、号的适用范围是实体、结构体和程序包,信号不能用于进程和子程序。信号语句包括信号定义语句和信号赋值语句。第82页/共120页83信号定义语句的格式为 signal signal 信号名:数据类型 :初始值;例2 21818 信号定义语句举例。信号赋值语句的格式为 信号名 =)、大于等于(=)、小于()、小于等于(=)。第86页/共120页87v VHDL的语句:并行执行语句和顺序执行语句 并行语句:并行语句主要用来描述模块之间的连接关系。并行语句之间是并行关系,当某个信号发生变化时,受此信号触发的所有语句同时执行。常用的并行语句包括信号赋值语句、条件赋值语句和元件例化语句。条件赋值语句:包括wh
32、en_else和with_select_when when_else语句的语法格式为 第87页/共120页88 例222 采用when_else语句描述表219所示的24线译码器。with_select_when语句的语法格式为第88页/共120页89例2 22323 采用with_select_when语句描述表220所示的42线编码器。元件例化语句元件例化就是引入一种连接关系,将预先设计好的实体定义为一个元件,然后通过关联将实际信号与当前实体中指定的端口相连接。第89页/共120页90 元件例化分为两部分:元件定义语句:将一个已有的设计实体定义为一个元件,实现封装,使之只保留对外的端口,可
33、以被其它模块调用。元件例化语句:就是元件的调用,方法是将元件端口(输入输出信号、即引脚)映射到需要连接的位置上。语句格式第90页/共120页91例2 22424 采用元件例化的方式实现图2 25656所示电路。解:首先用VHDLVHDL描述一个两输入与非门,然后把该与非门当作一个已有元件,用元件例化语句结构实现图2 25656所示的连接关系。第91页/共120页92第92页/共120页93 顺序语句:顺序语句按照程序书写顺序执行,顺序语句只能出现在进程和子程序中。顺序语句包括赋值语句、流程控制语句、子程序调用语句和等待语句等类别,这里只介绍流程控制语句中的if和case语句。if语句:分为三种
34、,if_then_end if、if_then_else_end if和if_elsif_else_end if。if_then_end if语句的语法格式是 当条件成立时,执行顺序语句,否则跳过该语句。例225 if_then_end if语句举例 第93页/共120页94 if_then_else_end if语句的语法格式是 若条件成立,就执行顺序语句1;否则,就执行顺序语句2。例2 22626 用ifif语句描述一个表2 22121所示的三态非门。第94页/共120页95 if_elsif_else_end if语句的语法格式是 若条件成立,就执行then后的顺序语句;否则,检测后面的
35、条件,并在条件满足时,执行相应的顺序语句。if语句至少有一个条件句,条件句必须是boolean表达式,当条件句的值为ture时(即条件成立),执行then后的顺序语句。方括号中的内容是可选项,用于多个条件的情形。第95页/共120页96case语句case语句根据表达式的取值直接从多组顺序语句中选择一组执行。语句格式为例227 用case语句描述一个表222所示的1线4线分配器。第96页/共120页97v 结构体功能描述语句的结构类型 用结构体进行功能描述可以采用五种不同类型的语句结构,如图所示。块语句 块语句将结构体中的并行描述语句组成一个模块,类似于电路图中的模块划分,用于改善并行语句的结
36、构,增加可读性,或用来限制某些信号的使用范围。blockblock语句的格式为 第97页/共120页98例228 由半加器和或门构成的一位二进制全加器电路如图所示,试采用block语句结构描述该电路。解:在VHDL描述时,采用block语句结构将两个半加器H_ADDER和或门OR2分别实现,可以使VHDL源程序更加清晰易懂。第98页/共120页99第99页/共120页100 进程语句 进程语句结构采用顺序语句描述事件,其语法结构为例2 29 一个2选1多路选择器MUX2的进程描述语句。第100页/共120页101 子程序调用语句 在被主程序调用后,子程序可以将处理结果返回主程序。子程序中只能使
37、用顺序语句。VHDL中的子程序有两种类型:过程和函数。函数 函数的语句格式为 在VHDL中,function语句只能计算数值,不能改变其参数的值,所以其参数的模式只能是in,常省略不写。通常,各种功能的函数语句的程序都被集中放置在包集合中,并且可以在结构体中直接调用。第101页/共120页102 例2 30 函数MIN的功能是比较两个变量X、Y的大小,并返回两数中较小的一个。在VHDL中,function语句只能计算数值,不能改变其参数的值,所以其参数的模式只能是in,常省略不写。通常,各种功能的函数语句的程序都被集中放置在包集合中,并且可以在结构体中直接调用。第102页/共120页103 过
38、程 过程的语句格式为例2 23131 用过程语句结构实现2 24 4线译码器 第103页/共120页104第104页/共120页105三、用三、用VHDL描述组合逻辑电路描述组合逻辑电路v VHDL结构体的功能描述有三种方式:行为描述方式、数据流描述方式(RTL描述)、结构化描述方式。行为描述方式属于高级描述方式,通过对电路行为的描述实现设计。这种描述方式不包含与硬件结构有关的信息,易于实现系统优化,易于维护。数据流描述方式的特点是采用逻辑函数表达式形式表示信号关系。结构化描述方式通过元件例化来实现,这种方法类似电路图的描述方式,将电路的逻辑功能分解为功能单元,每个功能单元都被定义为一个元件,
39、通过元件说明和元件调用的方式,构成电路中各元件的连接关系。第105页/共120页106例2 23232 分别用数据流描述、结构化描述和行为描述方式设计一个三人表决电路。解:三人表决电路的电路图和真值表如下面的图表所示。第106页/共120页107第107页/共120页108第108页/共120页109 例233 用VHDL描述一个三态输出总线电路,总线宽度BUS_WIDTH为8位,数据输入和输出分别用D_IN和D_OUT表示,使能输入信号OE高电平有效。第109页/共120页110 例234 用VHDL描述一个8线3线优先编码器,该编码器的编码输入端是I(7)I(0),编码优先顺序由高到低是I
40、(7)到I(0),编码输出端是A(2)A(0),该电路还有一个高电平有效的编码有效输出端GS。第110页/共120页111 例2 235 用VHDL描述一个将一位8421BCD码转换为高电平有效的七段显示码的七段显示译码器。第111页/共120页112第112页/共120页1132.7组合逻辑电路中的险象q 逻辑门的传输时延、以及多个输入信号变化时刻不同步可能引起短暂的输出差错,这种现象称为逻辑电路的冒险现象,简称险象。q 电路中出现的短暂的错误输出称为毛刺。q 险象的持续时间虽然短暂,危害却不可忽视。一、险象的来源、种类与识别方法 逻辑险象:信号的传输时延引起的险象。逻辑险象可以通过修改逻辑
41、设计来消除。功能险象:多个输入信号的变化时刻不同步引起的险象。功能险象无法通过逻辑设计来清除,只能通过适当选择输出信号的读取时间避开险象。第113页/共120页114 静态险象:若输入信号的变化只引起一个毛刺,这种险象称为静态险象。动态险象:若输入信号的变化引起多个毛刺,这种险象称为动态险象。根据毛刺的不同极性,可以把险象分为0 0型险象和1 1型险象。0 0型险象:输出信号中的毛刺为负向脉冲的险象称为0 0型险象,通常出现在与或、与非、与或非型电路中。1 1型险象:输出信号中的毛刺为正向脉冲的险象称为1 1型险象,通常出现在或与、或非型电路中。静态逻辑险象可以用两种方法来识别:代数法和卡诺图
42、法。第114页/共120页115v 代数识别法 对于一个逻辑表达式,若在给定了其它自变量适当的逻辑值后,出现了下列两种情形之一,则存在逻辑险象:例2 23636 判断图2 26060所示电路是否存在险象,说明险象类型,并画出输出波形。第115页/共120页116 显然,F F中只有变量B B同时具有原变量和反变量形式,当自变量A=C=D=1A=C=D=1时,。因此,该电路存在变量B B引起的0 0型险象。由波形图可以看到,当输入信号B B出现下降沿时,由于信号在电路中传输时延的不同,输出信号中出现不应有的负脉冲(毛刺),即该电路确实存在0 0型险象。第116页/共120页117v 卡诺图识别法
43、 在卡诺图中,若有两个圈存在相切部分,且相切部分没有被另一个圈覆盖时,则相应的逻辑函数存在险象。例2 237 37 用卡诺图法判断函数 是否存在险象。解:由卡诺图可以看出,与乘积项BDBD和 对应的两个圈相切,且相切部分的“1 1”没有被其它圈覆盖。当变量D D的取值变化时,函数将从一个圈转移到另一个圈,因此产生险象。由于函数是与或式,该险象是D D变量引起的0 0型险象。第117页/共120页118二、二、险象的消除方法 通过逻辑设计消除险象:是消除险象的根本方法,对于简单电路和静态险象是一种可行的方法。对于复杂的电路和其它类型的险象,采用逻辑设计的方法消除险象十分困难。选通法:避开险象发生
44、的时刻,等输出稳定后再读取其值。选通法存在的问题是选通信号的产生并不总是很方便。滤波法:采用额外的滤波电路消除输出信号中的毛刺。滤波法存在的问题是滤波器虽然清除了毛刺,但也使输出信号的上升沿和下降沿变坏。第118页/共120页119v 修改逻辑设计消除险象 通过增加冗余项使函数在任何情况下都不会出现 从卡诺图上看,就是在两个圈的相切部分增加一个冗余圈,将相切处的0 0或1 1圈起来。例2 23838 采用增加冗余项的方法,消除例2 23737中存在的险象。和解:在卡诺图中增加一个冗余的圈,该卡诺图对应的函数表达式为 新增加的乘积项 是冗余项。当ABC=011ABC=011时,函数为 ,显然,冗余项的存在屏蔽了原来产生0 0型险象的 。为了消除险象而增加的冗余项,也使函数变得不是最简了。第119页/共120页数字设计第2章120感谢您的观看!第120页/共120页