K-Map(卡诺图)

Karnaugh地图或K-MAP由1953年的贝尔实验室的电信工程师Maurice Karnaugh推出,作为“爱德华veitch的虚拟图”的精致技术,它是一种简化或减少布尔表达式复杂性的方法。

Karnaugh地图方法或K-MAP方法是布尔方程的图形表示,并使用布尔操作来降低解决它们的复杂性。这些可以被视为“真实表”的特殊或扩展版本。

Karnaugh地图可以解释为“以网格中的包含2K单元格式的数组,其中k是要减少或优化的布尔表达式中的变量数。根据真实表方法评估,K-MAP中的每个单元将表示真实表的单行,并且小区由正方形表示。

K-MAP中的单元以这样的方式排列,即存在在单个变量中不同的粘合,被分配以相邻的行。K-MAP方法支持消除潜在的竞争条件,并允许快速识别。

利用卡诺映射技术,我们可以减少包含任意数量变量的布尔表达式,如2变量布尔表达式、3变量布尔表达式、4变量布尔表达式甚至7变量布尔表达式,这些布尔表达式使用正则布尔定理和定律求解是很复杂的。

用Karnaugh地图和K-MAP的优势最小化

  • K-MAPS用于将布尔方程的真实表转换为最小化的SOP形式。
  • 简单易学的基本规则为简化。
  • K-MAP方法比布尔代数的其他简化技术更快,更高效。
  • K-MAP中的所有行都是通过使用方形形状的细胞来表示,其中每个平方都表示为minterm。
  • 很容易将真相表转换为k-map和k映射到产品形式方程的总和。

将布尔方程转换为K-MAP,有2个表格:

  1. 未经优化的形式
  2. 优化的形式
  • 未经优化的形式:它涉及在SOP方程中将1的数量转换为相等的产品项(MIN术语)。
  • 优化的形式:它涉及减少SOP方程中的分钟数。

K-map变量分组

  • 我们在将k映射中分组变量时有一些规则要遵循。他们是
  • 包含'1'的正方形应在简化,至少一次。
  • 包含'1'的正方形可以被视为多次,因为可以使用分组。
  • 组不应包括任何零(0)。
  • 一个组应该是尽可能大的。
  • 组可以是水平或垂直的。不允许以对角线方式分组变量。

K-map变量分组

分组K-MAP变量2

  • 如果含有'1'的正方形没有可能放入组中,那么它应该添加到最终表达式中。
  • 组可以重叠。
  • 组中的正方数必须等于2的功率,例如1,2,4,8等。
  • 团体可以包裹。当K-MAP被认为是球形或折叠时,拐角处的正方形(在塔或行的末端)应该被认为是它们相邻的正方形。
  • K-MAP变量的分组可以在许多方面进行,因此获得的简化方程不需要始终是唯一的。
  • 布尔方程必须处于规范形式,以绘制k映射。

分组K-MAP变量3

分组K-MAP变量4

2变量K-maps

2变量K-MAP中有4个细胞(22)。它看起来像(见下面的图片)

2变量K-maps

具有2个变量(a和b)的可能最小术语是a.b,a.b',a'.b和a'.b'。变量(a,b)和(a',b)的缀合在底行的小区中的顶行和(a,b')和(a',b')的单元中表示。下表显示了K-MAP上的2变量布尔函数的所有可能输出的位置。

2变量k映射

2变量K-MAP图的一般表示如下所示。

2变量k映射

当我们使用Karnaugh Map简化Boolean方程时,我们表示包含连接术语的K-Map的每个单元格,其中包含一个尺寸为2或4的可能尺寸的相邻小区。如果是较大的k图,我们可以将变量置于较大的尺寸,如8或16。

变量组应该是矩形的,这意味着组必须通过垂直或水平组合相邻的单元格形成。不允许对角线形或l形组。下面的例子演示了一个2变量布尔方程的K-map简化。

例子

使用k-映射简化给定的2变量布尔方程式。

f = x y'+ x'y + x'y'

首先,让我们构建给定方程的真相表,

例子

我们在方程的输出项上代入1。

2 var前

In this K-map, we can create 2 groups by following the rules for grouping, one is by combining (X’, Y) and (X’, Y’) terms and the other is by combining (X, Y’) and (X’, Y’) terms. Here the lower right cell is used in both groups.
分组变量后,下一步是确定最小化的表达式。

通过减少每个组,我们获得最小化表达式的结合,例如通过从两组中取出公共术语,即x'和y'。所以减少的等式将是x'+ y'。

3变量k映射

对于3变量布尔函数,可能有8个输出分钟术语。使用3变量的所有MIN术语的一般表示如下所示。

3变量k map-1

3变量K-map的典型图如下所示。可以观察到,第10列和第11列的位置互换了,因此在相邻的单元格中只有一个变量发生了变化。这种修改将允许最小化逻辑。

3变量k映射

在3变量的K-MAP的情况下,可以将最多8个细胞分组,其中其他可能性为1,2和4。

例子

使用k映射简化给定的3变量布尔方程式。

f = x'y z + x'z + x y z'+ x'y'z'+ x y z + x y'z'

首先,让我们构建给定方程的真相表,

3 var exm真相表

我们在方程的输出项上代入1。

在3变量K-MAP中有8个细胞(23)。它看起来像(见下面的图片)。

最大的群体大小将是8,但我们也可以通过可能性形成规模4和尺寸2的组。在3个变量Karnaugh地图中,我们将k-map的左侧列作为最右侧列的相邻列。因此,尺寸4组形成如下所示。

3 var em 2

在这两个条款中,我们有“y”。因此,大小4组作为结合Y减少。为了消耗其中1的每个单元,我们将其余的细胞组分组以形成大小2组,如下所示。

3 var em 3

2尺寸组没有常见变量,因此它们是用变量及其共轭写的。因此,降低的等式将是X Z'+ Y'+ X'Z.在该等式中,不可能最小化。

4变量k映射

在4变量布尔函数的情况下,有16个可能的最小术语。使用4个变量的Minterms的一般表示如下所示。

4 var k map1

典型的4变量K-MAP图如下所示。可以观察到,10和11的列和行都是互换的。

4-Variable K-map

可以分组的可能数量的单元是1,2,4,8和16。

例子

使用k映射简化给定的4变量布尔方程式。f(w,x,y,z)=(1,5,12,13)

溶胶:F(w,x,y,z)=(1,5,12,13)

4 VAR示例

通过准备K-MAP,我们可以最小化给定的布尔方程式

f = w y'z + w'y'z

5变量k映射

5变量布尔函数最多可具有32个minterms。所有可能的minterms都在下面表示

一种 B. C D. E. 输出功能 在k映射上的位置
0. 0. 0. 0. 0. a'b'c'd'e' 0.
0. 0. 0. 0. 1 a'b'c'e.e. 1
0. 0. 0. 1 0. a'b'c'de' 2
0. 0. 0. 1 1 一个’B’C’DE 3.
0. 0. 1 0. 0. a'b'cd'e' 4.
0. 0. 1 0. 1 a'b'cd'e. 5.
0. 0. 1 1 0. a'b'cde' 6.
0. 0. 1 1 1 A'B'cde. 7.
0. 1 0. 0. 0. a'bc'd'e' 8.
0. 1 0. 0. 1 a'bc'd.e. 9.
0. 1 0. 1 0. 一个公元前’’DE’ 10.
0. 1 0. 1 1 公元前’’DE 11.
0. 1 1 0. 0. a'bcd'e' 12.
0. 1 1 0. 1 A'Bcd'e. 13.
0. 1 1 1 0. A'BCDE' 14.
0. 1 1 1 1 A'BCDE. 15.
1 0. 0. 0. 0. ab'c'd'e' 16.
1 0. 0. 0. 1 ab'c'e 17.
1 0. 0. 1 0. ab'c'de' 18.
1 0. 0. 1 1 Ab'c'de. 19.
1 0. 1 0. 0. ab'cd'e' 20.
1 0. 1 0. 1 ab'cd'e. 21.
1 0. 1 1 0. ab'cde' 22.
1 0. 1 1 1 Ab'cde. 23.
1 1 0. 0. 0. abc'd'e' 24.
1 1 0. 0. 1 abc'd'e. 25.
1 1 0. 1 0. abc'de' 26.
1 1 0. 1 1 ABC’德 27.
1 1 1 0. 0. abcd'e' 28.
1 1 1 0. 1 Abcd'e. 29.
1 1 1 1 0. ABCDE' 30.
1 1 1 1 1 中的 31.

在5变量的K-MAP中,我们有32个单元格如下所示。它由f(a,b,c,d,e)表示。它被分为两个16个单元格,其中一个变量(a)为一个网格中的0,另一个网格中为1。

5变量k映射

例子

使用k映射简化给定的5变量布尔方程式。

f (A, B, C, D, E) =∑m(0、5、6、8、9、10、11、16、20日,42岁,25日,26日27)

5 var例子

K-MAP与“不关心”条件

“不关心”条件用于替换空单元格以形成可能的变量分组。它们可以根据组中的相邻变量使用为0或1。包含“不关心”条件的细胞由正常0和1的星号(*)符号表示。

在分组变量中,我们也可以忽略“不要关心”。“不关心”条件在分组大尺寸的变量方面非常有用。

用“不在乎”最小化你的表情

We can minimize the Boolean expression by finding the relative functions of the ‘don’t care’ conditions, by assigning them 0 or 1. If n is the number of don’t cares in a Boolean equation, the number of functions obtained will be 2N

使用k映射实现BCD到灰色码转换器

灰色代码是一个数字系列,其中两个连续数字差异一位。这段代码通过科学家“弗兰克灰”获得了它的名字。他拥有在1953年的轴寄存器中使用灰色码的专利。

我们可以通过使用k-map简化将二进制编码的十进制(BCD)代码转换为格雷码。

BCD代码和灰色代码的表

BDC码和灰色码

G3的k映射

G3的k映射

G2的k映射

G2的k映射

G2 = B3'B2 + B3 B2'= B3 XOR B2的等式

G1的k映射

G1的k映射

G1 = B1'B2 + B1 B2'的等式= B1 XOR B2

G0的k映射

G0的k映射

G0 = B1'B0 + B1 B0'的等式= B1 XOR B0

使用逻辑门的BCD实现BCD到灰色转换。使用两个前或门和或门。

bcd到灰色

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*