📅  最后修改于: 2020-12-23 08:47:16             🧑  作者: Mango
卡诺图是一个平面区域,分为2 n个相等的像元,每个像元代表一个点用于n个变量的函数。每个变量x用于以不同方式将面积分成两个相等的一半,即一个用于x,另一个用于x'。对应于该函数的值为1的参数的单元格包含1。
例1:当变量数量n = 1时,卡诺图如图所示:
2.当变量数量n = 2时,卡诺图如图所示:
3.当变量数量n = 3时,卡诺图如图所示:
布尔函数可以用k-map简化。它基于在相邻单元格中组合术语的原理。如果两个单元格只有一个变量不同,则称它们相邻。在相邻单元格中,变量之一相同,而另一个变量在一个单元格中以非互补形式出现,在另一个单元格中以互补形式出现。
可以使用以下算法来获得最小化的表达式:
例1:使用k-map最小化以下布尔表达式:
f(A,B)= A'B + BA
解决方案:首先绘制2变量k图,并在对应的单元格中插入1,如图所示:
所需的最小化布尔表达式为f = B。
例2:使用k-map最小化以下布尔表达式:
AB + A'B + BA'
解决方案:绘制两个变量的k-map,并在对应的单元格中插入1,如图所示:
所需的最小化布尔表达式为f = A + B。
示例3:使用k-map最小化以下布尔表达式:
f(A,B,C)= AB'C + A'BC + AB + A'B'C
解决方案:绘制3变量k图,并将1插入相应的单元格中,如图所示:
所需的最小化布尔表达式为f = AB + C'
最小化此类函数的一种方法是将其转换为标准形式,例如SOP或POS,然后制作k图并获得最小化函数。
另一种方法是直接使用以下算法准备k-map
示例:最小化四变量逻辑函数
f(A,B,C,D)= AB C'D + A'BCD + A'B'C'+ A'B'D'+ AC'+ AB'C + B'
解决方案:通过以下方式获得k图
(a)在对应于最小项AB C'D的A = 1,B = 1,C = 0,D = 1的单元格中输入1
(b)在对应于最小项A'BCD的A = 0,B = 1,C = 1,D = 1的单元格中输入1
(c)在A = 0,B = 0,C = 0的两个单元格中输入1,对应于术语A'B'C'
(d)在两个单元格中输入1,其中A = 0,B = 0,D = 0对应于术语A'B'D'
(e)在两个单元格中输入1,其中A = 1,B = 0,C = 1与项AB'C相对应
(f)在四个单元格中输入1,其中A = 1,C = 0对应于术语AC'
(g)在八个单元格中输入1,其中B = 0对应于术语B'