第四章 组合逻辑电路 第 四 章 组 合 逻 辑 电 路
数字系统中的逻辑电路按其结构可分为组合逻辑电路和时序逻辑电路两大类型。 第四章 组合逻辑电路 数字系统中的逻辑电路按其结构可分为组合逻辑电路和时序逻辑电路两大类型。 组合逻辑电路既可完成各种复杂的逻辑功能,又是时序逻辑电路的组成部分,应用十分广泛。 本章知识要点: 组合逻辑电路的基本概念; 组合逻辑电路分析和设计的基本方法; 组合逻辑电路设计中几个常见的实际问题及其处理; 组合逻辑电路中的竞争与险象问题.
第四章 组合逻辑电路 4. 1 基 本 概 念 一.定义 组合逻辑电路:若逻辑电路在任何时刻产生的稳定输出值仅仅取决于该时刻各输入值的组合,而与过去的输入值无关,则称为组合逻辑电路。 二.结 构 组合逻辑电路的结构框图如下图所示。 组合 逻辑电路 X1 X2 Xn F1 F2 Fm 输入信号 输出信号 图中,X1,X2,…,Xn是电路的n个输入信号,F1,F2,…,Fm 是电路的m个输出信号。输出信号是输入信号的函数。
Fi = fi (X1,X2,…,Xn) i = 1,2,…,m 第四章 组合逻辑电路 三. 描述 组合电路的逻辑功能可用一组逻辑函数表达式进行描述,函数表达式可表示为 Fi = fi (X1,X2,…,Xn) i = 1,2,…,m 四. 特点 组合电路具有两个特点: ① 由逻辑门电路组成,不包含任何记忆元件; ② 信号是单向传输的,不存在反馈回路。
所谓逻辑电路分析,是指对一个给定的逻辑电路,找出其输出与输入之间的逻辑关系。 第四章 组合逻辑电路 4. 2 组合逻辑电路分析 所谓逻辑电路分析,是指对一个给定的逻辑电路,找出其输出与输入之间的逻辑关系。 分析是研究数字系统的一种基本技能。其目的是了解给定逻辑电路的功能,评价设计方案的优劣,吸取优秀的设计思想、改进和完善不合理方案等。 一. 分析的一般步骤 一般步骤如下: 1. 根据逻辑电路图写出输出函数表达式 写输出函数表达式时,一般从输入端开始往输出端逐级推导,直至得到所有与输入变量相关的输出函数表达式为止。
根据输出函数最简表达式,列出输出函数真值表。真值表详尽地给出了输入、输出取值关系,它直观地描述了电路的逻辑功能。 第四章 组合逻辑电路 2. 化简输出函数表达式 为了简单、清晰地反映输入和输出之间的逻辑关系,应对逻辑表达式进行化简。描述一个电路功能的逻辑表达式是否达到最简,是评定该电路经济技术指标的依据。 3. 列出输出函数真值表 根据输出函数最简表达式,列出输出函数真值表。真值表详尽地给出了输入、输出取值关系,它直观地描述了电路的逻辑功能。 4. 功能评述 根据真值表和化简后的函数表达式,概括出对电路逻辑功能的文字描述,并对原电路的设计方案进行评定,必要时提出改进意见和改进方案。
第四章 组合逻辑电路 二. 分析举例 例 1 分析下图所示组合逻辑电路。 解 ① 根据逻辑电路图写出输出函数表达式
动画演示 ② 化简输出函数表达式 用代数法对输出函数F的表达式化简如下: ③ 列出真值表 该函数的真值表如右表所示。 A B C F 第四章 组合逻辑电路 ② 化简输出函数表达式 用代数法对输出函数F的表达式化简如下: 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 A B C F ③ 列出真值表 该函数的真值表如右表所示。 动画演示
由真值表可知,该电路具有检查输入信号取值是否一致的逻辑功能,一旦输出为1,则表明输入不一致。通常称该电路为“不一致电路”。 第四章 组合逻辑电路 ④ 功能评述。 由真值表可知,该电路具有检查输入信号取值是否一致的逻辑功能,一旦输出为1,则表明输入不一致。通常称该电路为“不一致电路”。 由分析可知,该电路的设计方案并不是最简的。根据化简后的输出函数表达式,可采用异或门和或门画出实现给定功能的逻辑电路图如下图所示。
解 根据给出的逻辑电路图可写出输出函数表达式 第四章 组合逻辑电路 例 2 分析下图所示逻辑电路。 解 根据给出的逻辑电路图可写出输出函数表达式
动画演示 用代数法化简输出函数如下: 根据简化后的表达式可列出真值表如下表所示。 A B S C 0 0 0 0 0 1 1 0 第四章 组合逻辑电路 用代数法化简输出函数如下: 根据简化后的表达式可列出真值表如下表所示。 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 动画演示
半加器已被加工成小规模集成电路,其逻辑符号如下图所示。 第四章 组合逻辑电路 由真值表可以看出,若将A、B分别作为一位二进制数,则 S是 A、B 相加的“和”,而 C是相加产生的“进位”。该电路称作“半加器”,它能实现两个一位二进制数加法运算。 半加器已被加工成小规模集成电路,其逻辑符号如下图所示。 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1
根据化简结果可知,该电路实现“异或”逻辑功能。 第四章 组合逻辑电路 例 3 分析下图所示组合逻辑电路。 解 该电路输出函数表达式为 用代数法对函数F化简如下: 根据化简结果可知,该电路实现“异或”逻辑功能。
第四章 组合逻辑电路 根据化简结果可知,该电路实现“异或”逻辑功能。显然,原逻辑电路的设计是不合理的,该电路的逻辑功能只需要一个异或门便能实现,其逻辑电路可简化为下图所示。 从上述例子可以看出,通过对电路进行分析,不仅可以找出电路输入、输出之间的关系,确定电路的逻辑功能,同时还能对某些设计不合理的电路进行改进和完善。
第四章 组合逻辑电路 4.3 组合逻辑电路设计 根据问题要求完成的逻辑功能,求出在特定条件下实现给定功能的逻辑电路,称为逻辑设计,又叫做逻辑综合。 显然,逻辑设计是逻辑分析的逆过程。即 逻辑电路 逻辑功能 分析 设计 4.3.1 设计方法概述 由于实际应用中提出的各种设计要求一般是用文字形式描述的,所以,逻辑设计的首要任务是将文字描述的设计要求抽象为一种逻辑关系。对于组合逻辑电路,即抽象出描述问题的逻辑表达式。
根据实际问题的难易程度和设计者熟练程度,有时可跳过其中的某些步骤。设计过程可视具体情况灵活掌握。 第四章 组合逻辑电路 设计的一般过程: 1. 建立给定问题的逻辑描述 这一步的关键是正确理解设计要求,弄清楚与给定问题相关的变量及函数,即电路的输入和输出,建立函数与变量之间的逻辑关系,得到描述给定问题的逻辑表达式。求逻辑表达式有两种常用方法,即真值表法和分析法。 2. 求出逻辑函数的最简表达式 为了使逻辑电路中包含的逻辑门最少且连线最少,要对逻辑表达式进行化简,求出描述设计问题的最简表达式 。 3. 选择逻辑门类型并将逻辑函数变换成相应形式 根据简化后的逻辑表达式及问题的具体要求,选择合适的逻辑门,并将逻辑表达式变换成与所选逻辑门对应的形式。 4. 画出逻辑电路图 根据实际问题的难易程度和设计者熟练程度,有时可跳过其中的某些步骤。设计过程可视具体情况灵活掌握。
解 分析: “多数表决电路”是按照少数服从多数的原则对某项决议进行表决,确定是否通过。 第四章 组合逻辑电路 4.3.2 设计举例 例 1 设计一个三变量“多数表决电路”。 解 分析: “多数表决电路”是按照少数服从多数的原则对某项决议进行表决,确定是否通过。 令 逻辑变量A、B、C --- 分别代表参加表决的3个成员,并约定逻辑变量取值为0表示反对,取值为1表示赞成; 逻辑函数 F---- 表示表决结果。F取值为0表示决议被否定,F取值为1表示决议通过。 按照少数服从多数的原则可知,函数和变量的关系是:当3个变量A、B、C中有2个或2个以上取值为1时,函数F的值为1,其他情况下函数F的值为0。
假定采用 “真值表法”,可作出真值表如下表所示。 第四章 组合逻辑电路 ① 建立给定问题的逻辑描述 假定采用 “真值表法”,可作出真值表如下表所示。 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 A B C F 由真值表可写出函数F的最小项表达式为 F(A,B,C) = ∑m (3,5,6,7)
作出函数F(A,B,C) = ∑m (3,5,6,7)的卡诺图如下图所示。 第四章 组合逻辑电路 ② 求出逻辑函数的最简表达式 作出函数F(A,B,C) = ∑m (3,5,6,7)的卡诺图如下图所示。 用卡诺图化简后得到函数的最简“与-或”表达式为 ③ 选择逻辑门类型并进行逻辑函数变换 假定采用与非门构成实现给定功能的电路,则应将上述表达式变换成“与非-与非”表达式。即
动画演示 ④ 画出逻辑电路图 由函数的“与非-与非”表达式,可画出实现给定功能的逻辑电路图如下图所示。 第四章 组合逻辑电路 ④ 画出逻辑电路图 由函数的“与非-与非”表达式,可画出实现给定功能的逻辑电路图如下图所示。 动画演示 本例采用的是“真值表法”,真值表法的优点是规整、清晰;缺点是不方便,尤其当变量较多时十分麻烦。 设计中常用的另一种方法是“分析法”,即通过对设计要求的分析、理解, 直接写出逻辑表达式。
例 2 设计一个比较两个三位二进制数是否相等的数值比较 器。 第四章 组合逻辑电路 例 2 设计一个比较两个三位二进制数是否相等的数值比较 器。 解 令 两个3位二进制数分别为 A = a3a2a1,B = b3b2b1,比较结果为函数F。 当 A = B 时 ,F为1;否则F为0。 显然,该电路有6个输入变量,1个输出函数。 ① 建立给定问题的逻辑描述 由于二进制数A和B相等,必须同时满足a3 = b3、a2 = b2、a1 = b1,而二进制中ai=bi只有ai和bi同时为0或者同时为1两种情况,可用 表示,因此,该问题可用逻辑表达式描述如下:
假定将上述逻辑表达式展开成“与-或”表达式,则表达式中包含8个6 变量“与项”。 (请问:若用与非门实现给定功能,需要多少个与非门?) 第四章 组合逻辑电路 ② 求出逻辑函数最简表达式 假定将上述逻辑表达式展开成“与-或”表达式,则表达式中包含8个6 变量“与项”。 (请问:若用与非门实现给定功能,需要多少个与非门?) ③ 选择逻辑门类型并进行逻辑函数变换 假定采用异或门和或非门实现给定功能,可将逻辑表达式作如下变换:
根据变换后的表达式可画出逻辑电路图如下图所示。 第四章 组合逻辑电路 ④ 画出逻辑电路图 根据变换后的表达式可画出逻辑电路图如下图所示。
实际提出的设计要求是形形色色的,下面就几个常见问题进行讨论。 第四章 组合逻辑电路 4.2.3 设计中几个实际问题的处理 实际提出的设计要求是形形色色的,下面就几个常见问题进行讨论。 一. 包含无关条件的组合逻辑电路设计 在某些实际问题中,常常由于输入变量之间存在的相互制约或问题的某种特殊限定等,使得逻辑函数与输入变量的某些取值组合无关,通常把这类问题称为与包含无关条件的逻辑问题;描述这类问题的逻辑函数称为包含无关条件的逻辑函数。 无关最小项的概念:由于输入变量之间存在的相互制约或问题的某种特殊限定,使输出函数与某些变量取值无关,这些输入取值组合对应的最小项称为无关最小项,简称为无关项或者任意项。
例如,假定用A、B、C表示计算机中的+、-、×运算,并令变量取值1执行相应运算,则A、B、C三个变量不允许两个或两个以上同时为1。即 第四章 组合逻辑电路 例如,假定用A、B、C表示计算机中的+、-、×运算,并令变量取值1执行相应运算,则A、B、C三个变量不允许两个或两个以上同时为1。即 A、B、C只允许出现000,001,010,100四种取值组合,不允许出现011,101,110,111四种组合。 即包含无关最小项 、 、 、 。与A、B、C相关的逻辑函数称为包含无关条件的逻辑函数。 当采用“最小项之和”表达式描述一个包含无关条件的逻辑问题时,函数表达式中是否包含无关项,以及对无关项是令其值为1还是为0,并不影响函数的实际逻辑功能。 注意:在化简这类逻辑函数时,利用无关项的随意性往往可以使逻辑函数得到更好地简化,从而使设计的电路达到更简!
例 设计一个组合逻辑电路,用于判别以余3码表示的1 位十进制数是否为合数。 第四章 组合逻辑电路 例 设计一个组合逻辑电路,用于判别以余3码表示的1 位十进制数是否为合数。 解 设输入变量为ABCD,输出函数为 F,当ABCD表示的十进制数为合数(4、6、8、9)时,输出F为1,否则F为0。 因为按照余3码的编码规则,ABCD的取值组合不允许为0000、0001、0010、1101、1110、1111,故该问题为包含无关条件的逻辑问题,与上述6种取值组合对应的最小项为无关项,即在这些取值组合下输出函数F的值可以随意指定为1或者为0,通常记为“d”。
根据分析,可建立描述该问题的真值表如下表所示。 第四章 组合逻辑电路 根据分析,可建立描述该问题的真值表如下表所示。 0 0 0 0 d 1 0 0 0 0 0 0 0 1 d 1 0 0 1 1 0 0 1 0 d 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 d 0 1 1 0 0 1 1 1 0 d 0 1 1 1 1 1 1 1 1 d A B C D F 由真值表可写出F 的逻辑表达式为 F(A,B,C,D) = ∑m(7,9,11,12)+ ∑d(0,1,2,13,14,15)
若不考虑无关项,则函数F的卡诺图如下图所示。 第四章 组合逻辑电路 若不考虑无关项,则函数F的卡诺图如下图所示。 合并卡诺图上的1方格,可得到化简后的逻辑表达式为
若考虑无关项,则函数F的卡诺图下图所示。 第四章 组合逻辑电路 若考虑无关项,则函数F的卡诺图下图所示。 根据合并的需要将卡诺图中的无关项d(13,14,15)当成1处理,而把d(0,1,2)当成0处理,可得到化简后的逻辑表达式为 显然,后一个表达式比前一个表达式更简单。
假定采用与非门组成实现给定逻辑功能的电路,可将F的最简表达式变换成“与非-与非”表达式: 第四章 组合逻辑电路 假定采用与非门组成实现给定逻辑功能的电路,可将F的最简表达式变换成“与非-与非”表达式: 相应的逻辑电路图如下图所示。 由此可见,设计包含无关条件的组合逻辑电路时,恰当地利用无关项进行函数化简,通常可使设计出来的电路更简单。
实际问题中,大量存在着由同一组输入变量产生多个输出函数的问题,实现这类问题的组合逻辑电路称为多输出函数的组合逻辑电路。 第四章 组合逻辑电路 二 . 多输出函数的组合逻辑电路设计 实际问题中,大量存在着由同一组输入变量产生多个输出函数的问题,实现这类问题的组合逻辑电路称为多输出函数的组合逻辑电路。 设计多输出函数的组合逻辑电路时,应该将多个输出函数当作一个整体考虑,而不应该将其截然分开。 多数出组合电路达到最简的关键是在函数化简时找出各输出函数的公用项,使之在逻辑电路中实现对逻辑门的共享,从而达到电路整体结构最简。
解 全加器:能对两个1位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。 全加器可用于实现两个n位数相加。如 第四章 组合逻辑电路 例 1 设计一个全加器(逻辑门自选)。 解 全加器:能对两个1位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。 全加器可用于实现两个n位数相加。如 An-1 An-2 ┅ Ai ┅ A1 A0 + Bn-1 Bn-2 ┅ Bi ┅ B1 B0 Ci Ci-1 (来自低位的进位输入) Si (本位和) (向高位的进位) 可见,全加器有3个输入变量,2个输出函数。
Si( Ai,Bi,Ci-1) = ∑m(1,2,4,7) Ci( Ai,Bi,Ci-1) = ∑m(3,5,6,7) 第四章 组合逻辑电路 设:被加数、加数及来自低位的“进位”分别用变量Ai、Bi及Ci-1表示,相加产生的“和”及“进位”用Si和Ci表示。 根据二进制加法运算法则可列出全加器的真值表如下表 所示。 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Ai Bi Si Ci Ci-1 由真值表可写出输出函数表达式: Si( Ai,Bi,Ci-1) = ∑m(1,2,4,7) Ci( Ai,Bi,Ci-1) = ∑m(3,5,6,7)
假定采用卡诺图化简上述函数,则可作出相应卡诺图如下图所示。 第四章 组合逻辑电路 假定采用卡诺图化简上述函数,则可作出相应卡诺图如下图所示。 经化简后的输出函数表达式为 其中,Si 的标准“与-或”式即最简“与-或”式。
当采用异或门和与非门构成实现给定功能的电路时,可分别对表达式作如下变换: 第四章 组合逻辑电路 当采用异或门和与非门构成实现给定功能的电路时,可分别对表达式作如下变换: 相应的逻辑电路图如右图所示。 该电路就单个函数而言,Ai、Ci均已达到最简,但从整体考虑则并非最简。
当按多输出函数组合电路进行设计时,可对函数Ci作如下变换: 第四章 组合逻辑电路 当按多输出函数组合电路进行设计时,可对函数Ci作如下变换: 经变换后,Si ( ) 和Ci的逻辑表达式中有公用项 。
经变换后,组成电路时可令其共享同一个异或门,从而使整体得到进一步简化,其逻辑电路图如下图所示。 第四章 组合逻辑电路 经变换后,组成电路时可令其共享同一个异或门,从而使整体得到进一步简化,其逻辑电路图如下图所示。
例2 设计一个乘法器,用于产生两个2位二进制数相乘的积。 第四章 组合逻辑电路 例2 设计一个乘法器,用于产生两个2位二进制数相乘的积。 解 因为两个2位二进制数相乘的积最大为一个4位二进制数,所以该电路有4个输入变量,4个输出函数。 设两个二进制数分别为 A1A0 和 B1B0,相乘的积为 M3M2M1M0。按照二进制乘法运算法则,计算过程如下: A1 A0 ×(乘) B1 B0 C2 C1 A1×B0 A0×B0 +(加) A1×B1 A0×B1 M3 M2 M1 M0 式中,积项Ai×Bj (i,j=0,1)为1位二进制数,可用两输入与门产生,即Ai×Bj 的算术值等于Ai · Bj的逻辑值。
● C1为A1B0和A0B1相加产生的进位,它等于A1B0和A0B1相“与”,即: C1 = A1B0A0B1 第四章 组合逻辑电路 注意: ● C1为A1B0和A0B1相加产生的进位,它等于A1B0和A0B1相“与”,即: C1 = A1B0A0B1 ● C2为C1和A1B1相加产生的进位,它等于C1和A1B1相“与”,即: C2 = C1A1B1 = A1B0A0B1 A1 A0 ×(乘) B1 B0 C2 C1 A1×B0 A0×B0 +(加) A1×B1 A0×B1 M3 M2 M1 M0 因为两个1位二进制数相加的“和”等于对其进行“异或” 运算的结果,所以,该电路的输出函数表达式如下: M0 = A0B0 M1 = A1B0 ⊕ A0B1 M2 = C1⊕ A1B1 = A1B0A0B1⊕A1B1 M3 = C2 = A1B0A0B1
显然,函数M1、M2、M3有公用项A1B0和A0B1,可令其共享相应的逻辑门。该乘法器的逻辑电路图如下图所示。 第四章 组合逻辑电路 显然,函数M1、M2、M3有公用项A1B0和A0B1,可令其共享相应的逻辑门。该乘法器的逻辑电路图如下图所示。 M0 = A0B0 M1 = A1B0 ⊕ A0B1 M2 = C1⊕ A1B1 = A1B0A0B1⊕A1B1 M3 = C2 = A1B0A0B1 电路中共用了7个逻辑门。该题如果采用真值表法进行设计,则各函数的最简“与-或” 表达式之间无公用项,实现给定功能至少需要10个逻辑门。
在某些问题的设计中,为了减少各部件之间的连线,在逻辑电路的输入端只提供原变量,不提供反变量。 第四章 组合逻辑电路 三 . 无反变量提供的组合逻辑电路设计 在某些问题的设计中,为了减少各部件之间的连线,在逻辑电路的输入端只提供原变量,不提供反变量。 设计这类电路时,若直截用非门将原变量转换成相应的反变量,则处理结果往往是不经济的。因此,通常进行适当的变换,以便尽可能减少非门数量。
例1 输入不提供反变量时,用与非门实现如下逻辑函数。 第四章 组合逻辑电路 例1 输入不提供反变量时,用与非门实现如下逻辑函数。 解 因为给定函数已经是最简“与-或”表达式,故可直接变换成“与非-与非”表达式 相应逻辑电路如右图所示。
第四章 组合逻辑电路 如果对函数F的表达式作如下整理 ,即 可得到相应的逻辑电路如右图所示。 显然,此图比上幅图更简单、合 理。
例2 设计一个组合逻辑电路,用来判断献血者与受血者血型是否相容。 血型相容规则如下表所示,表中用“√”表示两者血型相容。 第四章 组合逻辑电路 例2 设计一个组合逻辑电路,用来判断献血者与受血者血型是否相容。 血型相容规则如下表所示,表中用“√”表示两者血型相容。 受血 献血 A B AB O √
解 由题意可知,电路输入变量为献血者血型和受血者血型。血型共4种,可用两个变量的4种编码进行区分。 第四章 组合逻辑电路 解 由题意可知,电路输入变量为献血者血型和受血者血型。血型共4种,可用两个变量的4种编码进行区分。 设变量WX表示献血者血型,YZ表示受血者血型,血型编码如下表所示。 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 A B AB O WX(献) YZ(受) 血 型
设电路输出用F表示,则当输血者与受血者血型相容时,F为1,否则F为0 。 根据血型相容规则可直接写出输出函数F的表达式为 第四章 组合逻辑电路 设电路输出用F表示,则当输血者与受血者血型相容时,F为1,否则F为0 。 根据血型相容规则可直接写出输出函数F的表达式为 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 A B AB O WX(献) YZ(受) 血 型
用与非门组成实现给定功能的逻辑电路如下图所示。 第四章 组合逻辑电路 由化简后的表达式可知,在无反变量提供的情况下,若通过直接加非门产生反变量 ,则组成实现给定功能的电路需9个逻辑门,其中4个非门用来产生4个输入变量的反变量。 用与非门组成实现给定功能的逻辑电路如下图所示。
分析上述设计过程不难发现,对该问题的逻辑描述与血型编码是直接相关的。若调整血型编码如右表所示。 第四章 组合逻辑电路 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 AB A B O WX(献) YZ(受) 血 型 分析上述设计过程不难发现,对该问题的逻辑描述与血型编码是直接相关的。若调整血型编码如右表所示。 根据新的编码方案和血型相容规则,可写出输出函数F的表达式:
变换后的函数表达式中仅含两个反变量,假定采用或非门实现给定功能,可将函数表达式变换成 “或非-或非”表达式: 第四章 组合逻辑电路 变换后的函数表达式中仅含两个反变量,假定采用或非门实现给定功能,可将函数表达式变换成 “或非-或非”表达式: 逻辑电路图如下图所示,电路中只使用了5个逻辑门。 注: 关于无反变量提供时如何使组合电路达到最简的问题,至今尚无一种系统而有效的方法,只能由设计者根据具体问题进行灵活处理。
第四章 组合逻辑电路 4.4 组合逻辑电路的险象 前面讨论组合逻辑电路时,没有考虑信号传输中的时延问题,实际上,信号经过任何逻辑门和导线都会产生时间延迟,这就使得当电路所有输入达到稳定状态时,输出并不是立即达到稳定状态。 一般来说,延迟时间对数字系统是一个有害的因素。例如,使得系统操作速度下降,引起电路中信号的波形参数变坏,以及产生竞争险象等问题。下面对后一个问题进行讨论。 4.3.1 竞争现象与险象的产生 逻辑电路中各路径上延迟时间的长短与信号经过的门的级数有关,与具体逻辑门的时延大小有关,还与导线的长短有关,因此,输入信号经过不同路径到达输出端的时间有先有后,这种现象称为竞争现象 。
竞争:由于延迟时间的影响,使得输入信号经过不同路径到达输出端的时间有先有后,这一现象称为竞争。 第四章 组合逻辑电路 竞争:由于延迟时间的影响,使得输入信号经过不同路径到达输出端的时间有先有后,这一现象称为竞争。 通常,可以更广义地把竞争理解为多个信号到达某一点有时差的现象。 竟争的类型:竞争可以分为两种类型。 非临界竞争-------不产生错误输出的竞争称为非临界竞争。 临界竞争------ ---导致错误输出的竞争称为临界竞争。 险象:由竞争导至的错误输出信号。 注意!组合电路中的险象是一种瞬态现象,它表现为在输出端产生不应有的尖脉冲,暂时地破坏正常逻辑关系。一旦瞬态过程结束,即可恢复正常逻辑关系。
例如,如下图所示是由与非门构成的组合电路,该电路有3个输入变量,1个输出函数。 第四章 组合逻辑电路 例如,如下图所示是由与非门构成的组合电路,该电路有3个输入变量,1个输出函数。 根据逻辑电路图可写出输出函数表达式为 假设输入变量B=C=1,将B、C的值代入上述函数表达式,可得 由互补律可知,函数 的值应恒为1,即B=C=1时,无论A怎样变化,输出F的值都应保持1不变。
当考虑电路中存在的时间延迟时,该电路的实际输入、输出关系又将怎样呢? 第四章 组合逻辑电路 当考虑电路中存在的时间延迟时,该电路的实际输入、输出关系又将怎样呢? 假定每个门的延迟时间为tpd,则实际输入、输出关系可用如下所示的时间图来说明。
第四章 组合逻辑电路 当A由低电平变到高电平时,e和g的变化方向相反,并具有一个tpd 的时差,即图中①处存在一次竞争。但因与非门的外特性,e和g竞争的结果使输出保持为高电平,所以,这次竞争是一次非临界竞争。 当A由高电平变为低电平时,同样在e和g处发生竞争,且e和g在一个tpd的时间内同时为高电平,根据与非逻辑特性,使输出F产生一个负脉冲(如图中②处所示)。即本次竞争的结果产生了险象,是一次临界竞争。
组合电路中的险象可分为静态险象和动态险象。 静态险象:如果在输入变化而输出不应发生变化的情况下,输出端产生了短暂的错误输出,则称为静态险象。 第四章 组合逻辑电路 4. 3. 2 险象的分类 组合电路中的险象可分为静态险象和动态险象。 静态险象:如果在输入变化而输出不应发生变化的情况下,输出端产生了短暂的错误输出,则称为静态险象。 动态险象:如果在输入变化而输出应该发生变化的情况下,输出在变化过程中产生了短暂的错误输出,则称为动态险象。 按错误输出脉冲信号的极性可分为“0”型险象与“1”型险象。 “0”型险象:错误输出信号为负脉冲。 “1”型险象:错误输出信号为正脉冲。
静态“0”型险象、静态“1”型险象、动态“0”型险象及动态“1”型险象的波形图如下图所示。 图中,以虚线为界表示输入变化前后的输出。 第四章 组合逻辑电路 静态“0”型险象、静态“1”型险象、动态“0”型险象及动态“1”型险象的波形图如下图所示。 图中,以虚线为界表示输入变化前后的输出。
4. 3. 3 险象的判断 判断电路是否可能产生险象的方法有代数法和卡诺图法。 第四章 组合逻辑电路 4. 3. 3 险象的判断 判断电路是否可能产生险象的方法有代数法和卡诺图法。 针对前面分析的情况可知,当某个变量X同时以原变量和反变量的形式出现在函数表达式中,且在一定条件下该函数表达式可简化成 或者 的形式时,该函数表达式对应的电路在X发生变化时,可能由于竞争而产生险象。 代数法: ● 检查函数表达式中是否存在具备竞争条件的变量,即是否有某个变量X同时以原变量和反变量的形式出现在函数表达式中。 ● 若存在具备竞争条件的变量X,则消去函数式中的其他变量,看函数表达式是否会变为 或者 的形式。若会,则说明对应的逻辑电路可能产生险象。
例1 已知描述某组合电路的逻辑函数表达式为 试判断该逻辑电路是否可能产生险象。 第四章 组合逻辑电路 例1 已知描述某组合电路的逻辑函数表达式为 试判断该逻辑电路是否可能产生险象。 解 由表达式可知,变量A和C均具备竞争条件,所以,应对这两个变量分别进行分析。先考察变量A,为此将B和C的各种取值组合分别代入函数表达式中,可得到如下结果: BC=00 BC=01 BC=10 BC=11 可见,当B=C=1时,A的变化可能使电路产生险象。类似地,将A和B的各种取值组合分别代入函数表达式中,可由代入结果判断出变量C发生变化时不会产生险象。
例2 试判断函数表达式 描述的逻辑电路中是否可能产生险象。 第四章 组合逻辑电路 例2 试判断函数表达式 描述的逻辑电路中是否可能产生险象。 解 从给出的函数表达式可以看出,变量A和B均具备竞争条件。考察变量B时,将A和C的各种取值组合分别代入函数表达式中,结果如下: AC=00 AC=01 F=B AC=10 F=0 AC=11 F=1 可见,当A=C=0时,B的变化可能使电路输出产生险象。用同样的方法考察A,可发现当B=C=0 时,A的变化也可能产生险象。
当描述电路的逻辑函数为“与-或”表达式时,采用卡诺图判断险象比代数法更为直观、方便。 第四章 组合逻辑电路 当描述电路的逻辑函数为“与-或”表达式时,采用卡诺图判断险象比代数法更为直观、方便。 卡诺图法:作出函数卡诺图,并画出和函数表达式中各“与”项对应的卡诺圈。若卡诺圈之间存在“相切”关系,即两卡诺圈之间存在不被同一卡诺圈包含的相邻最小项,则该电路可能产生险象。
所得结论可用代数法进行验证,假定 B=D=1,C=0,代入函数表达式F之后可得 ,可见相应电路可能由于A的变化而产生险象。 第四章 组合逻辑电路 例 已知某逻辑电路对应的函数表达式为 试判断该电路是否可能产生险象。 解 作出给定函数的卡诺图,如下图所示。 2 1 由卡诺图可知,卡诺圈 1 和卡诺圈 2 之间存在相邻最小项m5和m13,且m5和m13不被同一卡诺圈所包含,所以这两个卡诺圈“相切”。这说明相应电路可能产生险象。 所得结论可用代数法进行验证,假定 B=D=1,C=0,代入函数表达式F之后可得 ,可见相应电路可能由于A的变化而产生险象。
增加冗余项的方法是,通过在函数表达式中“或”上冗余的“与”项或者“与”上冗余的“或”项,消除可能产生的险象。 第四章 组合逻辑电路 4. 3. 4 险象的消除 如何消除或避免电路中可能出现的险象? 有如下几种常用的方法。 一. 用增加冗余项的方法消除险象 增加冗余项的方法是,通过在函数表达式中“或”上冗余的“与”项或者“与”上冗余的“或”项,消除可能产生的险象。 冗余项的选择可以采用代数法或者卡诺图法确定。
例1 用增加冗余项的方法消除右图所示电路中可能产生的险象。 第四章 组合逻辑电路 例1 用增加冗余项的方法消除右图所示电路中可能产生的险象。 解 如图所示电路的输出函数表达式为 该电路当B=C=1时,A的变化可能使输出产生“0”型险象。 如何保证当B=C=1时,输出保持为1呢? 若在函数表达式中增加冗余项BC,则可达到这一目的。 加入冗余项BC后的函数表达式为
增加冗余项后的逻辑电路如下图所示。 该电路不再产生险象。 第四章 组合逻辑电路 增加冗余项后的逻辑电路如下图所示。 该电路不再产生险象。 冗余项的选择也可以通过在函数卡诺图上增加多余的卡诺圈来实现。 具体方法: 若卡诺图上某两个卡诺圈“相切”,则用一个多余的卡诺圈将它们之间的相邻最小项圈起来,与多余卡诺圈对应的“与”项即为要加入函数表达式中的冗余项。
例 2 已知描述某组合电路的函数表达式为 ,试用增加冗余项的方法消除该电路中可能产生的险象。 第四章 组合逻辑电路 例 2 已知描述某组合电路的函数表达式为 ,试用增加冗余项的方法消除该电路中可能产生的险象。 解 给定函数的卡诺图如右图所示。 图中,卡诺圈 1和卡诺圈2“相切”,其相邻最小项为m7和m5;卡诺圈2和卡诺圈3“相切”,其相邻最小项为m9和m13。为了消除险象,可以在卡诺图上增加两个多余卡诺圈,分别把最小项m5,m7和m9,m13圈起来,如图中虚线所示。 1 2 3 由此得到函数表达式 式中, 和 为冗余项。读者可用代数法验证,该函数表达式所对应的逻辑电路不再存在险象。
消除险象的另一种方法是在组合电路输出端连接一个惯性延时环节。通常采用RC电路作惯性延时环节,如图所示。 第四章 组合逻辑电路 二. 增加惯性延时环节 消除险象的另一种方法是在组合电路输出端连接一个惯性延时环节。通常采用RC电路作惯性延时环节,如图所示。 图中的RC电路实际上是一个低通滤波器。由于竞争引起的险象都是一些频率很高的尖脉冲信号,因此,险象在通过RC电路后能基本被滤掉,保留下来的仅仅是一些幅度极小的毛刺,它们不再对电路的可靠性产生影响
第四章 组合逻辑电路 输出信号经滤波后的效果如下图所示。 注意:采用这种方法时,必须适当选择惯性环节的时间常数(τ=RC),一般要求τ大于尖脉冲的宽度,以便能将尖脉冲“削平”;但也不能太大,否则将使正常输出信号产生不允许的畸变。
选通法不必增加任何器件,仅仅是利用选通脉冲的作用,从时间上加以控制,使输出避开险象脉冲。 第四章 组合逻辑电路 三. 选通法 选通法不必增加任何器件,仅仅是利用选通脉冲的作用,从时间上加以控制,使输出避开险象脉冲。 例如,下图所示与非门电路的输出函数表达式为 该电路当A发生变化时,可能产生“0”型险象。但通过选通脉冲对电路的输出门加以控制,令选通脉冲在电路稳定后出现,则可使输出避开险象脉冲,送出稳定输出信号。