摘要:数字电子技术中的逻辑问题分完全描述与非完全描述两种。在非完全描述逻辑函数中出现了两类特殊的最小项——任意项和约束项,它们又统称为无关项。任意项、约束项是两个不同的概念,在设计逻辑电路时必须认真区别,但就它们对逻辑函数的影响而言,又可以不加区别。本文通过实例来加以说明。
关键词:逻辑函数;任意项;约束项;无关项
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)37-0093-02
《数字电子技术》课程是教育部对自动化、电子信息工程、通信工程及电气工程等专业要求的重要专业(技术)基础必修课程,是学生学习电子设计自动化(EDA)、传感器、电子测量、单片机等后续课程理论和实践的基础。本课程涉及到一个重要的概念即逻辑函数,逻辑函数中的任意项、约束项与无关项以及约束条件逻辑表达式,在用卡诺图化简逻辑函数时,都是很重要的概念,但同时又是比较难以理解的概念。学生常常纠结在课本的定义上,仅仅按照课本的定义按部就班,知其然不知其所以然。本文以广泛应用的普通高校教育“十五”国家级规划教材及高等学校规划教材为基础,结合实例,进一步明确这些概念的本质意义。
一、实例解析
教材定义,“在输人变量的某些取值下函数值是1还是0皆可,并不影响电路的逻辑功能。在这些变量取值下,其值等于1的那些最小项称为任意项。”“我们将约束项和任意项统称为逻辑函数式中的无关项。”“因为约束项根本不会出现,或不允许出现,所以在化简时,可以充分利用约束项取值的任意性,有时将约束项认为是1,有时又可将其认为是0,完全视需要而定,取1或取0都不会影响其函数值。”学生纠结:①函数相应的约束条件逻辑表达式为什么可以用它们对应的最小项的值等于0来表示?②比如一个函数包括最小项ABC,自然在卡诺图中m7处写1。如果ABC是约束项,则约束条件中ABC=0,但在卡诺图化简时可以认为它是1,也在卡诺图中m7处仍写1。这两种情况有什么区别?难道“函数包括最小项ABC”和“ABC是约束项”没有区别?③如果ABC是约束项,即“ABC=111根本不会出现或有限制”,这里的“根本不会出现或有限制”指的是这一项在客观上就不可能出现或被限制呢?还是客观上可以出现但我们不让它出现呢?
1.约束条件逻辑表达式。为了方便说明问题,现假设一个逻辑函数有两个约束项,分别为ABC和ABC,则该函数相应的约束条件逻辑表达式则为ABC+ABC=0。这里先取ABC约束项为例加以说明。三变量ABC可能取的值为以下8种:000、001、010、011、100、101、110、111。ABC是一个最小项(与项),上面8种取值中,唯有取值111能使ABC=1(即最小项的性质:任意一个最小项,有且仅有一组变量取值使其值为1),其他7中情况的取值(000、001、010、011、100、101、110)带入ABC,必然使ABC=0。现在ABC作为一项约束项了,被限制为ABC=0了,则意味着唯一能使ABC这项最小项等于1的那组变量的取值111不允许出现了(被约束了),则ABC最小项必然恒等于零,即ABC这个最小项,A、B、C这三个变量在所有可能的8种组合的取值下恒等于0。ABC分析同上。这就是为什么函数相应的约束条件逻辑表达式可以用它们对应的最小项的值恒等于0来表示的原因。因为这些约束项均为0或它们为1的可能性就不会出现,所以处理这些约束项时,即“有时将约束项认为是1,有时又可将其认为是0,完全视需要而定,取1或取0都不会影响其函数值”。但是,“函数包括最小项ABC”和“ABC是约束项”是有本质区别的。这里之所以把约束项有时认为是1,有时又可认为是0,是因为这种认为并不影响逻辑函数结果的正确性,所以这里不是概念上的等同,而是作为一种化简函数的手段而已。
2.约束项实例。上面以ABC约束项为例,说明了“ABC=111不会出现”,但这里的不会出现在客观上是可能出现的,只是为了使逻辑函数的结果不受影响,人为“不让它出现或加以限制”。下面以设计一个七段显示译码器为例说明这个问题。其真值表如表1。由表1可以看出,该译码器是一个4个输入变量和7个输出函数的组合逻辑电路。显然输入变量取值为1010~1111是不允许出现的。但这里的不允许出现在客观上是可能出现的,字形会出现伪码。为了使逻辑函数所对应的字形不出现伪码,就必须人为使输入变量取值为1010~1111对应的最小项DCBA、DCBA、DCBA、DCBA、DCBA和DCBA为约束项,即“不让它们出现或加以限制”。既然约束项是“不让它们出现或加以限制”了,所以约束项的值恒等于0。正因为它们的值恒等于0了,所以这些约束项加或不加到逻辑函数式中去,都不会影响该函数所表示的逻辑功能。在保证约束项“不让它们出现或加以限制”的前提下,可以将约束项当作逻辑函数的任意项,参与函数的化简。
3.任意项实例。同上,这里仍然以设计一个拒绝伪码的七段显示译码器为例来说明任意项的问题。设计的电路图如图1。在a~g的输出端增加了一级缓冲器,同时还在缓冲器的输入端增加一个控制信号Y。所谓拒绝伪码,是指在输入为1010~1111时输出无任何字形显示,即a~g输出全都等于0,其真值表如表2。表2中的“×”仍然表示无关项。
从表2可以看出,当D、C、B、A取值为1010~1111时,a~g每个输出函数的取值是1或0都可以,输出a~g都为0(无任何显示)。因此,在D、C、B、A取值為1010~1111时对应的六个最小项DCBA、DCBA、DCBA、DCBA、DCBA和DCBA在约束项实例的情况下是函数a~g的约束项,在本例中就由约束项变为函数a~g的任意项了,即在化简a~g的逻辑函数式时,既可以在式中写入这些任意项也可以不写入,所以任意项也是逻辑函数式中的无关项。
二、约束项与任意项的关系
约束项和任意项都是逻辑函数式中的无关项,但二者有区别。约束项需要人为强行“不让它出现或加以限制”,在这个条件下,用卡诺图化简逻辑函数时,可以在卡诺图对应的方格中写入“1”或“0”。从这里也可以看出,含有约束项的逻辑函数在用卡诺图进行化简时,约束项对应的方格中的“1”只是一个“表象”,它实际上是不存在的,即实际上是“0”。正因为如此,才将它称为无关项,即有时将约束项认为是1,有时又可将其认为是0,完全视需要而定,取1或取0都不会影响其函数值,不会影响电路设计的结果。但是,如果客观上约束项出现了(干扰……),它的取值不等于0了,则电路的输出就会出现错误(如表1中的伪码)。任意项则不然,任意项无需人为对这些变量取值进行干预,这些变量取值就可以出现(如表2中的D、C、B、A可以取值1010~1111),对应的函数值是1还是0皆可,并不影响电路的逻辑功能(即不会出现伪码,无任何显示)。从上面的例子还可以看出,约束项通过电路的设计是可以转化为任意项的。使输入变量的取值在变化的过程中不受限制,提高了电路的可靠性。
参考文献:
[1]阎石.数字电子技术基础[M].北京:高等教育出版社,2006:51-52.
[2]江晓安.计算机电子电路技——数字电子部分[M].西安电子科技大学出版社,1999:35-36.
[3]王选民.数字电路中任意项、约束项、无关项的探讨[J].电工教学,1995,(02):17-19.
通讯作者:景亚霓(1961-),女,陕西西安人,硕士研究生,江南大学,讲师,研究方向:计算机模拟、微电子技术等。