1953年,电信工程师莫里斯·卡诺(Maurice Karnaugh)在贝尔实验室设计基于数字逻辑的电话交换电路时,开发了卡诺图。
现在我们已经在维恩图的帮助下开发了卡诺图,让我们使用它。卡诺图的地图减少与布尔代数相比,逻辑运算更快更容易。所谓减少,我们指的是简化,减少门和输入的数量。
我们喜欢把逻辑简化为a最低的成本通过省去元件来节省成本。我们把最低成本定义为每个门的输入最少的门的数目最少。
如果有选择,大多数学生一旦学习了这个工具,就用卡诺图而不是布尔代数来进行逻辑简化。
我们在上面展示了五个单独的项目,它们只是表示同一件事的不同方式:任意的2输入数字逻辑函数。首先是中继梯逻辑,然后是逻辑门、真值表、卡诺图和布尔方程。
关键是它们都是等价的。两个输入一个和B可以取两者的值吗0或1,高或低,开或闭,真或假,视情况而定。有两个2=产生一个输出的4个输入组合。这适用于所有五个示例。
这四个输出可以在门图上的逻辑探头上的继电器阶梯逻辑灯上观察到。这些输出可以记录在真值表或卡诺图中。把卡诺图看作是一个重新排列的真值表。
布尔方程的输出可由布尔代数定律计算,并转化为真值表或卡诺图。
我们应该使用五个等价的逻辑描述中的哪一个?对完成任务最有用的一个。
真值表的输出与卡诺映射项一一对应。从真值表的顶部开始,A=0, B=0的输入产生一个输出α。
注意,同样的输出α在K-map的左上角A=0行和B=0列相交的A=0, B=0单元格地址的Karnaugh映射中也可以找到。输入AB=01, 10, 11的另一个真值表输出β, χ, δ在相应的K-map位置都能找到。
下面,我们借助之前的矩形维恩图(如布尔区域)展示了2变量K-map中相邻的2单元格区域。
细胞α和χ在k图中相邻,在最左k图中为下面的椭圆。根据前面的真值表,情况并非如此。在它们之间有另一个真值表条目(β)。这就把我们带到了将K-map组织成一个正方形数组的整个要点上,带有任何布尔变量的单元格都需要彼此靠近,以便呈现一个突现在我们眼前的模式。
对于细胞α和χ它们具有布尔变量B”共同之处。我们知道这个是因为B = 0(一样B”)上柱为α和χ。将其与k图上的方维恩图进行比较。
类似的推理表明β和δ具有布尔性B(B = 1)共同之处。那么α和β具有布尔性A'(= 0)共同之处。最后,χ和δ具有布尔值一个(= 1)共同之处。将最后两个地图与中间的方形维恩图进行比较。
总之,我们正在寻找细胞之间布尔变量的共性。卡诺图是有组织的,所以我们可以看到共性。我们来举几个例子。
例子:
将真值表的内容转移到上面的卡诺图中。
解决方案:
真值表包含两个1K地图上肯定有这两个。定位第一1在上面的真值表的第二行。
重复这个过程1在真值表的最后一行。
例子:
对于上述问题中的卡诺图,写出布尔表达式。解决方案如下。
解决方案:
寻找邻近的细胞,也就是在细胞的上方或侧面。对角单元格不相邻。相邻的单元格共有一个或多个布尔变量。
通过比较右边的维恩图,这可能更容易看到,特别是B列。
例子:
写出下面的卡诺图的布尔表达式。
解决方案:(上图)
例子:
对于下面的真值表,将输出传递给Karnaugh,然后为结果编写布尔表达式。
解决方案:
转移1从真值表中的位置到K-map中的相应位置。
中间K-map的解是最简单或成本最低的解。一个不太理想的解决方案是极右翼。将两者分组后1s,我们犯了形成一组单细胞的错误。这样做不可取的原因是:
捡起这单的方法1是两个人组成一组1在它的右边,就像中间k图的下一行所示,即使这样1已包含在列组中(B)。我们被允许重复使用细胞,以便形成更大的组。事实上,它是可取的,因为它会导致一个更简单的结果。
我们需要指出,上述两种解决方案(输出或错误输出)在逻辑上都是正确的。两个电路产生相同的输出。这是一个前电路是成本最低的解决方案的问题。
例子:
为下面的布尔表达式填写卡诺图,然后为结果编写布尔表达式。
解决方案:(上图)
布尔表达式有三个乘积项。将会有1为每个产品项输入。不过,总的来说1相对于K-map的大小,每个乘积项的s随着乘积项中变量的数量而变化。
乘积项是单元格的地址,其中1输入。第一个乘积项,一个可能,对应于01单元格。一个1在此单元格中输入。另外两个p术语总共输入了三个1
接下来,对原真值表问题的简化结果进行分组和提取。
例子:
简化下面的逻辑图。
解决方案:(下图)
例子:简化下面的逻辑图。
解决方案:
对于上面的图,逻辑上的简化是不可能的。这有时发生。无论是卡诺映射还是布尔代数方法都不能进一步简化这种逻辑。
我们在上面展示了异或图式符号;然而,这并不是一个合乎逻辑的简化。它只是让示意图看起来更好看。
由于异或逻辑不可能简化,而且被广泛使用,因此制造商将其作为基本集成电路(7486)提供。
相关工作表: