卡诺图
卡诺图(Karnaugh map)是逻辑函数的一种图形表示,由莫里斯·卡诺(Maurice Karnaugh)发明。卡诺图是一种平面方格图,每个小方格代表逻辑函数的一个最小项,故又称为最小项方格图。方格图中相邻两个方格的两组变量取值相比,只有一个变量的取值发生变化,按照这一原则得出的方格图(全部方格构成正方形或长方形)就称为卡诺方格图,简称卡诺图。
概述
卡诺图是逻辑函数的一种图形表示。
结构特点
卡诺图中最小项的排列方案不是唯一的,变量的坐标值0表示相应变量的反变量,1表示相应变量的原变量,变量的取值变化规律按“循环码”变化。各小方格依变量顺序取坐标值,所得二进制数对应的十进制数即相应最小项的下标i。
在五变量卡诺图中,为了方便省略了符号“m”,直接标出m的下标i 。
归纳起来,卡诺图在构造上具有以下两个特点:
☆ n个变量的卡诺图由个小方格组成,每个小方格代表一个最小项;
☆ 卡诺图上处在相邻、相对、相重位置的小方格所代表的最小项为相邻最小项。
可以从图形上直观地找出相邻最小项。两个相邻最小项可以合并为一个与项并消去一个变量。
函数
卡诺图的构造特点使卡诺图具有一个重要性质:可以从图形上直观地找出相邻最小项,两个相邻最小项可以合并为一个与项并消去一个变量。
逻辑函数未用最小项表示照样可以化简。如果F采用与—或表达式,在填入卡诺图过程中就能把函数展开成最小项。
具有无关项的化简
无关项又叫任意项,是一种最小项,其值可以取0或1。利用无关项这一特点,可以使函数简化。
用卡诺图化简逻辑函数的步骤
如果表达式为最小项表达式,则可直接填入卡诺图
如果表达式不是最小项表达式,但是是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入。
合并相邻的最小项,即根据下述原则画圈
尽量画大圈,但每个圈内只能含有个相邻项。要特别注意对边相邻性和四角相邻性。
圈的个数尽量少。
卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。
在新画的包围圈中至少要含有1个末被圈过的1方格,否则该包围圈是多余的。
写出化简后的表达式。每一个圈写一个最简与项,规则是,取值始终为1的变量用原变量表示,取值出现过0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。
在进行化简时,如果用图中真值为0的项更方便,可以用他们来处理,方法和真值取1时一样,只是结果要再做一次求反。
变量填入
把函数包含的所有最小项,以“1”填入变量卡诺图对应编号的小格内。
表示
1.给定逻辑函数为标准“与-或”表达式
当逻辑函数为标准“与-或”表达式时,只需在卡诺图上找出和表达式中最小项对应的小方格填上1,其余小方格填上0,即可得到该函数的卡诺图。
2.逻辑函数为一般“与-或”表达式
当逻辑函数为一般“与-或”表达式时,可根据“与”的公共性和“或”的叠加性作出相应卡诺图。
填写该函数卡诺图时,只需在4变量卡诺图上依次找出和“与项”对应的小方格填上1,便可得到该函数的卡诺图。
当逻辑函数表达式为其他形式时,可将其变换成上述形式后再作卡诺图。
为了叙述的方便,通常将卡诺图上填1的小方格称为1方格,填0的小方格称为0方格。0方格有时用空格表示。
合并规律
卡诺图的一个重要特征是:从图形上直观、清晰地反映了最小项的相邻关系。四个小方格组成一个大方格、或组成一行(列)、或处于相邻两行(列)的两端、或处于四角时,所的表的最小项可以合并,合并后可消去两个变量。八个小方格组成一个大方格、或组成相邻的两行(列)、或处于两个边行(列)时,所代表的最小项可以合并,合并后可消去三个变量。至此,以3、4变量卡诺图为例,讨论了2,4,8个最小项的合并方法。依此类推,不难得出n个变量卡诺图中最小项的合并规律。
归纳起来,n个变量卡诺图中最小项的合并规律如下:
(1)卡诺圈中小方格的个数必须为个,m为小于或等于n的整数。
(2)卡诺圈中的个小方格有一定的排列规律,具体地说,它们含有m个不同变量,个相同变量。
(3)卡诺圈中的个小方格对应的最小项可用个变量的“与”项表示,该“与”项由这些最小项中的相同变量构成。
(4)当时,卡诺圈包围了整个卡诺图,可用1表示,即n个变量的全部最小项之和为1。
发展历史
组合电路逻辑关系的图形表示法可以追溯到英国逻辑学家约翰·维恩(John Venn)1881年发明的在集合论中处理集合间逻辑关系的文氏图(Venn diagram),赫尔姆·哈斯(Helmut Hasse)有效地利用Vogt在1895年用过的哈斯图(Hasse diagram)来表示序理论中的有限偏序集,爱德华·维奇(Edward W. Veitch)在1952年将维恩图中的圆形改画成矩形而发明了维奇图(Veitch diagram)。但这些图都不如美国贝尔实验室的电信工程师莫里斯·卡诺(Maurice Karnaugh)在1953年根据维奇图改进的卡诺图(Karnaugh map)或K图(K-map)在数字逻辑、故障诊断等许多领域中应用广泛。
化简法
由于卡诺图两个相邻最小项中,只有一个变量取值不同,而其余的取值都相同。所以,合并相邻最小项,利用公式,可以消去一个或多个变量,从而使逻辑函数得到简化。 (1)卡诺图中最小项合并的规律合并相邻最小项,可消去变量。合并两个最小项,可消去一个变量;合并四个最小项,可消去两个变量;合并八个最小项,可消去三个变量;合并2n个最小项,可消去N个变量。(2)利用卡诺图化简逻辑函数 A.基本步骤: ① 画出逻辑函数的卡诺图; ② 合并相邻最小项(圈组); ③ 从圈组写出最简与或表达式。关键是能否正确圈组。 B.正确圈组的原则 ① 必须按2、4、8、2N的规律来圈取值为1的相邻最小项; ② 每个取值为1的相邻最小项至少必须圈一次,但可以圈多次; ③ 圈的个数要最少(与项就少),并要尽可能大(消去的变量就越多)。 C.从圈组写最简与或表达式的方法: ① 将每个圈用一个与项表示圈内各最小项中互补的因子消去,相同的因子保留,相同取值为1用原变量,相同取值为0用反变量; ② 将各与项相或,便得到最简与或表达式。圈组技巧(防止多圈组的方法): ① 先圈孤立的1; ② 再圈只有一种圈法的1; ③ 最后圈大圈; ④检查:每个圈中至少有一个1未被其它圈圈过。
变量
表示各最小项的(n-变量数)个小格,排列呈矩形。
小格按“循环码”排列,保证最小项间“几何相邻”与“逻辑相邻性”的统一。(几何相邻有“内相邻” “外相邻”和“中心对称”)
化简函数
1.几个定义
蕴涵项:在函数的“与-或”表达式中,每个“与”项被称为该函数的蕴涵项(Implicant)。
显然,在函数卡诺图中,任何一个1方格所对应的最小项或者卡诺圈中的2m个1方格所对应的“与”项都是函数的蕴涵项。
质蕴涵项:若函数的一个蕴涵项不是该函数中其他蕴涵项的子集,则此蕴涵项称为质蕴涵项(Prime Implicant),简称为质项。
显然,在函数卡诺图中,按照最小项合并规律,如果某个卡诺圈不可能被其他更大的卡诺圈包含,那么,该卡诺圈所对应的“与”项为质蕴涵项。
必要质蕴涵项:若函数的一个质蕴涵项包含有不被函数的其他任何质蕴涵项所包含的最小项,则此质蕴涵项被称为必要质蕴涵项(Essential Prime Implicant),简称为必要质项。
在函数卡诺图中,若某个卡诺圈包含了不可能被任何其他卡诺圈包含的1方格,那么,该卡诺圈所对应的“与”项为必要质蕴涵项。
2.求函数最简“与-或”表达式
(1)一般步骤:第一步:作出函数的卡诺图。
第二步:在卡诺图上圈出函数的全部质蕴涵项。按照卡诺图上最小项的合并规律,对函数F卡诺图中的1方格画卡诺圈。为了圈出全部质蕴涵项,画卡诺圈时在满足合并规律的前题下应尽可能大,若卡诺圈不可能被更大的卡诺圈包围,则对应的“与”项为质蕴涵项。
第三步:从全部质蕴涵项中找出所有必要质蕴涵项。在卡诺图上只被一个卡诺圈包围的最小项被称为必要最小项,包含必要最小项的质蕴涵项即必要质蕴涵项。为了保证所得结果无一遗漏地复盖函数的所有最小项,函数表达式中必须包含所有必要质蕴涵项。
第四步:求出函数的最简质蕴涵项集。若函数的所有必要质蕴涵项尚不能复盖卡诺图上的所有1方格,则从剩余质蕴涵项中找出最简的所需质蕴涵项,使它和必要质蕴涵项一起构成函数的最小复盖。
归纳起来,卡诺图化简的原则是:
☆ 在复盖函数中的所有最小项的前提下,卡诺圈的个数达到最少。
☆ 在满足合并规律的前提下卡诺圈应尽可能大。
☆ 根据合并的需要,每个最小项可以被多个卡诺圈包围。
3.求函数的最简“或-与”表达式
当需要求一个函数的最简“或-与”表达式时,可采用“两次取反法”。
具体如下:
☆ 先求出函数F的反函数F的最简“与-或”表达(合并卡诺图上的0方格);
☆ 然后对F的最简“与-或”表达式取反,从而得到函数F的最简“或-与”表达式。
卡诺图化简逻辑函数具有方便、直观、容易掌握等优点。但依然带有试凑性。尤其当变量个数大于6时,画图以及对图形的识别都变得相当复杂。