摘要:卡诺图通常是在化简逻辑函数时引入的,并且大多只介绍如何使用卡诺图化简逻辑函数,其实卡诺图在数字电子技术中还有很多不同的用途,灵活运用卡诺图,可以达到事半功倍的效果。
关键词:数字电子技术;卡诺图;逻辑函数
卡诺图是1953年美国贝尔实验室的电信工程师Maurice Karnaugh在维奇图的基础上提出的一种用于化简逻辑函数的方法[1]。在学习了卡诺图的化简之后,后续章节或多或少都应用到了卡诺图,但这些应用相对较为分散,缺少概括总结。本文将介绍卡诺图在数字电子技术中的一些应用,使学生对卡诺图的使用融会贯通,达到事半功倍的效果。
一、卡诺图在逻辑函数运算中的应用
用卡诺图可以直观快速求出逻辑函数的与、或、非、异或、同或等逻辑运算的结果[2]。
当两个函数进行与运算时,只要画出两个函数的卡诺图,再将两个函数卡诺图中对应的方格相与(同为1填1,其他填0),便得到这两个函数相与的卡诺图
当两个函数进行或运算时,只要画出两个函数的卡诺图,再将两个函数卡诺图中对应的方格相或(有1填1,全0填0),便得到这两个函数相与的卡诺图。
当对一个函数进行非运算时,只要画出该函数的卡诺图,再将卡诺图中的1变为0,0变为1(0填1,1填0),便得到该函数的反函数的卡诺图。
当两个函数进行异或运算时, 只要画出两个函数的卡诺图, 再将两个函数卡诺图中对应的方格相异或(相异填1,相同填0),便得到这两个函数异或的卡诺图。
当两个函数进行同或运算时, 只要画出两个函数的卡诺图, 再将两个函数卡诺图中对应的方格相同或(相同填1,相异填0),便得到这两个函数同或的卡诺图。
综上,利用卡诺图不仅可以对函数进行逻辑运算,而且过程简单、明了。以上得到的仅仅是逻辑运算后的卡诺图,若要得到逻辑运算后的结果,需要进行必要的化简。
二、卡诺图在记忆格雷码中的应用
格雷码是一种常用的无权可靠性代码,由于首、尾两个码组也具有单位距离码的特性,又称为循环码[1]。由于格雷码的独特性造成其难于记忆。经观察利用卡诺图可以准确快速读写格雷码,并且帮助轻松记忆格雷码[3]。
三、卡诺图在逻辑表达式形式变换中的应用
通常电路的实现希望用到较少种类的门,一般利用与非、或非、与或非任意一种便可设计出任何逻辑电路。利用卡诺图可以简单方便地实现逻辑函数形式之间转换。
1.与或逻辑形式
卡诺图化简逻辑函数已讨论:对卡诺图上的 1画圈合并,将每个圈对应的与项相或得到最简与或式。
2.与非逻辑形式
利用卡诺图化简成最简与或式,再将与或式两次求反,展开一次。
3.或与逻辑形式
对该卡诺图上的 0 画圈合并,将每个圈对应的与项相或得到F’的最简与或式,再对F’求反,可得到F的最简或与式。
4.或非逻辑形式
利用卡诺图化简成最简或与式,再将或与式两次求反,展开一次。
5.与或非逻辑形式
利用卡诺图化简成最简与或式,再将与或式两次求反,不用展开;对该卡诺图上的 0 画圈合并,将每个圈对应的与项相或得到F’的最简与或式,再对F’求反,不用展开。
四、卡诺图在组合逻辑电路分析与设计中的应用
组合逻辑电路的分析,首先由给定的逻辑图逐级写出逻辑表达式,然后根据表达式列写真值表,最后根据真值表概括逻辑功能。但有时真值表不容易看出功能就需要先对逻辑表达式进行化简,卡诺图在组合逻辑电路分析中的应用主要是化简逻辑函数。
组合逻辑电路的设计。首先分析功能要求,确定输入输出并把输入输出进行逻辑定义,列写真值表,然后利用卡诺图进行化简,写出逻辑表达式,最后将逻辑表达式转化成所需形式,画出电路结构。在组合逻辑电路设计的过程中,逻辑函数的化简以及形式的转换均利用到了卡诺图。
另外,在利用集成器件设计组合逻辑电路时也有卡诺图的应用。
例如:利用用四选一数据选择器设计组合逻辑函数F=∑(0,1, 5, 6, 7, 9, 10, 14, 15)
方法:首先选定地址变量,然后确定地址变量控制范围,即输入数据区,最后确定数据输入端的连接。若选AB为地址变量A1A0,则CD将反映在数据输入端。
五、卡诺图在检查和消除竞争冒险现象中的应用
为了保证组合逻辑电路正常工作,在设计电路时必须注意判断和消除竞争冒险现象[1]。判断和消除竞争冒险的方法很多,最简便和最直观的方法就是使用卡诺图。
例如,判断函数
描述的逻辑电路是否可能产生竞争冒险现象,如果有,消除该竞争冒险现象。
首先画出该电路逻辑函数的卡诺图,然后在函数卡诺图上画出与表达式中所有乘积项相对应的卡诺圈,如果图中有相切的卡诺圈,则该逻辑电路存在着竞争冒险。要想消除该现象,应在卡诺图上加上卡诺圈,消除相切部分的影响如图所示。
六、卡诺图在触发器的转换中的应用
触发器种类繁多,包括RS触发器、D触发器、T触发器、JK触发器等等,但是实际生产的集成触发器只有D触发器和JK触发器,其他触发器则需要通过D触发器和JK触发器转换而得到。可以通过比较触发器逻辑功能卡诺图来实现触发器间的转换[2]。
首先比较触发器卡诺图中的数值,找出相同列,再比较相同列的变量取值,得到转换电路逻辑表达式。
比较JK触发器和T触发器的卡诺图,可以得出:JK=00 对应 T=0,JK=11对应 T=1,得转换表达式J=K=T。
七、卡诺图在时序逻辑电路设计中的应用
在时序逻辑电路设计过程中,充分利用卡诺图进行特定的化简可方便求出输出方程和状态方程,进而得到激励方程,进行电路设计[4]。
例如:用JK触发器设计一个 8421BCD码加法计数器。
其状态真值表如表所示,由状态真值表做出每一级触发器的卡诺图,由于需要用JK触发器设计这里的化简必须注意保证保留状态方程的现态和次态。
结语
卡诺图简单直观、使用方便,而且化简有步骤和方法可循,在数字逻辑电路中不仅仅限制于逻辑函数的化简,还可以广泛应用于记忆格雷码、逻辑电路的设计、竞争冒险的判断与消除、触发器的转换以及逻辑运算等等贯穿数字电子技术的方方面面,灵活应用卡诺图,可以达到事半功倍的学习效果。
参考文献
[1] 阎石 数字电路技术基础 (第四版 ) [M] . 高等教育出版社, 2003 .
[2] 李霞.卡诺图在数字逻辑电路教学中的应用 [J].大众科技. 2013 (08)
[3] 吴佳,余知敏.浅谈卡诺图在数字电路学习中的应用 [J].计算机光盘软件与应用. 2012 (09)
[4] 何金保,骆再飞,诸葛霞.卡诺图在时序逻辑电路设计中的应用 [J].宁波工程学院学报. 2016 (02)