📅  最后修改于: 2021-01-08 05:42:58             🧑  作者: Mango
在前面的章节中,我们使用布尔假说和定理简化了布尔函数。这是一个耗时的过程,我们必须在每个步骤之后重新编写简化的表达式。
为了克服这个困难,卡诺(Karnaugh)引入了一种简单的方法来简化布尔函数。该方法被称为卡诺图方法或K-图方法。这是一种图形方法,由2个n个变量单元组成。相邻单元仅在单个位位置上有所不同。
K-Map方法最适合将2个变量更改为5个变量的布尔函数。现在,让我们一一讨论关于2到5个变量的K映射。
2个变量K映射中的像元数为4,因为变量数为2。下图显示了2个变量K-Map 。
分组4个相邻的最小项的可能性只有一种。
将2个相邻的最小项分组的可能组合是{(m 0 ,m 1 ),(m 2 ,m 3 ),(m 0 ,m 2 )和(m 1 ,m 3 )}。
3个变量K映射中的像元数为8,因为变量数为3。下图显示了3个变量K-Map 。
将8个相邻的最小项分组的可能性只有一种。
将4个相邻的最小项分组的可能组合是{(m 0 ,m 1 ,m 3 ,m 2 ),(m 4 ,m 5 ,m 7 ,m 6 ),(m 0 ,m 1 ,m 4 ,m 5 ),(m 1 ,m 3 ,m 5 ,m 7 ),(m 3 ,m 2 ,m 7 ,m 6 )和(m 2 ,m 0 ,m 6 ,m 4 )}。
将2个相邻的最小项分组的可能组合是{(m 0 ,m 1 ),(m 1 ,m 3 ),(m 3 ,m 2 ),(m 2 ,m 0 ),(m 4 ,m 5 ) ,(m 5 ,m 7 ),(m 7 ,m 6 ),(m 6 ,m 4 ),(m 0 ,m 4 ),(m 1 ,m 5 ),(m 3 ,m 7 )和( m 2 ,m 6 )}。
如果x = 0,则3个变量K-map变为2个变量K-map。
由于变量数为4,因此4个变量K映射中的像元数为16。下图显示了4个变量K-Map 。
将16个相邻的最小项分组的可能性只有一种。
令R 1 ,R 2 ,R 3和R 4分别表示第一行,第二行,第三行和第四行的最小项。类似地,C 1 ,C 2 ,C 3和C 4分别表示第一列,第二列,第三列和第四列的最小值。将8个相邻的最小项分组的可能组合是{(R 1 ,R 2 ),(R 2 ,R 3 ),(R 3 ,R 4 ),(R 4 ,R 1 ),(C 1 ,C 2 ) ,(C 2 ,C 3 ),(C 3 ,C 4 ),(C 4 ,C 1 )}。
如果w = 0,则4个变量K图变成3个变量K图。
由于变量数为5,所以5个变量K-map中的像元数为32。下图显示了5个变量K-Map 。
将32个相邻的最小项分组的可能性只有一种。
分组16个相邻的最小项有两种可能性。即,将最小项从m 0到m 15以及m 16到m 31分组。
如果v = 0,则5个变量K-map变为4个变量K-map。
在以上所有K-map中,我们仅使用最小术语表示法。同样,您可以专门使用“最大”术语表示法。
如果考虑布尔函数为“ 1”的输入的组合,则在简化K-map后,我们将得到布尔函数,它是乘积形式的标准和。
类似地,如果我们考虑布尔函数为“ 0”的输入的组合,那么我们将得到布尔函数,该布尔函数在简化K映射后为求和形式的标准乘积。
请遵循以下规则来简化K-map ,以获取标准的产品总和表格。
根据布尔函数存在的变量数选择相应的K-map。
如果布尔函数以最小项之和形式给出,则将其放在K映射中的各个最小项单元格中。如果布尔函数作为乘积和形式给出,则将其放在给定乘积项对其有效的K-map的所有可能单元格中。
检查是否可以将最大数量的相邻分组。应该是二的幂。从最大2的幂开始,直到最小2的幂。最高功效等于K-map中考虑的变量数量,最低功效为零。
每个分组将给出字面量或一个乘积项。它被称为素蕴。如果至少一个单字母“ 1”没有被任何其他分组所覆盖,而仅被该分组覆盖,则该素数被称为必不可少的素数。
记下所有主要蕴涵和必要的主要蕴涵。简化的布尔函数包含所有必需的素数蕴涵,而仅包含所需的素数蕴涵。
注1-如果未为输入的某种组合定义输出,则这些输出值将用无关符号’x’表示。这意味着,我们可以将它们视为“ 0”或“ 1”。
注2-如果也存在无关紧要的术语,则将无关紧要的’x’放置在K-map的各个单元格中。仅考虑无关紧要的“ x”,它有助于对最大相邻数目进行分组。在这种情况下,请将“忽略”值视为“ 1”。
让我们使用K-map简化以下布尔函数f(W,X,Y,Z)= WX’Y’+ WY + W’YZ’ 。
给定的布尔函数是乘积形式的总和。它具有4个变量W,X,Y和Z。因此,我们需要4个变量K-map 。下图显示了带有对应于给定乘积项的4个变量K映射。
在这里,将1放置在K-map的以下单元格中。
第4行与第1和2列的交点共有的单元格对应于乘积项WX’Y’ 。
第3行和第4行与第3和4列的交点共有的单元格对应于乘积项WY 。
第1行和第2行与第4列的交点共有的单元格对应于乘积项W’YZ’ 。
无法将16个相邻的分组或8个相邻的分组。有将4个相邻的分组的三种可能性。在这三个分组之后,没有一个分组。因此,我们无需检查2个相邻的分组。下图显示了具有这三个分组的4变量K图。
在这里,我们得到了三个主要蕴涵WX’,WY和YZ’。由于以下原因,所有这些主要隐含元素都是必不可少的。
第四行分组中的两个(m 8和m 9 )未被其他分组覆盖。只有第四行分组涵盖了这两个分组。
正方形分组中的一个(m 15 )未被任何其他分组覆盖。只有方形分组覆盖了该分组。
第四列分组中的两个(m 2和m 6 )未包含在任何其他分组中。只有第四列分组涵盖了这两个分组。
因此,简化的布尔函数为
f = WX’+ WY + YZ’
请遵循以下规则来简化K-map ,以获取总和形式的标准乘积。
根据布尔函数存在的变量数选择相应的K-map。
如果布尔函数作为最大项形式的乘积给出,则将零放置在K映射中的相应最大项单元处。如果布尔函数作为求和形式的乘积给出,则将零放在给定和项有效的K-map的所有可能单元中。
检查将相邻零的最大数目分组的可能性。应该是二的幂。从最大2的幂开始,直到最小2的幂。最高功效等于K-map中考虑的变量数量,最低功效为零。
每个分组将给出字面量或一个总和项。它被称为素蕴。如果至少单个单个“ 0”没有被任何其他分组覆盖,而是仅由该分组覆盖,则素数蕴涵素被认为是必不可少的素数蕴涵素。
记下所有主要蕴涵和必要的主要蕴涵。简化的布尔函数包含所有必需的素数蕴涵,而仅包含所需的素数蕴涵。
注-如果也存在无关紧要的术语,则将无关紧要的“ x”放在K-map的各个单元格中。只考虑对分组最大相邻零数有用的“ x”。在这种情况下,请将“忽略”值视为“ 0”。
让我们使用K-map简化以下布尔函数$ f \ left(X,Y,Z \ right)= \ prod M \ left(0,1,2,4 \ right)$。
给定的布尔函数是Max条件形式的乘积。它具有3个变量X,Y和Z。因此,我们需要3个变量K-map。给定的最大项是M 0 ,M 1 ,M 2和M 4 。下图显示了3个变量K-map ,其零对应于给定的Max项。
无法将8个相邻零或4个相邻零分组。分组2个相邻零的三种可能性。在这三个分组之后,没有单个零作为未分组。下图显示了具有这三个分组的3变量K图。
在这里,我们得到了三个素数蕴含项X + Y,Y + Z和Z +X。所有这些素蕴含项都是必不可少的,因为每个分组中的一个零除其各自的分组以外,未被任何其他分组覆盖。
因此,简化的布尔函数为
f =(X + Y)。(Y + Z)。(Z + X)
这样,我们可以使用K-map方法轻松地将布尔函数简化为最多5个变量。对于超过5个变量,很难使用K-Maps简化功能。因为,在K-地图细胞的数量被通过包括一个新的变量一倍。
由于这种检查和分组,相邻的一个(最小项)或相邻的零(最大的项)将很复杂。我们将在下一章讨论表格方法,以克服K-map方法的困难。