第3章〓组合逻辑电路 【内容概要】 数字系统的逻辑电路可分为两类: 一类是组合逻辑电路,另一类是时序逻辑电路。本章介绍的组合逻辑电路,是指由各种门电路组合而成且无反馈的逻辑电路。 本章首先介绍组合逻辑电路中的基础门电路——CMOS逻辑门电路和TTL逻辑门电路的内部结构、工作原理及其外部特性; 其次,介绍组合逻辑电路的模型与特点,结合具体实例阐述组合逻辑电路分析的一般流程与方法,列举对常用组合逻辑电路进行分析的完整过程; 再次,结合具体实例阐述组合逻辑电路设计的一般流程与方法、优化设计的常用技巧; 最后,从电路稳定性的角度介绍组合逻辑中可能存在的险象,从电路应用的角度介绍加法器、编码器、译码器、多路选择器与分配器的设计及中规模集成电路产品的应用。 【学习目标】 通过学习本章内容,学生能了解CMOS逻辑门电路和TTL逻辑门电路的结构、工作原理和外部特性,利用基本逻辑运算和简单逻辑门电路,构建复合逻辑门电路; 熟悉组合逻辑电路的定义、特点及功能,利用组合逻辑电路分析方法,对已知的逻辑电路图,推导出描述其逻辑特性的逻辑表达式并评述其逻辑功能,利用组合逻辑电路设计方法,对给定的逻辑命题,设计出能实现其功能的逻辑电路; 能辨别出组合电路中存在的竞争—冒险现象; 能分析常用组合逻辑电路(如加法器、编码器、译码器、多路选择器等)的组成原理,利用相应的中规模集成电路产品进行电路设计以实现更复杂的逻辑功能。 【思政元素】 在组合逻辑电路中,每个基本逻辑门电路仅能实现一个简单的逻辑功能,但根据逻辑代数的基本定理和运算法则将其组合连接,便可实现任意复杂的组合逻辑功能。本章教学中首先引入基本逻辑门和复合逻辑门的描述,然后在此基础上引入组合逻辑电路的概念,由此引导学生正确看待个人与集体的辩证关系,个人是组成集体的重要单元,而集体是个人力量的凝聚,具有更强大的功能。提醒读者应以集体目标为导向,在现有社会的运行机制下,充分发挥个人在集体中的作用,在提升个人综合实力的同时,增强集体凝聚力、竞争力和综合性创新能力,以更好地实现个人价值。 3.1逻辑门电路简介◆ 第2章讨论了逻辑代数的基本定律、基本公式以及逻辑函数的表示和化简方法,它们是进行逻辑电路分析和设计的理论基础。任何复杂的逻辑运算都是由“与”“或”“非”3种基本逻辑运算组成的。因此,首先应该研究实现这3种基本逻辑运算的电路,在此基础上进一步构成各种复杂的逻辑运算电路。 用于实现基本逻辑运算和复合逻辑运算的单元逻辑电路通称为逻辑门电路,简称为“门”。为便于使用,逻辑门电路通常制作成集成电路。按其制作的半导体材料可分为TTL(transistortransistorlogic)门电路和CMOS(complementary metaloxidesemiconductor)门电路。TTL门电路的工作速度快、负载能力强,但功耗较大、集成度低; CMOS门电路的结构简单、集成度高、功耗低,但速度较慢、负载能力较弱。随着技术的进步,CMOS门电路的性能得到极大的提高,目前大规模、超大规模集成电路一般采用CMOS工艺制造。本节首先简要介绍CMOS逻辑门电路和TTL逻辑门电路的基本结构与工作原理; 随后以CMOS门电路为例,介绍简单逻辑门电路、常用复合逻辑门电路以及逻辑门电路的主要外特性参数; 最后阐述逻辑门电路中的正、负逻辑。 视频讲解 3.1.1逻辑门电路的基本结构与工作原理 在二值数字逻辑中,逻辑变量的取值为0或1,对应数字电路中电子器件的“闭合”与“断开”两种状态。图3.1所示 图3.1开关电路示意图 为开关电路示意图。当开关S断开时,输出电压vO=VCC,输出高电平,表示逻辑1,如图3.1(a)所示; 反之,当开关S闭合时,输出电压vO=0,输出低电平,表示逻辑0,如图3.1(b)所示。 早期的开关由继电器构成,后来使用BJT或MOS管作为开关。BJT或MOS管相当于一个受控开关,当其工作在截止状态时,相当于开关断开,输出高电平; 当其工作在饱和状态时,相当于开关闭合,输出低电平。 1. 基本CMOS逻辑门电路 按照导电载流子的不同,MOS管分为N沟道MOS(NMOS)管和P沟道MOS(PMOS)管。按照导电沟道形成机理的不同,MOS管又分为增强型和耗尽型。CMOS逻辑门电路以MOS管作为开关器件,由两种在导电极性上互补的MOS管组成。本节以N沟道增强型MOS管为例,介绍其基本结构、工作原理与特性。 N沟道增强型MOS管的结构示意图及符号如图3.2所示。它是通过在P型硅衬底上用扩散法制作两个高掺杂浓度的N区,然后在P型硅表面生长一层很薄的二氧化硅绝缘层, 图3.2N沟道增强型MOS管 并在二氧化硅表面及两个N区各安置一个电极,形成栅极g、源极s和漏极d。通常将衬底与源极相连或接地电位,以防止有电流从衬底流入源极和导电沟道。 当栅极g和源极s之间所加电压vGS=0,则源极区、衬底和漏极区形成两个PN结背靠背串联,漏极d和源极s之间不导通,iD=0。当栅极g和源极s之间加正向 图3.3外加电压使MOS管形成导电沟道 电压vGS≥VT(VT为开启电压)时,栅极g和衬底之间形成足够强的电场,吸引衬底中的少数载流子(电子),使其聚集在栅极g下的衬底表面,形成N型反形层,该反形层就构成了漏极d和源极s之间的导电沟道。若此时漏极d和源极s之间加电压vDS,将有漏极电流iD产生,如图3.3所示。这种在vGS=0时不存在导电沟道,vGS必须增加到一定值时才形成导电沟道的场效应管,称为N沟道增强型MOS管。 MOS管可视为二端口网络,输入端口电压为vGS,输出端口电压为vDS。当端口电压不同时,回路电流也将发生变化,相应的变化关系可由包含输出特性和转移特性的IV特性曲线反映,分别如图3.4(a)、图3.4(b)所示。 图3.4N沟道增强型MOS管的IV特性曲线 输出特性曲线是指栅源电压vGS一定的情况下,漏极电流iD与漏源电压vDS之间的关系。输出特性曲线分为3个工作区: 截止区、饱和区和可变电阻区。 当vGS<VT时,导电沟道尚未形成,iD=0,漏—源间电阻很大,相当于断开,MOS管处于截止工作状态,特性曲线的该区域称为截止区。 当vGS≥VT时,产生导电沟道,外加vDS较小时,iD随vDS呈线性增长。此时MOS管可视为一个受vGS控制的可变电阻RDS,vGS越大,输出特性越倾斜,等效电阻越小。因此,该区域称为可变电阻区。 当vDS继续增加,达到vDS=vGS-VT时,沟道在靠近漏极d处开始消失,称为预夹断。随着vDS继续增加,iD几乎不再增加,此时的区域称为饱和区。因此,当vDS<vGS-VT时,N沟道MOS管工作于可变电阻区; 当vDS≥vGS-VT时,MOS管工作于饱和区。 转移特性曲线是指在漏源电压vDS一定的条件下,栅源电压vGS对漏极电流iD的控制作用。当MOS管工作在饱和区时,由于vDS对iD的影响很小,所以不同vDS所对应的转移特性曲线基本重合,可以用一条曲线来表示。这条曲线与横坐标的交点即为开启电压VT。 图3.5P沟道增强型MOS管符号 与N沟道增强型MOS相反,P沟道增强型MOS管是在N型衬底上制作两个高浓度的P区,导电沟道为P型,载流子为空穴,其符号如图3.5所示。通常将衬底与源极相连,或接电源。 为吸引空穴形成导电沟道,栅极g接电源负极,与衬底相连的源极s接电压的正极,即vGS为负值,因此开启电压VT也为负值。而iD的实际方向为流出漏极s,与通常的假定方向相反。 N沟道耗尽型MOS管的结构与增强型基本相同,最大的区别是在生产过程中,在二氧化硅绝缘层中掺入了大量正离子,其符号如图3.6所示。当vGS=0时,由于正离子的作用,将电子吸引到栅极g下面的衬底表面形成N型沟道。当vGS>0时,沟道变宽。在vDS作用下,iD的数值更大。当vGS<0时,沟道变窄,iD减小; 当vGS达到某一负值VP时,沟道完全被夹断,即使增大vDS,也不会有漏极电流iD,MOS管截止,VP称为夹断电压。 P沟道耗尽型MOS管的结构与增强型基本相同,但在二氧化硅绝缘层中掺入了大量负离子,形成P型导电沟道,其符号如图3.7所示。栅源电压vGS可以为正、负或零值。当vGS<0时,iD增大; 当vGS>0时,iD减小; 当vGS达到某一正值VP时,沟道完全被夹断,即 MOS管截止。 图3.6N沟道耗尽型MOS管符号 图3.7P沟道耗尽型MOS管符号 用N沟道增强型MOS管替代图3.1所示的开关S构成的电路及其输出特性曲线如图3.8所示。MOS管的作用对应于有触点开关S的“断开”和“闭合”。当输入为低电平(即vI<VT)时,MOS管截止,相当于开关“断开”,输出为高电平; 当输入为高电平(即vI>VT)时,MOS工作在可变电阻区,相当于开关“闭合”,输出为低电平。 图3.8MOS管开关电路 在图3.8所示的MOS管开关电路的输入端加一个理想的脉冲波形,如图3.9在状态转换之间有电容充、放电过程,输出波形上升沿、下降沿变得缓慢。 此外,当输入为高电平时,流过导通NMOS管的电流很大,图3.8中的电阻Rd起限流作用,但此时消耗在电阻Rd上的功率也很大。为了克服这个缺点,可用另一个PMOS管替代电阻Rd,构成CMOS反相器,如图3.10所示。两只MOS管的栅极连在一起作为输入端; 它们的漏极连在一起作为输出端。 图3.9MOS管开关电路电压波形 图3.10CMOS反相器 2. 基本TTL逻辑门电路 由双极结型晶体管(bipolar junction transistor,BJT)构成的开关电路如图3.11(a)所示,图中BJT为NPN型硅管。当输入为低电平时,例如vI=0V时,BJT的发射结为零偏(vBE=0V),集电结为反向偏置(vBC=0V),只有很少的漏电流流过PN结,故iB≈0,iC≈0,vO=VCE≈VCC,对应于图3.11(b)中的A点。这时集电极回路中的c、e极之间近似于开路,相当于开关断开一样,输出为高电平。BJT处于截止的工作状态。 图3.11BJT管开关电路及输出特性 当输入为高电平时,例如vI=VCC时,调节电阻Rb,使iB=VCC/(βRc),则BJT工作在图3.11(b)中的B点,集电极电流iC已接近最大值VCC/Rc,称为集电极饱和电流ICS≈VCC/Rc,对应的基极电流称为基极临界饱和电流IBS≈VCC/(βRc)。如果再增加iB,则饱和程度加深,但iC基本上保持在ICS不再增加,集电极、发射极之间的电压vCE为0.2~0.3V,该电压称为BJT的饱和压降vCES,它基本不随iB增加而改变。由于vCES很小,集电极回路中的c、e极之间近似于短路,相当于开关闭合一样,输出为低电平。 BJT的开关过程是在其饱和与截止两种状态之间的相互转换,也是内部电荷“建立”和“消散”的过程,需要一定的时间才能完成。当在图3.11所示的开关电路输入端加一个理想的脉冲波形,类似于图3.9中MOS管开关电路的 图3.12TTL反相器的基本电路 电压波形,其输出电压vO的变化会滞后于输入电压vI的变化。 由于基本BJT反相器的动态性能不理想,可增加若干元器件构成TTL反相器以改善其动态性能,如图3.12所示。该电路由三部分组成,T1组成电路的输入级,T3、T4和二极管D组成输出级,T2组成中间级作为输出级的驱动电路,将T2的单端输入信号vI2转换为互补的双端输出信号vI3和vI4,以驱动T3和T4,最终实现反相器的逻辑关系。 视频讲解 3.1.2简单逻辑门电路 简单逻辑门是指只有单一逻辑功能的门电路,如实现3种基本逻辑运算的“或”门、“与”门及“非”门电路,也称基本逻辑门。本节以CMOS门电路为例,讨论“非”门、“或”门、“与”门电路的基本工作原理。 1. “非”门电路 由3.1.1节可知,在CMOS门电路中,采用了两种在导电极性上互补的MOS半导体管。图3.13(a)为用耗尽型NMOS管T5和PMOS管T6互补组成的CMOS“非”门电路。A为输入端,F为输出端。 当输入A为高电平时,T6截止,T5导通,结果输出端经T5接“地”,F为低电平,等效电路如图3.13(b)所示。 当输入A为低电平时,T5截止,T6导通,结果电源经T6传到输出端,F为高电平,等效电路如图3.13(c)所示。 图3.13COMS“非”门电路及输入高电平和低电平时的等效电路 用H表示高电平,L表示低电平,则上述输入和输出的电平关系如表3.1所示。若令H表示逻辑值“1”,L表示逻辑值“0”,则表3.1可表示为表3.2。表3.2所示即“非”运算的真值表。“非”门的逻辑表达式为F=。 表3.1“非”门的输入、输出电位 AF LH HL 表3.2“非”门的真值表 AF 10 01 “非”门的输出总是输入的反相,故又称为反相器。 “非”门的逻辑符号如图3.14所示,其中,电路工作所需的电源和“地”是默认的,一般不予画出。图3.14(a)为国内早期沿用的符号(SJ123.77标准); 图3.14(b)为矩形轮廓图形符号(GB4728.1285标准规定的国标符号); 图3.14(c)为IEEE推荐 图3.14“非”门的逻辑符号 符号(distinctive shape symbols,IEEE 1991新版国际标准),在国外数字系统开发软件绘制的逻辑图中大都采用这一标准。本书将采用后两种标准。 2. “或”门电路 实现“或”逻辑功能的电路称为“或”门。图3.15(a)所示是CMOS结构组成的二输入“或”门电路。对比图3.13(a)的“非”门电路可知,T5和T6的接法完全相同,因此T5和T6在电路中等效为一个“非”门。该“非”门的输入为P,输出为F,故有F=,A、B是两个输入端。 图3.15CMOS“或”门电路及A=1、B=0时的CMOS“或”门等效电路 再来看T1~T4: 一方面,T1和T3组成互补结构,它们受输入A的控制,其中一个导通,另一个必然截止; 而T2和T4组成互补结构,它们受输入B的控制; 另一方面,T1和T2为并联结构,T3和T4为串联结构。 先分析A、B中至少有一个是高电平的情况。此时T3和T4中至少有一个截止,电源不可能传到P点; T1和T2中至少有一个导通,使P点与“地”接通而成为低电平。于是,P点的电平经T5和T6“非”运算后,F为高电平。也就是说,只要A和B中至少有一个为高电平,F就为高电平。图3.15(b)所示是A为高电平、B为低电平时的等效电路图。 当A和B都是低电平时,T3和T4都导通,T1和T2都截止,于是电源电压VDD经T3和T4传到P点,使P点为高电平,输出F为低电平。也就是说,只有A和B都为低电平时,F才能为低电平。 图3.15中输入和输出的电平关系如表3.3所示。对应的真值表如表3.4所示。表3.4就是“或”运算的真值表,故图3.15(a)所示的电路实现了“或”逻辑运算,称为“或”门。 表3.3“或”门的输入、输出电平 ABF LLL LHH HLH HHH 表3.4“或”门的真值表 ABF 000 011 101 111 图3.16为“或”门的逻辑符号。用逻辑函数表达的二输入“或”门逻辑功能如下: F=A+B 集成电路“或”门的输入端可制成多个,相应逻辑符号中的输入端也可画成多个。 3. “与”门电路 实现“与”逻辑功能的电路称为“与”门。图3.17为CMOS二输入端“与”门电路。对比图3.15(a)所示的“或”门电路可知,T1、T2变为串联结构,T3、T4变为并联结构,其余电路结构相同。因此,只有当T1和T2同时导通时,P点才能为低电平,F为高电平; 否则P点为高电平,F为低电平。也就是说,只有A、B同时为高电平时,F才能为高电平; 否则F为低电平。 “与”门电路的输入与输出电平关系和真值表分别如表3.5和表3.6所示。表3.6是“与”运算的真值表。故图3.17所示电路是实现“与”逻辑功能的电路,称为“与”门。 图3.16“或”门的逻辑符号 图3.17CMOS“与”门电路 表3.5“与”门的输入、输出电位 ABF LLL LHL HLL HHH 表3.6“与”门的真值表 ABF 000 010 100 111 “与”门的逻辑符号如图3.18所示,其逻辑功能可以用下列逻辑表达式表示: F=AB 同样地,集成电路“与”门的输入端可以制成多个,逻辑符号中的输入端也可相应画成多个。 图3.18“与”门的逻辑符号 视频讲解 3.1.3复合逻辑门电路 尽管“与”“或”“非”3种基本门电路可以实现各种逻辑功能,但在实际中大量存在两种或两种以上基本逻辑的复合运算。为使用方便,将经常遇到的复合运算制成集成门电路,称为复合逻辑门电路。如“与非”门、“或非”门、“与或非”门和“异或”门等。 1. “与非”门 实现“与非”逻辑功能的门电路称为“与非”门。在图3.17所示的“与”门中,P点的逻辑运算关系为P=AB。故去掉图3.17中的T5和T6,将P点直接作为输出F,就是一个二输入端“与非”门电路。 “与非”门的逻辑符号如图3.19所示,注意输出端上有一个小圆圈,它表示“非”的意思。表3.7是二输入“与非”门的真值表,对应的逻辑表达式为F=AB。 图3.19“与非”门的逻辑符号 表3.7“与非”门的真值表 ABF 001 011 101 110 集成电路“与非”门的输入端可以有多个,如3个、4个等。 2. “或非”门 实现“或非”逻辑功能的门电路称为“或非”门。在图3.15(a)所示的“或”门中,P点的逻辑运算关系为P=A+B。故去掉图3.15(a)中的T5和T6,将P点直接作为输出F,就是一个二输入端“或非”门电路。 “或非”门的逻辑符号如图3.20所示,表3.8是二输入“或非”门的真值表,对应的逻辑表达式为F=A+B。 图3.20“或非”门的逻辑符号 表3.8“或非”门的真值表 ABF 001 010 100 110 集成电路“或非”门的输入端也可以有多个。 3. “与或非”门 图3.21“与或非”门的逻辑符号 “与”“或”“非”门3种运算的复合运算称为“与或非”运算,实现“与或非”逻辑功能的门电路称为“与或非”门。例如,下面是一个四变量“与或非”运算: F= AB+CD 实现上面的“与或非”运算的逻辑符号如图3.21所示。在实际电路中,“与或非”门的输入端个数、运算形式将根据实际需要而定。因此,在画逻辑符号时应根据实际情况进行调整。 4. “异或”门 与“同或”门 在实际中,“异或”逻辑也是一种常用的复合逻辑,实现“异或”运算的门电路称为“异或”门,其逻辑符号如图3.22所示。图中,A、B为输入端,F为输出端。 “同或”门的逻辑符号如图3.23所示。由于“同或”实际上是“异或”之非,因此,“同或”逻辑也叫作“异或非”逻辑,其逻辑功能可用“异或”门和“非”门来实现,故“同或”门电路很少用到。 图3.22“异或”门的逻辑符号 图3.23“同或”门的逻辑符号 5. 三态门 三态输出门(tristate gate)简称三态门或TS门,是在典型门电路的基础上加控制端和控制电路构成的。前面描述的几种门电路的输出只有2种状态,要么为0,要么为1。但在三态输出门电路中,有3种输出状态: 低阻抗的0、1状态和高阻抗状态。前2种状态与上述门电路相同,称为工作状态,第三种状态称为高阻态(或隔离状态)。CMOS三态门的电路及逻辑符号如图3.24所示。此电路中,A是输入端,F是输出端,E为输出允许端(或称为使能端)。由图3.24可知,2个CMOS管的控制信号为 G1= A,G2= E+A 其真值表如表3.9所示。由表3.9可以看出下列规则。 图3.24三态门电路及逻辑符号 表3.9“三态”门的真值表 EAG1G2F 00110 01001 1010高阻抗 1110高阻抗 (1) 当E=0时,若A=0,有G1=G2=1,故上管截止,下管导通,F=0; 若A=1,有G1=G2=0,故上管导通,下管截止,F=1。总之,当E=0时有F=A,表示数据可以从输入端传向输出端。 (2) 当E=1时,无论A为何值,总有G1=1,G2=0。故上管和下管均为截止,输出端呈高阻态,输入端与输出端被隔离。 在数字系统中,三态门是常用的器件之一,常利用三态门实现数据的双向传输和多路数据切换。 3.1.4逻辑门电路的主要外特性参数 门电路的外特性是指集成逻辑门对外表现的电气特性,在实际应用时必须认真对待。 当今,数字集成电路的品种繁多,制造工艺不尽相同。3.1.2节~3.1.3节中逻辑门的介绍仅限于CMOS工艺,此外,还有双极型工艺、PMOS工艺等。采用不同工艺制造的器件,虽然在实现的逻辑功能上是一致的,但在电气特性上却存在相当大的差异,各有特点。这里仅介绍门电路的几个主要外特性参数的定义,具体应用时请查阅相关技术手册。 1. 开门电平VON与关门电平VOFF 现以“非”门为例,说明开门电平与关门电平的定义。 开门电平VON是指使输出达到标准低电平时,应在输入端施加的最小电平值; 关门电平VOFF是指使输出达到标准高电平时,应在输入端施加的最大电平值。VON与VOFF之间的差距越大,表示器件的抗干扰能力越强,但驱动器件正常工作所需的信号幅度越大。 上述定义对其他功能的逻辑门是类似的,不过输出电平的高低应根据该种门的逻辑关系而定。 2. 高电平输出VOH与低电平输出VOL 仍以“非”门为例,说明高电平输出与低电平输出的定义。 高电平输出VOH是指在规定负载条件下,输入端接低电平、输出端开路(逻辑1)时,器件输出的最小电压电平值; 低电平输出VOL是指在规定负载条件下,输入端接高电平、输出端是逻辑0时,器件输出的最大电压电平值。 3. 扇入系数Nr 扇入系数Nr是指门电路允许的输入端数目,在器件制造时被确定。一般门电路的扇入系数为1~5,最多不超过8。例如,一个4输入端“与非”门,其Nr=4。使用时,它最多允许有4个输入。如果要得到更多的输入端,则可用级联的方法实现。图3.25是用两个Nr=3的“与”门和一个Nr=2的“与非”门实现6输入“与非”运算。 如果有多余的输入端,则应在保证所需逻辑功能的前提下,将多余的输入端接“地”或接“高电平”。尤其是CMOS门的输入端必须这样处理,因为CMOS门的输入阻抗极高,悬空的输入引脚会感应空中的电磁干扰,导致电路无法正常工作。图3.26是对“与非”门和“或非”门的多余输入端的处理方法。为保证逻辑功能不变,应将多余的“与”运算输入端接高电平(电源“+”端),而多余的“或”运算输入端则应接低电平(“地”)。 图3.25输入端扩展举例 图3.26“与非”门和“或非”门的多余输入端的连接法 4. 扇出系数Nc 实际应用中,门电路的输出端通常与其他门电路的输入端相连。一个门电路的输出端,最多能够驱动其他同类门电路的输入端个数,称为扇出系数。扇出系数实际上表示门的输出端带负载的能力。例如,若某“与非”门的扇出系数Nc=8,表明它的输出端最多可驱动8个同类门输入端。 5. 平均时延tPD 信号通过实际逻辑门电路时都存在延迟。平均时延是指门电路的输出信号滞后于输入信号的平均时间。例如,对于“非”门电路,如果输入一个正极性的方波,则经过“非”门 图3.27平均时延示意图 后,输出是一个延迟的负极性方波,如图3.27所示。从输入波形上升沿的50%处,到输出波形下降沿的50%处之间的时间间隔定义为前沿时延tPLH,同理,定义tPHL为后沿时延,它们的平均值称为平均时延: tPD=12(tPHL+tPLH)(31) 平均时延是反映门电路工作速度的重要参数。 视频讲解 3.1.5正逻辑与负逻辑 在上述门电路的讨论中,总是规定用高电平表示逻辑值“1”,用低电平表示逻辑值“0”,这种规定称为“正逻辑”。然而,这仅仅是一种人为的规定。如果反过来,用高电平表示逻辑值“0”,用低电平表示逻辑值“1”,即采用“负逻辑”,情况会怎样呢? 必须说明,上述两种规定都没有改变门电路内部的结构,因此其输入与输出的电位高低关系并未改变。我们关心的是,对于同一门电路,在两种规定下,所实现的逻辑功能是否相同。 以图3.17所示的电路为例,为方便比较,将其电平关系重绘于表3.10中。已知在正逻辑下,它是“与”门。再按负逻辑列出真值表,如表3.11所示。显然,此时的逻辑功能为“或”运算。因此,正逻辑下的“与”门是负逻辑下的“或”门。 表3.10图3.17的输入、输出电平关系 ABF LLL LHL HLL HHH 表3.11负逻辑下图3.17的真值表 ABF 111 101 011 000 类似地,可以分析图3.15(a)所示的电路,在正逻辑下它是“或”门,但在负逻辑下它是“与”门; 对于“非”门,不管是正逻辑还是负逻辑,它仍然是“非”门。 严格地讲,对于一个门电路,在未决定采用正逻辑还是负逻辑之前,就断言它是何逻辑运算关系是不妥的。然而,正逻辑符合人们的思维习惯,通常情况下,都约定用正逻辑下电路的逻辑功能来命名该电路的名称。在本书中,如无特别说明,均采用正逻辑。 为便于区分采用何种逻辑,在逻辑符号的输入端上加一个小圆圈表示负逻辑下的门电路符号。常用逻辑门的正逻辑和负逻辑符号如表3.12所示。 表3.12常用逻辑门的正逻辑和负逻辑符号 正逻辑负逻辑 逻 辑 符 号名称逻 辑 符 号名称 “或”门“与”门 “与”门“或”门 “与非”门“或非”门 “或非”门“与非”门 “异或”门“同或”门 正、负逻辑的相互转换可用逻辑代数的有关定理实现,例如,正逻辑下的“与非”门,其表达式为 F= AB 由摩根定理有 = AB= + 令Z=,X=,Y=,则 Z= X+Y(32) 将X、Y视为独立变量,Z视为X、Y的函数,则式(32)采用的是负逻辑。式(32)表明,正逻辑下的“与非”门,在负逻辑下则是“或非”门。 3.2组合逻辑电路分析◆ 3.2.1组合逻辑电路的基本特点 组合逻辑电路主要由门电路构成。在电路中,任何时刻的输出仅取决于该时刻的输入信号,而与这一时刻输入信号作用前电路原来的状态没有任何关系,其电路模型可表示为图3.28,该电路模型用函数式表示为式(33)。 图3.28组合逻辑电路模型 Y0=f0(I0,I1,…,In-1) Y1=f1(I0,I1,…,In-1) ︙ Ym-1=fm-1(I0,I1,…,In-1)(33) 组合逻辑电路的结构特点是由逻辑门构成的,不含记忆元件; 输入信号是单向传输的,电路中不含反馈回路。 根据电路输出端是一个还是多个,可将组合逻辑电路分为单输出组合逻辑电路和多输出组合逻辑电路两种类型。其功能可用逻辑函数表达式、真值表、时间波形图及逻辑图等进行描述。 视频讲解 3.2.2组合逻辑电路分析 组合逻辑电路分析是指对于已知的逻辑电路图,推导出描述其逻辑特性的逻辑表达式,进而评述其逻辑功能的过程。组合逻辑电路的分析广泛用于系统仿制、系统维修等领域,是学习、追踪最新技术的必备手段。 组合逻辑电路分析的方法,一般是根据给出的电路图,从输入端开始,根据器件的基本数字逻辑功能,逐级推导出输出逻辑函数表达式,再根据输出逻辑函数表达式列出真值表,从而确定逻辑电路的功能。通过分析还可以进一步评价电路设计方案的优劣,改进和完善电路的结构,结合实际需要,更换逻辑电路的某些器件。对设计优秀的方案进行分析,可以吸取设计思想,为分析和设计数字系统打下基础。 下面结合具体实例来说明组合逻辑电路分析的一般步骤。 【例31】给定逻辑电路如图3.29所示,分析其功能,并作出功能评价。 解: (1) 写出电路的逻辑表达式。 根据图3.29所示电路中各逻辑门的功能,从输入端开始逐级写出函数表达式。为方便起见,标出有关中间量,如图3.30中的P1、P2和P3所示。于是有 P1= AB,P2= BC,P3= AC F= P1P2P3= ABBCAC(34) 图3.29例31给定的逻辑电路图 图3.30例31电路中的有关中间量 (2) 化简。 直接写出的逻辑函数往往不是最简的。为便于分析,需要将其化为最简“与或”表达式。用代数法化简式(34),有 F= ABBCAC = AB+ BC+ AC =AB+BC+AC(35) (3) 列出真值表。 真值表比逻辑表达式更容易看出电路的逻辑功能。由式(35)列出真值表,如表3.13所示。 (4) 分析电路的功能。 由表3.13可知,该电路仅当A、B和C中有两个或两个以上同时为1时,输出F的值为1,其他情况下输出F均为0。 表3.13例31的真值表 ABCF 0000 0010 0100 0111 1000 1011 1101 1111 该电路的逻辑功能可结合具体使用场合来分析。例如,假设有A、B、C三个人对某事件进行表决,同意用“1”表示,不同意用“0”表示。表决结果用F表示,F=1表示该事件通过,F=0表示该事件未通过。则式(35)为一种多数表决逻辑电路。用卡诺图可以验证,该电路方案已经是最简的,不需要进一步化简。 例31详细地列出了分析逻辑电路的一般步骤,在实际应用中,可根据电路的复杂程度和分析者的熟练程度,对上述步骤进行适当取舍。 3.2.3常用组合逻辑电路分析举例 视频讲解 1. 二进制加法器 在数字系统中最基本的运算是二进制加法。为说明二进制加法器的功能,下面先分析两个二进制数相加的过程。设有两个四位二进制数a、b相加,设a=1011,b=1011,竖式演算过程如下: 为了用逻辑运算实现算术运算,用逻辑0和1分别代表二进制数0和1。 先看最低位。实现最低位算术加法运算的逻辑电路框图如图3.31(a)所示。图3.31(a)中,a0和b0分别表示两个1位二进制被加数和加数,s0与c0分别是相加产生的和与进位。这种能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为二进制半加器,其逻辑符号如图3.31(b)所示。半加器的两个输出s0和c0都是输入量a0和b0的函数。 图3.31半加器逻辑电路框图及其逻辑符号 再看其他位的运算情况。如图3.32(a)所示,参加相加的数除了ai和bi(i=1,2,3)两个加数位外,低位运算产生的进位ci-1也参与加法运算,运算结果有和si及进位输出ci。这种能对3个1位二进制数相加,求得和及进位的逻辑电路称为二进制全加器。其逻辑符号如图3.32(b)所示,其中Ci为低位运算产生的进位输入,Co为本位运算产生的进位输出。 图3.32全加器逻辑电路框图及其逻辑符号 二进制全加器的逻辑功能齐全。不包含进位输入的二进制半加器电路更简单。以后将会看到,算术乘法电路中要用到大量的半加器。常见的集成电路加法器芯片有7483(4位二进制全加器)和74283(4位二进制超前进位全加器)。 【例32】图3.33所示为一个二进制半加器电路,试分析之。 解: 由图3.33可写出两个输出的表达式如下。 S=AB,Co=AB(36) 列出式(36)的真值表,如表3.14所示。 图3.33半加器电路图 表3.14半加器的真值表 ABSCo 0000 0110 1010 1101 1位二进制数相加的算术运算规则为 0+0=00,0+1=01,1+0=01,1+1=10 对于表3.14,显然,当把A、B作为两个加数,S作为本位和,Co作为进位时,在正逻辑下,正好满足上述运算规则。因此,图3.33所示电路是一个二进制半加器。 【例33】图3.34所示为一个二进制全加器电路,试分析之。 解: 由图3.34,可写出电路的输出端S的逻辑表达式如下。 H=AB,S=HCi 因此有 S=ABCi(37) 输出Co的逻辑表达式为 Co= AB+HCi =AB+(AB)Ci =AB+ACi+BCi =A(B+Ci)+B(A+Ci) =AB+(A+B)Ci(38) 由式(37)和式(38)可列出全加器电路的真值表,如表3.15所示。 图3.34二进制全加器电路图 表3.15全加器电路的真值表 CiBASCo 00000 00110 01010 01101 10010 10101 11001 11111 3个1位二进制数算术相加的运算结果如下: 0+0+0=0,0+0+1=1,0+1+0=1,0+1+1=10 1+0+0=1,1+0+1=10,1+1+0=10,1+1+1=11 对比表3.15,当把Ci、A、B作为三个加数位,S作为本位和,Co作为进位输出时,则在正逻辑下,满足二进制数的运算规则。因此,图3.34所示电路是一个二进制全加器。 2. 编码器与译码器 编码器与译码器是数字系统中最常用的组合逻辑部件。在数字系统中,往往需要改变原始数据的表示形式,以便存储、传输和处理数据,这一过程称为编码。例如,将二进制码变换为具有抗干扰能力的格雷码,能减少传输和处理时的误码; 对图像、语音数据进行压缩,使数据量大幅减少,能降低传输和存储开销。译码则是将编码后的数据变换为原始数据的形式。无论编码器还是译码器,其逻辑功能均为将一种形式的码变换为另一种形式的码,是数字系统中广泛使用的多输入多输出组合逻辑部件。下文分析最基本的编/译码器电路。 1) 38译码器 图3.35所示是一个由“与非”门组成的38译码器电路图,其中CBA为3位二进制码输入端,F7~F0为8个输出端。38译码器是3线至8线译码器的简称,其功能是将输入的3位二进制码译为8路输出。每路输出与一组二进制输入数据对应。根据图3.35可写出输出函数的逻辑表达式,见式(39)。38译码器的真值表如表3.16所示。 图3.3538译码器电路图 F0= F1= C F2= BF3= BC F4= AF5= AC F6= ABF7= ABC(39) 表3.1638译码器的真值表 CBAF7F6F5F4F3F2F1F0 00011111110 00111111101 01011111011 01111110111 10011101111 10111011111 11010111111 11101111111 38译码器常用于地址译码、节拍分配等场合。例如,用F7~F0分别控制8个彩灯,当Fi(i=0,1,…,7)为0时彩灯点亮,否则彩灯熄灭。如果输入数据CBA每隔一段时间加1,加到8时立即返回到0,则8个彩灯将轮流点亮,形成流动效果。如果把8个彩灯换成能执行8种操作的逻辑单元,则可按顺序执行8种操作。38译码器用途广泛,已制成集成电路芯片,如74系列的74138集成电路芯片。 2) 8421码格雷码编码器 8421码是一种用4位二进制码表示一个十进制数的编码,4个二进制位由高到低的权分别为8、4、2、1。设8421码的4位二进制位为B8B4B2B1,则其十进制数N为N=8×B8+4×B4+2×B2+1×B1。 图3.368421码格雷码编码器 图3.36所示是将8421码转换为格雷码的编码器电路。其中,输入量B8B4B2B1为8421码,输出量G8G4G2G1为格雷码。由图3.36可写出该编码器的输出逻辑表达式,如式(310)所示。 G8=B8 G4=B8B4 G2=B4B2 G1=B2B1(310) 由式(310)列出真值表,如表3.17所示。表3.17中的输入B8B4B2B1是8421码(0000~1001),输出G8G4G2G1则是格雷码。 表3.178421码至格雷码的真值表 B8B4B2B1G8G4G2G1 00000000 00010001 00100011 00110010 01000110 01010111 01100101 01110100 10001100 10011101 格雷码是一种具有一定抗误码能力的编码,格雷码的码组中任何两个相邻代码(或称码字)只有一位不同,这有利于减少干扰。数字电路中,信号在跳变时会产生尖峰脉冲干扰。例如,在一个与正弦波的幅度成正比的数据系列中,前后两个数据之差为1的情况会经常发生。显然,用二进制码表示这样的数据,两个相邻的数据可能有多位发生改变。例如,8421码从0111增加到1000,4位都要发生改变。但对应的格雷码分别为0100和1100,4位中只有G8位不同,这意味着尖峰干扰大幅减少。格雷码的这一特点常用于计算机系统的某些输入转换设备中,能有效地降低误码率。 视频讲解 3) 键盘编码器 图3.37所示是一个键盘编码器,能将某一个按键的输入信号编为相应的8421码。10个按键分别代表十进制数0~9,按下某一按键表示输入对应的十进制数,再由编码电路将其转换为对应的4位二进制码。 图3.37键盘编码器 图3.37中,按键未压下时,触点经电阻与地接通,向电路输入低电平。按键压下时,触点与电源VDD接通,向电路输入高电平。设K9~K0为10个按键操作时对应的输入逻辑量,由图3.37可写出该编码器的输出逻辑表达式,如式(311)所示。 B8= K8+K9=K8+K9 B4= K4+K5+K6+K7=K4+K5+K6+K7 B2= K2+K3+K6+K7=K2+K3+K6+K7 B1= (K1+K3+K5+K7)K9=K1+K3+K5+K7+K9(311) 由式(311)可列出键盘编码器的真值表,如表3.18所示。表3.18中的输出为8421码。图3.37中的K0无论按下与否,电路的输出B8B4B2B1均为0000。故K0没有与图3.37中的任何一个门的输入端相连。 表3.18式(311)的真值表 K9K8K7K6K5K4K3K2K1K0B8B4B2B1 00000000010000 00000000100001 00000001000010 00000010000011 00000100000100 00001000000101 00010000000110 00100000000111 01000000001000 10000000001001 当用户同时按下两个键时,电路的输出可能发生错误。例如,如果同时按下K7和K8,输出为1111,既不代表7,也不代表8。为避免“二义性”,定义多键同时按下时,取代表的十进制数较大的键为有效。于是,K7和K8同时按下时,认定为仅有K8按下,电路应输出1000。实现这一编码功能的编码电路称为优先编码器,其电路如图3.38所示。由图3.38 可以写出各输出的表达式,如式(312)所示。 图3.38优先编码器电路图 B8= 9+8 B4= K9K87+K9K86+K9K85+K9K84 B2= K9K87+K9K86+K9K8K5K43+K9K8K5K42 B1= 9+K87+K8K65+K8K6K43+K8K6K4K21 (312) 由式(312)可列出真值表,如表3.19所示。表3.19中的“Φ”为任意值,在10个输入K9~K0中,只要下标较大的为1,则不管下标较小的为何值,均以下标较大者所代表的8421码作为输出,从而实现了优先编码。常见集成电路有74147和74148,CMOS定型产品74HC147和74HC148,它们在逻辑功能上没有区别,只是电性能参数不同。 表3.19式(312)的真值表 K9K8K7K6K5K4K3K2K1K0B8B4B2B1 00000000010000 000000001Φ0001 00000001ΦΦ0010 0000001ΦΦΦ0011 000001ΦΦΦΦ0100 00001ΦΦΦΦΦ0101 0001ΦΦΦΦΦΦ0110 001ΦΦΦΦΦΦΦ0111 01ΦΦΦΦΦΦΦΦ1000 1ΦΦΦΦΦΦΦΦΦ1001 4) 总线收发器 在计算机中,总线是各种数据的公共传输通道。总线收发器的功能是通过总线发送和接收数据。图3.39所示为8位总线收发器的示意图,图3.39中EN为收发允许控制信号,EN=0时,允许数据传输,EN=1时,A、B端呈高阻态,总线可用于其他部件之间的数据传输。DIR为数据传输方向控制信号,DIR=0时,总线上的数据可从B端传到A端,DIR=1时,A端的数据可传到总线上。常见总线收发器集成电路有4总线缓冲门74125、8总线缓冲门74244、8总线双向传送接收器74245。 图3.40所示为1位总线收发器的逻辑电路。G1、G2为三态门,当要求数据从B端传到A端时,G2门开通,G1门呈高阻态; 反之,当要求数据从A端传到B端时,G1门开通,G2门呈高阻态; 当要求A、B端呈高阻态时,G1、G2门都不能开通; 不允许G1、G2门同时开通。该电路中控制逻辑的任务就是将输入DIR和EN变换为控制G1、G2门开通与否的输出信号。由图3.40可知输出信号为 G1= EN·DIR,G2= EN·DIR(313) 由式(313)列出G1、G2的控制逻辑真值表(见表3.20)。 图3.398位总线收发器示意图 图3.401位总线收发器电路图 表3.20控制逻辑的真值表 输入输出 ENDIRG1G2功 能 说 明 0010G1门呈高阻态、G2门开通 0101G2门呈高阻态、G1门开通 1011G1、G2门呈高阻态 1111G1、G2门呈高阻态 由表3.20可以看出,该电路实现了所希望的功能。要实现多位数据的收发传输,只需将图3.40虚线右侧的电路重复多次,并共用控制逻辑的输出信号即可。图3.41为8总线双向传送接收器74245的内部逻辑电路图,其中EA表示低电平有效。 图3.418总线双向传送接收器74245的内部逻辑电路图 视频讲解 3.3组合逻辑电路设计◆ 组合逻辑电路分析是已知逻辑电路图,求出该电路能实现的功能。与此相反,组合逻辑电路设计则是根据给定的逻辑命题,设计出能实现其功能的逻辑电路。通常,逻辑命题是用文字表达的一个具有固定因果关系的事件。如果能推导出描述其功能的逻辑函数,就很容易用逻辑门实现该命题。因此,正确理解和分析逻辑命题,求出逻辑函数,是组合逻辑电路设计的最关键一步。 本节以一个简单逻辑命题为例,引入组合逻辑电路设计的步骤及方法。 【例34】设计一个判断4位二进制数是否大于9的电路,在计算机的运算器中,此功能用于将十六进制数调整为十进制数的操作中。 解: 第1步,分析命题,规划待设计电路的基本框架。 由命题可知,当前的结果仅与当前输入的数有关,与以前的输入和输出无关,这是一个典型的组合逻辑。要设计的电路需要4个输入端,分别记为D、C、B、A,用于输入4位二进制数; 需要1个输出端,记为F,用于输出判断结果。 第2步,建立描述问题的逻辑函数。 首先,需要约定所有输入、输出量的值的含义。对于输入量D、C、B、A,令其分别代表4位二进制数由高到低的各位,该位为1表示输入高电平1,为0表示输入低电平0。令输出量F=1时表示“大于”,F=0时表示“不大于”。由此,可列出描述问题的真值表,如表3.21所示。 由真值表3.21可写出输出函数F的最小项表达式如下。 F=∑m(10,11,12,13,14,15)(314) 第3步,化简逻辑函数。 显然,式(314)可以直接用门电路实现,但所需的逻辑门较多,且需要为每个输入量提供反变量,因而线路复杂,成本高。因此,需要对F化简,求出最简表达式。 化简方法有公式法和卡诺图法。当输入变量不超过4个时,宜采用操作直观的卡诺图法。由表3.21作出卡诺图(见图3.42)。 表3.21例34的真值表 DCBAF 00000 00010 00100 00110 01000 01010 01100 01110 10000 10010 10101 10111 11001 11011 11101 11111 图3.42式(314)的卡诺图 在卡诺图上进行化简得到式(315),即 F=DC+DB(315) 第4步,画出具体电路。 按式(315)画出电路,如图3.43所示。有时,希望用同类型的逻辑门来实现某逻辑功能。对式(315)进行如下变换: F= DC+DB= DCDB(316) 按式(316)画出电路图,如图3.44所示。所需功能全部由“与非”门实现。注意,式(315)和式(316)中均不含变量A,即无论A取何值,均不影响判断结果,画图时不予考虑。 图3.43按式(315)画出电路 图3.44按式(316)画出电路 通过例34,可以归纳出组合逻辑电路设计的一般步骤及方法如下。 (1) 分析实际逻辑问题。 对命题进行全盘分析,特别注意不要遗漏细节。首先,判断问题是否为组合逻辑,如果不是组合逻辑,则不能用组合逻辑方法求解。其次,确定待设计的电路需要多少输入端、多少输出端,并明确各自的用途。 (2) 建立逻辑函数。 规定各输入和输出端上出现高电平或低电平时分别代表什么含义。对于二进制数,常用1代表高电平,0代表低电平。列出真值表,由真值表写出最小项之和(或最大项之积)形式的逻辑表达式。 (3) 化简逻辑函数。 根据题意,选择合适的化简方法,求出逻辑函数的最简表达式。 (4) 画出电路图。 根据实际需要选择合适的逻辑门,对最简表达式进行适当变换,按变换后的逻辑表达式画出电路图。 视频讲解 3.4设计方法的灵活运用◆ 3.3节中介绍的组合逻辑电路设计步骤直观、规范,具有一般性。但是,实际中的问题是千变万化的,目前,计算机部件的逻辑规模巨大、逻辑关系极为复杂。设计者应根据问题的复杂程度和积累的经验,采取灵活的方法。数字逻辑电路的设计目标是: 在保证功能和性能要求的前提下,使用尽可能少的逻辑元件,以利于降低硬件成本和系统功耗。 3.4.1逻辑代数法 在建立逻辑表达式时,灵活地运用逻辑表达式的形式,往往会简化设计难度,使设计结果更合理。 【例35】设计一个数值比较器,能比较两个2位二进制正整数的大小。 解: 第1步,分析实际逻辑问题,规划电路框架。 设两个2位二进制正整数为X=X1X2,Y=Y1Y2,比较结果用一个输出端Z指示。当X≥Y时,输出Z为高电平1,否则Z为低电平0。待设计的电路有4个输入端、1个输出端。 第2步,建立逻辑函数。 根据题意列真值表,如表3.22所示。由表3.22可见,Z为0的项较少,故按最大项之积形式写出的逻辑表达式较简单: Z=∏M(1,2,3,6,7,11)(317) 第3步,化简逻辑函数。 按照上述思路,我们感兴趣的是最小项取值为0的方格,故在画卡诺图时,取值为1的最小项方格不用标注,如图3.45所示。然而,按0方格合并得到的项是Z的反函数,即 =1Y1+12Y2+2Y1Y2(318) 表3.22例35的真值表 X1X2Y1Y2Z 00001 00010 00100 00110 01001 01011 01100 01110 10001 10011 10101 10110 11001 11011 11101 11111 图3.45例35的卡诺图 对式(318)两边取反,就能得到Z的原函数: Z= 1Y1+12Y2+2Y1Y2(319) 或 Z= 1Y112Y22Y1Y2(320) Z=(X1+1)(X1+X2+2)(X2+1+2)(321) 第4步,画出电路图。 式(319)~式(321)都可由相应的门电路实现,如图3.46所示。究竟采用哪一个方案,要根据具体情况而定。当使用小规模集成逻辑门器件时,希望某一局部功能尽量集中在同一个芯片中,以缩短连接导线,减少导线间的干扰和传输时延。目前,标准小规模逻辑门器件大都将同一类型的几个门制作在同一个芯片中,此时,应采用图3.46(b)所示的电路形式。然而,目前广泛采用可编程逻辑器件(programmable logic device,PLD)来实现数字系统。即在一个芯片中有大量的、不同类型的逻辑门可用,设计者不必强调门的类型一致,应着重考虑电路运行的稳定性、可靠性和速度,力求用较少的门达到设计目标。 图3.46用3种形式实现例35 由图3.46可以看出,输入量采用了反变量。在很多场合,信号源能同时提供原变量和反变量。但是,当信号源不能提供这些反变量时,不得不使用“非”门来求反。这样做一是需要的门数增加,二是门的插入会引入传输时延,导致X和Y信号传输到终端的耗时不一致,使电路的稳定性降低。在某些情况下,对逻辑函数进行适当变换可减少输入反变量。 例如,函数F=B+B+AC,虽然已经是最简“与非”表达式,但在实现时,各变量都需要反变量。对F进行变换后,变换后的表达式(322)就不存在反变量了。 F=B(+)+AC =B(++)+AC(++) =BABC+ACABC(322) 3.4.2利用无关项简化设计 设一个组合逻辑有m个输入量,这些输入量的取值共有2m个。在某些实际问题中,有些取值根本不会出现,或即使出现了也不予关心。利用这一现象,可简化逻辑设计。 【例36】水箱水位高度指示器如图3.47所示。D、C、B、A是4个探测针,各探测针间的距离均为1m。当水与某针接触时,该针上产生低电平,否则该针上产生高电平。设计一个组合逻辑,以D、C、B、A为输入量,输出高度值 Y=Y2Y1Y0(3位二进制数)。 解: 第1步,分析实际逻辑问题,规划电路框架。 要设计的电路有4个输入端、3个输出端,如图3.48所示。这是一个多输出组合逻辑电路,在逻辑设计的实际问题中大量存在。 图3.47水箱水位高度指示器示意图 图3.48水位高度指示逻辑的电路框架 现在研究输入量的取值范围,4个输入量可以表示的值有16种,但在本问题中只有5种可能的取值,如表3.23所示。即DCBA={0000,1000,1100,1110,1111}。其余的值不会出现,将其作为无关项考虑。 表3.23水位高度与输入、输出量之间的关系 水位高度/m 输入输出 DCBAY2Y1Y0 400001 00 310000 11 211000 10 111100 01 011110 00 第2步,建立逻辑函数。 对于多输出组合逻辑,在真值表中应将全部输出量一一列出。对于无关项,输出量可任意指定,用Ф标记,真值表如表3.24所示。 表3.24例36的真值表 DCBAY2Y1Y0 0000100 0001ФФФ 0010ФФФ 0011ФФФ 0100ФФФ 0101ФФФ 0110ФФФ 0111ФФФ 1000011 1001ФФФ 1010ФФФ 1011ФФФ 1100010 1101ФФФ 1110001 1111000 由真值表得出各输出量的逻辑表达式如下: Y2=m0+∑Φ(1,2,3,4,5,6,7,9,10,11,13) Y1=m8+m12+∑Φ(1,2,3,4,5,6,7,9,10,11,13) Y0=m8+m14+∑Φ(1,2,3,4,5,6,7,9,10,11,13) (323) 式(323)中,用Ф表示的最小项值是无关项。 第3步,化简逻辑函数。 为求出全部输出的逻辑表达式,对每一输出都要作出对应的卡诺图,如图3.49所示。在合并方格时,Ф既可视为0,也可视为1,怎样对化简有利就怎样确定。 图3.49例36的卡诺图 化简结果为 Y2= Y1=D Y0=B+D= BD (324) 第4步,画出电路图。 图3.50例36的电路图 由式(324)画出电路图,如图3.50所示。 必须指出,利用无关项简化设计,得到正确输出的前提条件是输入量不出现异常值。但实际情况是复杂的,例如图3.47中的探测针被腐蚀、引线脱落或电磁干扰等,都可能会导致输入量异常。例如,当探测针B的引线脱落,水位达到4m时的输入为DCBA=1101,代入式(3.23)得Y2Y1Y0=010,即水位错误地指示为2m。因此,设计者应认真分析问题的起因及后果,谨慎使用。 3.4.3分析设计法 由真值表建立给定问题的逻辑表达式,对全部输入、输出变量进行了无遗漏的枚举,是一种规范、直观的方法。但是,当输入变量较多时,列出完整的真值表是一件十分麻烦的事,而且化简也相当困难。在实际中,很多问题具有明显的规律性,对其加以分解,找出其中的基本操作步骤,对各步骤用逻辑电路予以实现,再把它们有机地结合为一个整体,是解决问题的有效方法。下面举例说明。 【例37】设计一个乘法器,实现两个2位二进制数相乘。 解: 乘法器是计算机的运算器中实现算术乘法运算的重要逻辑电路。如果用逻辑意义上的“1”和“0”分别表示算术意义上的数值1和0,用“×”表示算术意义上的“乘”,“·”表示逻辑意义上的“与”,则1位二进制数算术乘法运算与逻辑运算的对应关系为 算术运算对应的逻辑运算 0×0=00·0=0 0×1=00·1=0 1×0=00·1=0 1×1=11·1=1 这说明,1位二进制数的算术乘对应于逻辑“与”。多位二进制数的代数乘又是怎样的呢?现以两个2位二进制数相乘为例进行说明。 设两个乘数分别为A1A0和B1B0。两个2位二进制数相乘,其积最多为4位,设为M3M2M1M0。用手工演算乘法的过程如图3.51所示。仿照手工演算过程,可画出逻辑电路图,如图3.52所示。图3.52中上部的4个“与”门用于实现第1步和第2步运算时产生的4个“与”项; 2个半加器用于实现第3步运算。 图3.51手工演算乘法的过程 图3. 522位二进制算术乘法电路 上述计算中的“+”表示算术意义上的“加”,乘法演算过程如下。 第1步: 用B0去“×”A0,其乘积为A0·B0; 接着又用B0去“×”A1,其乘积为A1·B0。 第2步: 用B1分别去“×”A0和A1,分别得到积A0·B1和A1·B1。 第3步: 做“+”运算。结果: M0=A0B0; M1是两个1位二进制数B0A1和B1A0相“+”,可用半加器实现,且产生进位C1; 类似地,M2也是两个1位二进制数(B1A1和C1)相“+”的“和”,也用半加器实现,且产生进位C2; M3=C2。 3.5组合逻辑电路的险象◆ 信号经过逻辑门会产生时延。不仅如此,信号经过导线也会产生时延。时延的大小与信号经历的门数及导线的尺寸有关。因此,输入信号经过不同的途径到达输出端需要的时间也不同。这一因素不仅会使数字系统的工作速度降低,使信号的波形参数变坏,而且还会在电路中产生所谓“竞争—冒险”现象,严重时甚至使系统无法正常工作。在高速数字电路中,尤其不可忽视这个问题。 3.5.1险象的产生与分类 什么是险象?下面通过具体电路进行讨论。设有如下逻辑函数: F=AB+C(325) 用“与非”门实现的电路如图3.53(a)所示。设输入信号B=1,C=1,A在t1时刻由1跳变到0。 先讨论门没有时延的理想工作情况,如图3.53(b)所示。在A下跳的同时,q、p信号上跳,s信号下跳。F信号是q、s信号“与非”运算的结果,在任何时刻,q、s中总有一个为0,故F恒为1。因已假设跳变不需要时间,故t1时刻F的值是什么不予考虑。 上述理想情况在实际中并不存在。实际的逻辑门都有时延,记为tPD。因此,考虑tPD后的工作波形如图3.53(c)所示。q和p信号分别来自于G2和G1门,要等到t2时刻才能跳变为1; 从A到s经历了G1和G3两个门,则s信号要等到t3时刻才能跳变为0。q、s“与非”运算的结果将在t2~t3时间段为0,此结果再经G4延时tPD后才能输出,故F信号在t3~t4时间段为0。这与理想的情况不一致。以此作为驱动信号会导致后续逻辑电路产生误动作,其后果往往是严重的。 图3.53具有险象的逻辑电路及工作波形分析 这种现象产生的原因是,A经过两条不同的途径传向输出端,在到达的时间上出现竞争。因两条途径的时延不同,结果输出短暂的错误脉冲,通常称为“毛刺”,如图3.53(c)中带有阴影的脉冲。这种现象称为组合逻辑的竞争冒险现象,简称“险象”。 按险象脉冲的极性,可将险象分为“0”型险象与“1”型险象。若险象脉冲为负极性脉冲,则称为“0”型险象; 反之,若险象脉冲为正极性脉冲,则称为“1”型险象。图3.53(c)中的险象为“0”型险象。 按输入变化前后,“正常的输出”是否应该变化,可将险象分为静态险象和动态险象。若输出本应静止不变,但险象使输出发生了不应有的短暂变化,则称为静态险象; 反之,在输出应该变化的情况下出现了险象,则称为动态险象。图3.53(c)中的险象为静态险象。 由以上两种分类方法,可组合成4种险象,如图3.54所示。 图3.544种组合险象示意图 视频讲解 3.5.2险象的判断与消除 为了消除险象,需要从逻辑功能的描述形式上判断险象是否存在。描述逻辑功能的形式有代数表达式、真值表和卡诺图,下面研究如何由代数表达式和卡诺图来判断险象并讨论其消除方法。 1. 用代数法判断及消除险象 研究式(325),仍然令B=1、C=1保持不变,考察由于A变化产生的险象。将B=1、C=1代入式(325),有 F=A·1+·1=A+(326) 式(326)表明,当不考虑门的时延时,F=1,与理想的结果一致。但若考虑“非”门的时延,则A及在跳变点不能对齐,于是产生了险象。对式(326)进行如下变换: F= A+= A(327) 式(326)及式(327)中出现x+x- 或 x·x- 形式的项,这样的项会产生险象。这一结论具有一般性。由此,可以得到判断险象的方法如下。 对于逻辑表达式F(xn,…,xi,…,x1),考察xi(i=n,n-1,…,1)变化、其他量不变时是否产生险象。须将其他量的固定值代入式F(xn,…,xi,…,x1)中,若得到的表达式含有形如xi+x-i或xix-i形式的项,则该逻辑表达式可能产生险象。 【例38】判断函数F=AB+C+A描述的逻辑电路是否可能产生险象。 解: 该函数含有3个变量,其中A和C同时存在原变量及反变量,它们的原变量及反变量分别出现在不同的最小项中。即A、C将通过不同的时延途径,最终由“或”门汇集起来。故电路中存在竞争,但能否产生险象尚须进一步判断。 (1) 考察变量A。让B、C取不同的值,求F的表达形式,如表3.25所示。当B=1、C=1时,F=A+,电路产生险象。 (2) 考察变量C。让A、B取不同的值,求F的表达形式,如表3.26所示。无论A、B取何值,电路均不产生险象。 表3.25考察变量A BCF险象? 00A 01 10A+A 11A+√ 表3.26考察变量C ABF险象? 00C 01C 10 111 例38说明,竞争并非一定产生险象。产生险象的竞争称为临界竞争,不产生险象的竞争称为非临界竞争。 如何消除险象?当BC=11时本应有F=1,但此时却有F=A+。因此若在函数中增加一个冗余项BC,使函数表达式成为 F=AB+C+A+BC(328) 当B=1、C=1时,式(328)中的BC项恒为1,无论其他项如何变化,恒有F=1,则就不再产生险象了。 2. 用卡诺图法判断及消除险象 利用卡诺图可以更加直观地判断险象,并找出消除险象的方法。 仍以例38为例,画出卡诺图,如图3.55所示。在图3.55中,当BC不变时,能产生A及的、值为1的最小项分别落在两个“相切”的 图3.55例38的卡诺图 卡诺圈①、②内; 当AB不变时,能产生C及的、值为1的最小项落在同一个卡诺圈②中。这说明,相切的卡诺圈会产生险象,这一结论具有一般性。现增加卡诺圈④(见虚线圈),使①、②“连通”,即增加一个冗余项BC,于是险象得以消除。最终得到图3.56所示的电路。 【例39】逻辑函数为F=DC+BA+DB,试用卡诺图法消除电路中存在的险象。 解: 画出给定函数的卡诺图(见图3.57)。 图3.56例38的最终电路 图3.57例39的卡诺图 图3.57中卡诺圈①、②相切,因此增加一个卡诺圈(见虚线圈),使①、②连通。得到消除险象的函数表达式,如式(329)所示,式(329)中最后一项为冗余项。 F=DC+BA+DB+CA(329) 3. 用选通法避开险象 前面的讨论仅局限于多个输入量中的某一个发生变化而产生的险象,在很多情况下,多个输入量会“同时”变化。这里的“同时”只是一种理想状态。若考虑导线的时延、元件参数的离散性等因素,希望“同时”变化的信号实际上总会有先有后; 实际信号的变化率也不可能为无穷大。对于一个复杂的数字系统,要完全消除险象是非常困难的,或者要付出高昂的代价。 险象只是一种暂态过程,待电路进入稳态后,输出量即恢复成正确值。因此,使用一个选通脉冲,对稳态下的输出量取样,就能避开险象,获得正确的输出。例如,在图3.53(a)中的输出端增加一个选通门,如图3.58(a)所示。在取样脉冲有效(T=1)时,选通门的输出与F一致,可作为电路的输出使用; 当T=0时,G=0,不予采用。只要取样脉冲有效期间发生在暂态期过后的稳态期t5~t6,就能保证在t5~t6期间得到正确的输出。 图3.58用选通法避开险象 3.6常用的组合逻辑电路设计◆ 3.6.18421码加法器 8421码加法器是实现十进制数相加的逻辑电路。8421码用4位二进制数表示1位十进制数(0~9),4个二进制位能表示16个编码,但8421码只利用了其中的0000~1010这10个编码,其余6个编码为非法编码。尽管8421码利用率不高,但因人们习惯了十进制,所以8421码加法器也是一种常用的逻辑电路。 8421码加法器与4位二进制数加法运算电路不同。8421码加法器是2个十进制数相加,和大于9时应产生进位。下面先研究8421码的加法运算规律,然后举例说明其设计方法。 设参与相加的量为被加数X、加数Y及来自低位8421码加法器的进位C-1。设X、Y及C-1按十进制相加,产生的和为Z,进位为W。X、Y、Z均为8421码。 先将X、Y及C-1按二进制相加,得到的和记为S。显然,若S≤9,则S本身就是8421码,S的值与期望的Z值一致,进位W应为0; 但是,当S>9时,S不再是8421码。此时,须对S进行修正,取S的低4位按二进制加6,丢弃进位,就能得到期望的Z值,而此时进位W应为1。现举例演算如下。 (1) 设X=3,Y=5,C-1=1,则S=X+Y+C-1=9。因S≤9,故S的值就是Z值,且W为0。演算过程为 (2) 设X=5,Y=9,C-1=1,则S=X+Y+C-1=15。因S>9,故S的值不是Z值,须对S进行加6修正,而W应为1。演算过程为 【例310】设计8421码加法器。 解: 第1步,分析实际逻辑问题,规划电路框架。 按上述思路,电路的框架如图3.59所示。图3.59中,C3是X、Y及C1按二进制相加产生的进位。“4位二进制加法器”已在3.2.3节进行了详细讨论,因此本例的重点是“加6修正”电路的设计。 现在分析“加6修正”电路的功能: ①应能判断 C3S3S2S1S0是否大于9,以决定是“加6”还是“加0”; ②要有一个二进制加法器,被加数为C3S3S2S1S0,加数为6或0。因为②所述及的仍然是二进制加法器,故完成设计的关键归结为实现①述及的功能,即“>9判断逻辑”,其电路框架如图3.60所示。该电路有5个输入端,有一个判断结果输出端R。 图3.591位8421码加法器电路框图 图3.60>9判断电路框图 第2步,建立逻辑函数。 现在建立如图3.60所示电路的逻辑表达式。约定当输入量C3S3S2S1S0>9时,输出R为1。据此列出真值表,见表3.27。注意: 表3.27中只列出了输入为0~19的情况,这是因为两个1位十进制数及进位C3相加,其和不会超过19。 表3.27判断>9逻辑的真值表 输入 十进 制数C3S3S2S1S0输出 R 输入 十进 制数C3S3S2S1S0输出 R 000000010010101 100001011010111 200010012011001 300011013011011 400100014011101 500101015011111 600110016100001 700111017100011 801000018100101 901001019100111 因有5个输入量,不便用卡诺图化简。这里结合分析法得出R的逻辑表达式。观察表3.27,当输入大于15时,C3=1,反之C3=0。因此有 R= C3+3·∑m(10,11,12,13,14,15)(330) 保证输入大于15时R=1 从S3S2S1S0中提取使R=1的项 第3步,化简逻辑函数。 由卡诺图化简式(3.30)中的∑m(10,11,12,13,14,15)项。作卡诺图,如图3.61所示。 结合式(330),得到化简结果为式(331)。 R=C3+3(S3S2+S3S1) =C3+S3S2+S3S1 = C3S3S2S3S1(331) 第4步,画出电路图。 现在的问题是,如何根据R的值产生进位W及加数6或0。由表3.27可知,R的值与W的值一致。而加数6对应的二进制数为0110,故只需将0110中为“1”的位用R的值代替、为“0”的位接为固定低电平即可解决问题。最终得到的电路如图3.62所示。 图3.61∑m(10,11,12,13,14,15)的卡诺图 图3.628421码加法器的电路图 视频讲解 3.6.2数码管显示译码器 在一些电子设备中,需要将8421码代表的十进制数显示在数码管上,如图3.63所示。数码管内的各个笔画段由LED(发光二极管)制成。每个LED均有一个阳极和一个阴极。对于共阴数码管,各个LED的阴极全部连在一起,接地,阳极由外部驱动,故驱动信号为高电平有效。当某LED的阳极接高电平、阴极接地时,该LED就会发光。共阳数码管则相反,使用时必须注意。图3.63中所使用的数码管是共阴数码管。 图3.63数码管显示译码器电路框图 7段译码器逻辑电路的功能是将一位8421 BCD码译为驱动数码管各电极的7个输出量a~g。输入量DCBA是8421码,a~g是7个输出端,分别与数码管上的对应笔画段相连(见图3.63)。在a~g中,输出为1的能使对应的笔画段发光,否则对应的笔画段熄灭。例如,要使数码管显示“0”字形,则g段不亮,其他段都亮,即要求abcdefg=1111110。h是小数点,另用一条专线驱动,不参加译码。由此可得到7段译码器逻辑的真值表,如表3.28所示。 对7个输出分别作出卡诺图,如图3.64所示。为简化设计,这里用卡诺圈圈定为0的最大项,并充分利用了无关项。注意图3.64(e)中出现的相切卡诺圈,已被另一卡诺圈连通,险象被消除。 表3.287段译码器逻辑的真值表 输入 十 进 制 数8421码 DCBA输出 abcdefg 000001111110 100010110000 200101101101 300111111001 401000110011 501011011011 601100011111 701111110000 810001111111 910011110011 图3.64译码逻辑的卡诺图 化简结果如下: a= A+C= AC b= CA+CB= CACB c= B d= A+C+CBA= ACCBA e= C+A= C f= BA+A+B= BAAB g= +CBA= CBA (332) 电路实现见图3.65。图3.65中共用了式(332)中重复出现的最大项,节省了“非与”门数量。如果输入能提供反变量,则4个“非”门也可以省去。 图3.657段数码管译码逻辑的电路实现 由于利用了无关项,当输入不是8421码时,显示结果或不是正常的数字形状,或是不希望出现的数字。例如,输入DCBA=1111时,由式(332)算出: abcdefg=1110000,结果显示数字“7”,为克服此缺点建议采用第9.2节所提供的设计方法。 7段译码器有成品出售,如7447(共阳极7段译码器)、7448(共阴极7段译码器)等。如果想用中小规模数字集成电路实现数字系统,则可选用这些器件。 视频讲解 3.6.3多路选择器与多路分配器 多路选择器功能: 对输入的多路数据进行选择,让其中的某一路数据输出。图3.66所示为4路数据选择器的示意图,D3~D0是4路输入,F为输出,S1S0是选择控制信号。输出与输入之间的关系如表3.29所示。例如,当S1S0=00时,D0从F端输出。 图3.664路1位二进制数选择器示意图 表3.294路选择器的功能表 输入输出 S1S0F 00D0 01D1 10D2 11D3 4路选择器的输出逻辑表达式为 F=D3S1S0+D2S10+D11S0+D010(333) 一般来说,N个选择控制端可以对2N路数据进行选择,其逻辑表达式为 F=∑2N-1k=0Dkmk(334) 根据式(334)可知,式(333)中的mk为由S1S0组成的4个最小项,输出量F由4项组成,每项均为一个数据位Dk与mk进行“与”运算。无论S1、S0取何值,mk中仅有一个为1,故对应于mk为1的数据位被输出,达到了“4选1”的目的。 多路选择器的基本功能是选择数据。但是,在组合逻辑设计中常用来实现各种逻辑函数。下面举例说明。 【例311】用4路选择器分别实现逻辑函数: (1)F1=AB; (2)F2=A+B。 解: (1) F1=AB=A+B,对照式(333),将A、B分别与S0、S1对应,并令D3D2D1D0=0110,有 F1=0·AB+1·A+1·B+0· =A+B 电路实现如图3.67和图3.68所示。 图3.674路1位二进制数选择器逻辑图 图3.684路选择器实现函数F=AB (2) 与(1)类似,令D3D2D1D0=0001,有 F1=0·AB+0·A+0·B+1· == A+B 将图3.68中的D3D2D1D0改为0001,即可实现函数F2=A+B。 由此可知,用多路选择器实现逻辑函数的方法是: 将选择信号视为逻辑输入变量,将多路输入数据视为控制信息,不同的控制信息将产生不同的逻辑函数。4路选择器可实现任意2变量的逻辑函数。如果对控制信息适当调整,4路选择器也可实现任意3变量的逻辑函数。现举例说明。 【例312】用4路选择器实现逻辑函数: F=B+B+AC。 解: 将B、C分别视为式(333)中的S1、S0,再对F进行变换,使之具有与式(333)类似的形式,即 图3.694路选择器实现函数 F=B+B+AC F=B+B+AC =B+BC+AC+AB =BC+(+A)B+AC =·BC+1·B+A·C+0· 对比式(333),只要令D3=,D2=1,D1=A,D0=0,即可达到目的。电路如图3.69所示。图3.69中为了得到反变量,使用了一个非门。 通过以上两例可以看出,多路选择器可以方便地实现逻辑函数。一般地,2n路选择器可以实现具有n个变量的逻辑函数,且不需要任何辅助门。并且,通过设置输入数据的值,可以很方便地改变逻辑运算关系。多路选择器已有多种型号和规格的中、小规模集成电路产品供应,如74153(双4路选择器)、74151(8路选择器)、74150(16路选择器)等。 多路选择器内部的逻辑门数一般比专门实现同样逻辑功能的电路所需的门多。当逻辑变量较多时,所需多路选择器的路数将急剧增加,尽管可采用多片多路选择器级联、并联、加辅助逻辑等措施来实现所需的逻辑功能,但这将导致电路复杂化,功耗增加。因此,在实际中应根据具体情况而定。 与多路选择器相反,多路分配器的功能是: 将输入的一位数据,有选择性地从多个输出端中的某一个输出。图3.70所示是4路分配器的功能示意图,功能表如表3.30所示。 图3.70多路分配器功能示意图 表3.304路分配器的功能表 输入输出 S1S0F3F2F1F0 00000D 0100D0 100D00 11D000 由表3.30可知,4路分配器的输出表达式为 Fi=Dmi(i=0,1,2,3)(335) 式(335)中的mi为控制变量S1S0对应的四个最小项。由式(335),可以画出4路分配器的逻辑电路图,如图3.71所示。 多路分配器的基本功能是用于数据分路传送。利用多路分配器也可以实现逻辑函数。 【例313】用4路分配器实现函数F=A⊙B。 解: 先将F转换为标准形式,见式(336)。 F=AB+=m3+m0(336) 对比式(335),令D=1,并增加一个辅助“或”门,即可达到目的,电路如图3.72所示。 图3.714路分配器的逻辑电路图 图3.72用4路分配器实现F=A⊙B 多路分配器已有多种型号、规格的中、小规模集成电路产品供应,如74139(双4路分配器)、74138(8路分配器)等。 【延伸思考】 在组合逻辑电路中,每个基本逻辑门电路仅能实现一个简单的逻辑功能,但根据逻辑代数的基本定理和运算法则将其组合连接,便可实现任意复杂的组合逻辑功能。由此,我们可延伸思考个人与集体的关系。个人是组成集体的重要单元,而集体是个人力量的凝聚,具有更强大的功能。集体主义强调国家利益、社会整体利益与个人利益的辩证统一。马克思指出,只有在集体中,个人才能获得全面发展其才能的手段。国家强大,国民才有坚强后盾; 国民奋斗,国家才能继续向前。 回望历史,中华民族屡经挫折而不屈,屡遭坎坷而不衰,成为世界历史上唯一文明不曾中断的伟大民族,其重要原因也在于,“天下兴亡,匹夫有责”乃至舍生取义的集体主义精神已深深融入我们的民族意识中。其迸发出的精神力量,一次又一次地挺起这个古老民族的脊梁,铸就了这个泱泱大国的尊严。这种精神,体现为战火纷飞年代的“我以我血荐轩辕”,体现为和平建设时期的“敢教日月换新天”,体现为复兴路上的“只争朝夕,不负韶华”,也同样体现为面对灾害时的“众志成城、一方有难八方支援”。 新中国成立后,全新的社会主义制度重新定义了个人、集体与国家的关系,也让集体主义产生了新的飞跃。在社会主义制度下,国家、集体、个人三者之间的根本利益是一致的。国家强大,国民才有坚强后盾; 国民奋斗,国家才能继续向前。尤其这些年,海外撤侨时“你身后是强大的祖国”的底气,抢险救灾时“把人民生命放在第一位”的要求,小康路上“一个都不能少”的承诺……一次次亲历的事件,让人们切实感受到这些看似不可能实现的目标、完成的壮举,在国家政策的正确引领下,将无数个人的力量汇聚成更为强大的集体力量,均得以实现。 由此可见,个人命运与集体命运、国家民族命运的血脉相连。新时代的我们,应以国家、集体目标为导向,在现有社会的运行机制下,充分发挥个人在集体中的作用,在提升个人综合实力的同时,增强集体凝聚力、竞争力和综合性创新能力,以更好地实现个人价值。