关于卡诺图化简的个人方法

发布时间 2023-04-05 15:22:59作者: sunshineoier

卡诺图

卡诺图(Karnaugh map)是真值表的变形,它可以将有n个变量的逻辑函数的2n个最小项组织在给定的长方形表格中,同时为相邻最小项(相邻与项)运用邻接律化简提供了直观的图形工具

在数字电路中,对逻辑值的化简常常要用到卡诺图,而卡诺图的化简也常常困扰初学者

官方的化简办法

选自维基百科(卡诺图):

  • 如果表达式为最小项表达式,则可直接填入卡诺图
  • 如表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入。
  • 合并相邻的最小项,即根据下述原则画圈
    • 尽量画大圈,但每个圈内只能含有2n个相邻项。要特别注意对边相邻性和四角相邻性。
    • 圈的个数尽量少。
    • 卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。
    • 在新画的包围圈中至少要含有1个未被圈过的1方格,否则该包围圈是多余的。
  • 写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。

在进行化简时,如果用图中真值为0的项更方便,可以用他们来处理,方法和真值取1时一样,只是结果要再做一次求反。

个人觉得比较复杂,而且自己画圈常常出错

小技巧(正文开始)

我们可以用和画圈类似的办法去完成化简的任务

CD\AB 00 01 11 10
00 1 1 0 1
01 0 1 0 1
11 1 1 1 1
10 0 0 1 1

对于这样一个卡诺图,我们的化简可以这样做:

  1. 首先选中一列或一行,比如说我们选中第四列;
  2. 然后选中第一步选中列或行中真值为1的行或列,第四列全部为1,所以我们都选上
  3. 写出该部分的逻辑表达式
  4. 重复选择,直到所有的真值都被选择

该例子:

  1. 选择第四列
  2. 选择第三行
  3. 选择第二列和第123行
  4. 选择第一列和第一行
  5. 选择第三列和第四行