第3章组合逻辑电路 数字逻辑电路可以分为组合逻辑电路和时序逻辑电路。组合逻辑电路是指电路任意时刻的输出状态只与该时刻的输入状态有关,而与该时刻之前的状态无任何关系,即组合逻辑电路不具有记忆功能,其输出与输入的关系具有即时性。而时序逻辑电路的输出不仅与当前时刻的输入状态有关,而且还与电路之前的状态有关,所以,时序逻辑电路具有记忆功能,后面章节将对其进行讨论。 3.1逻辑门电路符号和外部特性 在数字电路中,逻辑运算的应用十分广泛,不同的逻辑运算在电路中都有自己不同的门电路符号,它们是组成各种数字电路的基本单元。本节将介绍基本逻辑门电路符号、复合逻辑门电路符号以及逻辑门电路的外部特性。 3.1.1基本逻辑门电路符号 基本逻辑门电路指实现简单逻辑关系的电路,如与门、或门及非门。在逻辑电路中,输入和输出一般用高、低电平表示两种不同的状态。逻辑电路电平的高、低可用逻辑“0”和“1”表示,若用逻辑“1”表示高电平,逻辑“0”表示低电平,则称该体制为正逻辑体制; 反之,若用逻辑“0”表示高电平,逻辑“1”表示低电平,则称为负逻辑体制。对于同一个电路,既可用正逻辑表示,也可用负逻辑表示。如“与”逻辑的功能表,见表31(a),H表示高电平,L表示低电平,分别进行正、负逻辑赋值,得到表31(b)和表31(c),观察发现,正逻辑下的与门,在负逻辑下却实现或逻辑运算。 表31(a)“与”逻辑的功能表 A B Y A B Y L L L H L L L H L H H H 表31(b)正逻辑下“与”逻辑的真值表 A B Y A B Y 0 0 0 1 0 0 0 1 0 1 1 1 表31(c)负逻辑下“与”逻辑的真值表 A B Y A B Y 1 1 1 0 1 1 1 0 1 0 0 0 同理可知,正逻辑的或门在负逻辑中实现与运算; 正逻辑的非门在负逻辑中仍然实现非运算。以后章节若无特别说明,均采用正逻辑体制。 1. 与逻辑门电路符号 与门。将实现“与”逻辑关系的电路称为与门电路。二输入端的“与”门对应的国际符号如图31所示。 2. 或逻辑门电路符号 或门。将实现“或”逻辑关系的电路称为或门电路。二输入端的“或”门对应的国际符号如图32所示。 3. 非逻辑门电路符号 非门。将实现“非”逻辑关系的电路称为非门电路,也称为反相器。“非”门对应的国际符号如图33所示。 图31二输入端的“与” 门对应的国际符号 图32二输入端的“或” 门对应的国际符号 图33“非”门对应的 国际符号 3.1.2复合逻辑门电路符号 由3种基本逻辑运算可以组合成多种复合逻辑运算。“与非”“或非”“与或非”“异或”“同或”这几种复合逻辑门电路的国际符号如图34所示。 图34复合逻辑门电路的国际符号 注意: 本书给出的门电路符号均为中国国标符号,除此符号外,每种逻辑门电路还有自己的惯用符号和美国国标符号。 逻辑门电路是实现基本逻辑运算和常用逻辑运算的数字电路。表32给出了3种基本逻辑门和常用逻辑门电路的两种国标符号和惯用符号,更多的逻辑门电路符号请参考附录A。 表32逻辑门电路符号 名称 中国国标符号 惯用符号和美国国标符号 逻辑运算 与门 F=AB 或门 F=A+B 非门 F= 与非门 F=AB 或非门 F=A+B 异或门 F=B+A=AB 同或门 F=+AB=A⊙B 与或非门 F=AB+CD 需要特别说明的是,逻辑门电路符号不能主观臆造。表32给出的符号都有具体的逻辑电路器件存在,在市场上是可以买到的。 3.1.3逻辑门电路的外部特性 以TTL与非门为例,逻辑门电路的外部特性主要表现在以下几个主要参数。 (1) 输出高电平UOH: TTL与非门的一个或几个输入为低电平时的输出电平。产品规范值UOH≥2.4V,标准高电平USH=2.4V。 (2) 高电平输出电流IOH: 输出为高电平时,提供给外接负载的最大输出电流,超过此值会使输出高电平下降。IOH表示电路的拉电流负载能力。 (3) 输出低电平UOL: TTL与非门的输入全为高电平时的输出电平。产品规范值UOL≤0.4V,标准低电平USL=0.4V。 (4) 低电平输出电流IOL: 输出为低电平时,外接负载的最大输出电流,超过此值会使输出低电平上升。IOL表示电路的灌电流负载能力。 (5) 扇入系数NI: 指一个门电路允许的输入端的最大数目。一般为2~5,最多不超过8个。 (6) 扇出系数NO: 指一个门电路的输出能带同类门的最大数目,它反映了门电路的带负载能力。一般TTL门电路的NO≥8,功率驱动门的NO可达25。 (7) 最大工作频率fmax: 若超过此频率,电路就不能正常工作。 (8) 输入开门电平UON: 是在额定负载下使与非门的输出电平达到标准低电平USL的输入电平。它表示使与非门开通的最小输入电平。一般TTL门电路的UON≈1.8V。 (9) 输入关门电平UOFF: 使与非门的输出电平达到标准高电平USH的输入电平。它表示使与非门关断所需的最大输入电平。一般TTL门电路的UOFF≈0.8V。 (10) 高电平输入电流IIH: 输入为高电平时的输入电流,即当前级输出为高电平时,本级输入电路造成的前级拉电流。 (11) 低电平输入电流IIL: 输入为低电平时的输出电流,即当前级输出为低电平时,本级输入电路造成的前级灌电流。 (12) 平均传输时间tpd: 信号通过与非门时所需的平均延迟时间。在工作频率较高的数字电路中,信号经过多级传输后造成的时间延迟会影响电路的逻辑功能。 (13) 空载功耗: 与非门空载时电源总电流ICC与电源电压VCC的乘积。 3.2组合逻辑电路的分析 组合逻辑电路可以有一个或多个输入端,也可以有一个或多个输出端。图35给出了组合逻辑电路的示意框图。 由此可看出,数字信号在电路中是从输入端到输出端的单向传递,函数表达式的形式如下。 图35组合逻辑电路的示意框图 Y1=f1(x1,x2,…,xn) Y2=f2(x1,x2,…,xn)  Ym=fm(x1,x2,…,xn) 对组合逻辑电路的研究,主要从分析、设计及运用3个方面进行。 (1) 给出具体的组合逻辑电路,对其进行分析并确定其逻辑功能。 (2) 依据给出的具体需求,设计出相关的组合逻辑电路,完成所需功能。 (3) 掌握常用中小规模器件的逻辑功能,并能灵活运用于工程实践中。 组合逻辑电路的分析,是指已知某一组合逻辑电路图,通过列出其对应的逻辑表达式、真值表,分析出该电路完成的功能。 3.2.1组合逻辑电路的分析步骤 给定一个组合逻辑电路图时,具体的分析步骤如下。 (1) 根据逻辑电路图,从输入端到输出端逐级写出逻辑表达式。 (2) 利用公式法或卡诺图法,对所得逻辑表达式进行化简,得到最简逻辑表达式。 (3) 根据得到的最简表达式列出真值表。 (4) 依据真值表或最简表达式,对逻辑电路进行分析,确定其逻辑功能,并进行文字描述或进行电路改进。 3.2.2组合逻辑电路的分析实例 下面通过几个实例,给出对组合逻辑电路具体的分析过程。 【例31】试分析图36所示的组合逻辑电路图,给出逻辑功能。 图36例31逻辑电路图 解: 由逻辑电路图逐级写出逻辑表达式: Y1=A·B Y2=A·C Y3=B·C Y=Y1+Y2+Y3 将Y1、Y2、Y3的表达式代入Y的表达式中,可得Y=AB+AC+BC。 由于以上表达式已经是最简表达式,所以可直接列出对应的真值表,见表33。 表33例31真值表 输入 输出 输入 输出 A B C Y A B C Y 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 由表33可看出,只有当3个输入变量中的两个或3个取值为1时,输出值才为1,其他情况输出均为0。所以,该电路是一个多数表决电路,即用来判断输入变量中是否有多数变量为1。 图37例32逻辑电路图 【例32】试分析图37所示的组合逻辑电路图,并给出逻辑功能。 解: 由电路图逐级写出逻辑表达式,并将Y1和Y2的表达式代入Y的表达式中,可得: Y1=AB=AB+ Y2=CD=CD+ Y=Y1Y2=Y1Y2+Y1Y2  Y=Y1Y2+Y1Y2 =(AB+)(CD+)+(A+B)(C+D) =ABCD+AB+CD++ AC+AD+BC+BD 列出相应真值表,见表34。 表34例32真值表 输入 输出 输入 输出 A B C D Y A B C D Y 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 仔细观察表34,分析可发现,当输入变量中有奇数个“1”时,电路的输出为“0”; 反之,当输入为全“0”和有偶数个“1”时,电路的输出为“1”,所以该电路是一个奇偶校验器。 图38例33逻辑电路图 以上两个例子的逻辑电路都只有一个输出变量,所以为单输出组合逻辑电路,反之,若组合逻辑电路有多个输出量,则称为多输出组合逻辑电路。下面给出一个多输出组合逻辑电路的例子。 【例33】试分析图38所示的两输出电路的逻辑功能。 解: 由逻辑电路图分别写出两个输出的逻辑表达式,并进行化简。 C=Y1=AB=AB S=Y2·Y3=Y1A·Y1B= AB·A·AB·B= A·B= A+B=AB 列出真值表,见表35。 表35例33真值表 输入 输出 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 分析以上真值表可以看出,若A、B为两个二进制的加数,则S为这两个数的和,C为两数相加向高位的进位,所以该电路可作为运算器中的基本单元电路——半加器。后面章节将对加法器进行详细介绍。 3.3组合逻辑电路的设计 3.3.1组合逻辑电路的设计步骤 组合逻辑电路的设计过程与分析过程互逆,是根据所给逻辑问题设计出相关的逻辑电路,以满足逻辑功能要求的过程。一般来说,组合逻辑电路的设计按照以下步骤进行。 (1) 分析逻辑问题,抽象出逻辑输入变量和输出变量。 (2) 依据逻辑要求列出真值表。 (3) 根据真值表列出逻辑函数表达式。 (4) 对表达式进行化简或变形,使之与给定器件匹配。 (5) 根据逻辑表达式做出逻辑电路图。 3.3.2组合逻辑电路的设计实例 下面通过两个实例分别给出单输出组合逻辑电路和多输出组合逻辑电路的设计过程。 【例34】试设计一个裁判表决器。假设在某舞蹈考试的考场有3位考官,其中一位是主考官,二位是副考官。当考生完成表演后,由考官按下自己面前的按钮决定该考生是否通过考试。若有两位或两位以上考官通过(其中一位必须是主考官),则表明考生通过考试。试用与非门实现电路,完成该表决器。 解: (1) 抽象输入变量与输出变量。 根据逻辑问题,有3位考官进行评分,所以设定3个输入变量A、B、C分别代表这3位考官,其中A表示主考官,B和C表示副考官,取值为“1”时表示考官认为合格,取值为“0”时表示考官认为不合格; 每位考生的考试结果只有两种结果,所以用1个输出变量Y表示,取值为“1”时表示考试通过,取值为“0”时表示考试不通过。 (2) 由给出的条件列出真值表,见表36。 表36例34真值表 输入 输出 输入 输出 A B C Y A B C Y 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 (3) 由以上真值表写出逻辑函数表达式,并转换为最简与非表达式: Y=AC+AB+ABC=(AC+ABC)+(AB+ABC) =AC+AB=AC+AB=AC·AB (4) 画出逻辑电路图,如图39所示。 【例35】现有两个水泵L和S往某个深井内加水,其中水泵L的功率大于水泵S的功率,示意图如图310所示。当水位低于A点时,需要两个水泵一起工作进行抽水; 当水位位于A点和B点之间时,只要水泵L工作即可; 当水位位于B点和C点之间时,只需要水泵S工作; 若水位位于C点或C以上时,水泵不需要工作。试用与非门设计一个控制电路控制这两个水泵的工作(输入仅提供原变量)。 图39例34逻辑电路图 图310例35示意图 解: 设输入逻辑变量为A、B、C,输出变量为L、S,当水高于某一水位时,取值为“1”,否则为“0”; 水泵工作时,取值为“1”,否则为“0”。两个水泵工作时的逻辑取值如下。 当水位低于A点时,有A=0,B=0,C=0时,L=1,S=1; 当水位位于A点和B点之间时,有A=1,B=0,C=0时,L=1,S=0; 当水位位于B点和C点之间时,有A=1,B=1,C=0时,L=0,S=1; 若水位位于C点或C以上时,有A=1,B=1,C=1时,L=0,S=0。 除了以上情况外,其他情况均不会出现,可视为随意项。列出真值表,见表37。 表37例35真值表 输入 输出 输入 输出 A B C L S A B C L S 0 0 0 1 1 1 0 0 1 0 0 0 1 × × 1 0 1 × × 0 1 0 × × 1 1 0 0 1 0 1 1 × × 1 1 1 0 0 利用卡诺图(图311)进行化简,可得: L= S=+B 图311例35卡诺图 画出逻辑电路图,如图312所示。 若要求用与非门实现,则逻辑表达式变为 L==B·1 S=+B=+B= A·B=A·BC·1 根据逻辑函数表达式,画出相应逻辑电路图,如图313所示。 图312例35逻辑电路图 图313例35用与非门构造的逻辑电路图 3.4中规模通用集成电路的逻辑设计 为了使用方便,可以将常用组合逻辑电路的设计标准化,制造成各类中、小规模的集成电路芯片,具有通用性强、扩展性好、兼容性好、功耗小、可靠性强、输入负载小等优点。采用中小规模集成电路构造数字系统,可以使数字系统的装配密度增大、结构简化、体积缩小、重量减轻、功耗降低、可靠性提高、设计实现和维护较容易,而且使用方便。本节将介绍几种常用的中规模通用集成电路。 3.4.1加法器 所谓加法器,是指能够实现加法运算的电路。在计算机及其他数字系统中采用的是二进制的表示方法,不管是加、减运算,还是乘、除运算,均要转换为二进制的加法运算。所以,加法器是算术逻辑运算单元的基本逻辑电路。 1. 半加器 两个1位二进制数相加时,只考虑本位的相加,不考虑低位来的进位,这种相加被称为半加。能够实现半加功能的逻辑电路称为半加器。第3.2节中的例33给的是一个实现半加器的逻辑电路图,对图38进行改进,可得到用异或门以及与门构造的半加器。逻辑函数表达式如下: C=AB S=AB 图314给出了改进后半加器的逻辑电路图(a)和逻辑符号(b)。 图314半加器的逻辑电路图与逻辑符号 2. 全加器 两个1位的二进制数相加时,除了考虑本位的相加外,还要考虑低位来的进位,这种相加被称为全加。能够实现全加功能的逻辑电路称 图315全加器的逻辑符号 为全加器。全加器的逻辑符号如图315所示,真值表见表38,其中,Cn-1代表低位来的进位,An和Bn代表本位的两个加数,Sn代表本位和,Cn代表向高位的进位。 表38全加器真值表 输入 输出 输入 输出 An Bn Cn-1 Cn Sn An Bn Cn-1 Cn Sn 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 由真值表写出全加器本位和与进位信号的表达式,并进行变形可得: Cn=AnBnCn-1+AnBnCn-1+AnBnCn-1+AnBnCn-1 =(AnBnCn-1+AnBnCn-1)+(AnBnCn-1+AnBnCn-1) =(AnBn+AnBn)Cn-1+AnBn(Cn-1+Cn-1) =(AnBn)Cn-1+AnBn Sn=AnBnCn-1+AnBnCn-1+AnBnCn-1+AnBnCn-1 =(AnBnCn-1+AnBnCn-1)+(AnBnCn-1+AnBnCn-1) =(AnBn+AnBn)Cn-1+(AnBn+AnBn)Cn-1 =(AnBn)Cn-1+(AnBn)Cn-1 =AnBnCn-1 根据逻辑表达式画出逻辑电路图,如图316所示。 图316全加器逻辑电路图 仔细观察图316可发现,全加器可由两个半加器和一个或门构成,如图317所示。 图317半加器构成全加器 3. n位加法器 若要实现n位二进制数的加法运算,可以采用串行结构或是并行结构。下面以两个4位二进制数A3A2A1A0和B3B2B1B0相加为例,给出这两种不同的结构。 1) 串行进位加法器 4位串行进位加法器原理图如图318所示,由4个全加器级联构成,低位全加器的进位输出与相邻的高位全加器的进位输入相连,各全加器的进位按照由低位向高位逐级串行传递,并形成一个进位链。 图3184位串行进位加法器原理图 串行进位加法器具有电路简单的特点。又由于每一位相加的和都与本位进位输入有关,最高位只有在其他各低位全部相加并产生进位信号之后,才能产生最后的运算结果,所以运算速度较慢,而且位数越多,运算速度越低。 2) 超前进位加法器 超前进位加法器不必逐级传递进位信号,解决了串行进位加法器速度慢的问题。由于超前进位加法器可以根据输入信号同时形成各位向高位的进位,所以又被称为先行进位加法器、并行进位加法器。 4位二进制数A3A2A1A0和B3B2B1B0相加,令Pi=AiBi,Gi=AiBi,则第i位的进位信号为Ci=(AiBi)Ci-1+AiBi=PiCi-1+Gi,各位相加产生的进位表达式如下。 C0=P0C-1+G0 C1=P1C0+G1=P1(P0C-1+G0)+G1=P1P0G-1+P1G0+G1 C2=P2C1+G2=P2(P1P0C-1+P1G0+G1)+G2 =P2P1P0C-1+P2P1G0+P2G1+G2 C3=P3C2+G3=P3(P2P1P0C-1+P2P1G0+P2G1+G2)+G3 =P3P2P1P0C-1+P3P2P1G0+P3P2G1+P3G2+G3 式中,Pi被称为进位传递函数,Gi为进位产生函数。由以上式子可以看出,各全加器的进位信号只与最低位的进位信号有关,所以,在输入两个加数及C-1之后,可同时并行产生C0~C3,而不必像串行进位加法器需逐级传递进位信号。由基本门电路构成的超前进位加法器如图319所示。 中规模集成电路74LS283是4位超前进位全加器,其芯片引脚图如图320所示。图中,VCC接电源,GND接地,A3~A0与B3~B0分别输入参加运算的4位二进制数,C3与S3~S0输出最后的运算结果。若要完成更多位数的运算,可以将芯片级联扩展。 【例36】试用74LS283芯片实现2个8位数的相加运算。 解: 由于每片74LS283可实现4位二进制的运算,8位数的运算可用2片74LS283实现。将两个8位数的低4位送入低位芯片相加,高4位送入高位芯片相加,并将低位芯片的C-1接地,进位信号C3接入高位芯片的C-1。进行运算后,由高位芯片的C3和两片芯片的S端输出结果。构造的电路图如图321所示。 图319由基本门电路构成的超前进位加法器 图32074LS283芯片引脚图 图321例36电路图 3.4.2数值比较器 数值比较器是指用来比较两个二进制数大小的逻辑电路,其输入变量是两个n位二进制数 An-1An-2…A1A0和Bn-1Bn-2…B1B0, 输出变量有Y(A>B)、Y(A=B)、Y(AB时,有Y(A>B)=1; A=B时,有Y(A=B)=1; AB) A B Y(AB) 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 由表39可写出逻辑函数表达式: Y(AB)=A 画出的逻辑电路图如图323所示。 2. 四位数值比较器 两个n位二进制数An-1An-2…A1A0和Bn-1Bn-2…B1B0进行比较时,必须从高位开始比较。若在最高位有 An-1>Bn-1,则肯定有A>B; 若有An-1B′A′B)Y(AB3 A3B2 A2B1 A1B0 A0B′、A′B′)和(A′B′)和(A′B=0,FAB=0,FAB=1,FAB=1,FA