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