雷竞技注册

卡诺图、真值表和布尔表达式

第八章-卡诺映射

PDF版本

谁发明了卡诺地图?

1953年,电信工程师莫里斯·卡诺(Maurice Karnaugh)在贝尔实验室设计基于数字逻辑的电话交换电路时,开发了卡诺图。

卡诺图的使用

现在我们已经在维恩图的帮助下开发了卡诺图,让我们使用它。卡诺图的地图减少与布尔代数相比,逻辑运算更快更容易。所谓减少,我们指的是简化,减少门和输入的数量。

我们喜欢把逻辑简化为a最低的成本通过省去元件来节省成本。我们把最低成本定义为每个门的输入最少的门的数目最少。

如果有选择,大多数学生一旦学习了这个工具,就用卡诺图而不是布尔代数来进行逻辑简化。

我们在上面展示了五个单独的项目,它们只是表示同一件事的不同方式:任意的2输入数字逻辑函数。首先是中继梯逻辑,然后是逻辑门、真值表、卡诺图和布尔方程。

关键是它们都是等价的。两个输入一个B可以取两者的值吗01,高或低,开或闭,真或假,视情况而定。有两个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在上面的真值表的第二行。

  • 注意真值表AB地址
  • 定位K-map中具有相同地址的单元格
  • 放置一个1在细胞

重复这个过程1在真值表的最后一行。

例子:

对于上述问题中的卡诺图,写出布尔表达式。解决方案如下。

解决方案:

寻找邻近的细胞,也就是在细胞的上方或侧面。对角单元格不相邻。相邻的单元格共有一个或多个布尔变量。

  • 把两个人分组(圈)1s在列中
  • 找到与组相同的top和/或side变量,将其写入布尔结果。它是B在我们的例子中。
  • 忽略与单元格组不相同的变量。在我们的例子中,A是变量,同时是1和0,忽略布尔值A。
  • 忽略与包含1的单元格不相关的任何变量。B”下面没有人。忽略B”
  • 结果出= B

通过比较右边的维恩图,这可能更容易看到,特别是B列。

例子:

写出下面的卡诺图的布尔表达式。

解决方案:(上图)

  • 把两个人分组(圈)1的行
  • 找出组内相同的变量,=一个”

例子:

对于下面的真值表,将输出传递给Karnaugh,然后为结果编写布尔表达式。

解决方案:

转移1从真值表中的位置到K-map中的相应位置。

  • 把下面栏里的两个1分组(圈出)B = 1
  • 把右边行中的两个1分组(圈)一个= 1
  • 写出第一组=的乘积项B
  • 写出第二组=的乘积项一个
  • 写出上述两项的乘积的和输出= A + B

中间K-map的解是最简单或成本最低的解。一个不太理想的解决方案是极右翼。将两者分组后1s,我们犯了形成一组单细胞的错误。这样做不可取的原因是:

  • 单个细胞有一个乘积项AB”
  • 对应的解是输出= AB ' + B
  • 这不是最简单的解决方案

捡起这单的方法1是两个人组成一组1在它的右边,就像中间k图的下一行所示,即使这样1已包含在列组中(B)。我们被允许重复使用细胞,以便形成更大的组。事实上,它是可取的,因为它会导致一个更简单的结果。

我们需要指出,上述两种解决方案(输出或错误输出)在逻辑上都是正确的。两个电路产生相同的输出。这是一个前电路是成本最低的解决方案的问题。

例子:

为下面的布尔表达式填写卡诺图,然后为结果编写布尔表达式。

解决方案:(上图)

布尔表达式有三个乘积项。将会有1为每个产品项输入。不过,总的来说1相对于K-map的大小,每个乘积项的s随着乘积项中变量的数量而变化。

乘积项是单元格的地址,其中1输入。第一个乘积项,一个可能,对应于01单元格。一个1在此单元格中输入。另外两个p术语总共输入了三个1

接下来,对原真值表问题的简化结果进行分组和提取。

例子:

简化下面的逻辑图。

解决方案:(下图)

  • 为原始逻辑图编写布尔表达式,如下所示
  • 将乘积项转移到卡诺图
  • 像前面的例子一样形成单元格组
  • 像前面的例子一样编写组的布尔表达式
  • 绘制简化逻辑图

例子:简化下面的逻辑图。

解决方案:

  • 为上面所示的原始逻辑图编写布尔表达式
  • 将乘积项转移到卡诺图。
  • 不可能形成群体。
  • 不可能简化;让它保持原样吧。

对于上面的图,逻辑上的简化是不可能的。这有时发生。无论是卡诺映射还是布尔代数方法都不能进一步简化这种逻辑。

我们在上面展示了异或图式符号;然而,这并不是一个合乎逻辑的简化。它只是让示意图看起来更好看。

由于异或逻辑不可能简化,而且被广泛使用,因此制造商将其作为基本集成电路(7486)提供。

相关工作表: