k-map 中`Don't care condition ( X ) 的实现是否正确
Is the implementation of `Don't care condition ( X ) in k- map is right
我对卡诺地图中的 Don't care 条件有点困惑。众所周知卡诺图是用来实现
- 完成
- accurate/precise
- 最优
16 位或有时 32 位二进制解的输出方程,直到一切正常,但当我们在其中插入无关条件时,问题就出现了。
我的问题是,
由于甚至不关心条件是从 o 或 1 的真解 table 中产生的,在卡诺图中,我们有时会得出结论或有时会忽略卡诺图组中的不关心条件。 我们忽略卡诺图中不关心的条件是否是卡诺图中的歧义因为我们不知道不关心条件背后的内容是 1 还是 0。所以之后如何我们是否可以自信地说我们的解决方案是完整的或准确的,同时我们忽略了其中的无关条件。可能是我们忽略的不关心在 sop 中包含 1,在 pos 中包含 0,因此根据它可能包含错误。
A "don't care" 就是这样。我们不关心的东西。它为我们提供了额外优化的机会,因为该值不受限制。我们可以为所欲为,以达到最佳解决方案。
因为我们不关心它,所以值是多少并不重要。我们将使用最适合我们的方式(成本最低、速度最快等..."optimal")。如果它在一个实现中作为 1
而在另一个实现中作为 0
更好,那就这样吧,没关系。
是的,总有另一种情况不关心,但我们可以说它是 complete/accurate,因为我们不关心另一个。我们将以使我们的实施更好的方式来对待它。
让我们举一个非常简单的例子来理解“无关条件”的确切含义。
设F
为用户定义的二元布尔函数,如下所示:
A B F
0 0 1
0 1 0
当A
的值为1
时未定义此函数。
这可能意味着以下两种情况之一:-
- 用户不关心
F
在A = 1
时产生的值。
- 用户保证
A = 1
永远不会作为F
的输入。
这两种情况统称为“无所谓”。
现在,实现此功能的人可以通过扩展 F
的定义以包括 A = 1
.
的情况来利用这一事实来发挥他们的优势
使用 K-Map,
B' B
A' | 1 | 0 |
A | X | X |
如果没有这些无关条件,F
的代数表达式将写成A'B'
,即F = A'B'
.
但是,如果我们按如下方式修改这张地图,
B' B
A' | 1 | 0 |
A | 1 | 0 |
那么F
可以表示为F = B'
.
通过修改这张图,我们基本上把F
的定义扩展如下:
A B F
0 0 1
0 1 0
1 0 1
1 1 0
此方法之所以有效,是因为实现该功能的人已经知道,要么用户不会关心 A = 1
时发生的情况,要么用户永远不会使用 A = 1
作为 [=14] 的输入=].
另一个例子是一个四变量布尔函数,其中每个 4
变量表示 BCD
值的一个不同位,函数给出的输出为 1
如果等效的十进制数是偶数 & 0
如果它是奇数。在这里,由于保证输入永远不会是 1010
、1011
、1100
、1101
、1110
& 1111
之一,因此,实现函数的人也可以通过包含这些情况来扩展函数的定义,使其对自己有利。
我对卡诺地图中的 Don't care 条件有点困惑。众所周知卡诺图是用来实现
- 完成
- accurate/precise
- 最优
16 位或有时 32 位二进制解的输出方程,直到一切正常,但当我们在其中插入无关条件时,问题就出现了。 我的问题是, 由于甚至不关心条件是从 o 或 1 的真解 table 中产生的,在卡诺图中,我们有时会得出结论或有时会忽略卡诺图组中的不关心条件。 我们忽略卡诺图中不关心的条件是否是卡诺图中的歧义因为我们不知道不关心条件背后的内容是 1 还是 0。所以之后如何我们是否可以自信地说我们的解决方案是完整的或准确的,同时我们忽略了其中的无关条件。可能是我们忽略的不关心在 sop 中包含 1,在 pos 中包含 0,因此根据它可能包含错误。
A "don't care" 就是这样。我们不关心的东西。它为我们提供了额外优化的机会,因为该值不受限制。我们可以为所欲为,以达到最佳解决方案。
因为我们不关心它,所以值是多少并不重要。我们将使用最适合我们的方式(成本最低、速度最快等..."optimal")。如果它在一个实现中作为 1
而在另一个实现中作为 0
更好,那就这样吧,没关系。
是的,总有另一种情况不关心,但我们可以说它是 complete/accurate,因为我们不关心另一个。我们将以使我们的实施更好的方式来对待它。
让我们举一个非常简单的例子来理解“无关条件”的确切含义。
设F
为用户定义的二元布尔函数,如下所示:
A B F
0 0 1
0 1 0
当A
的值为1
时未定义此函数。
这可能意味着以下两种情况之一:-
- 用户不关心
F
在A = 1
时产生的值。 - 用户保证
A = 1
永远不会作为F
的输入。
这两种情况统称为“无所谓”。
现在,实现此功能的人可以通过扩展 F
的定义以包括 A = 1
.
使用 K-Map,
B' B
A' | 1 | 0 |
A | X | X |
如果没有这些无关条件,F
的代数表达式将写成A'B'
,即F = A'B'
.
但是,如果我们按如下方式修改这张地图,
B' B
A' | 1 | 0 |
A | 1 | 0 |
那么F
可以表示为F = B'
.
通过修改这张图,我们基本上把F
的定义扩展如下:
A B F
0 0 1
0 1 0
1 0 1
1 1 0
此方法之所以有效,是因为实现该功能的人已经知道,要么用户不会关心 A = 1
时发生的情况,要么用户永远不会使用 A = 1
作为 [=14] 的输入=].
另一个例子是一个四变量布尔函数,其中每个 4
变量表示 BCD
值的一个不同位,函数给出的输出为 1
如果等效的十进制数是偶数 & 0
如果它是奇数。在这里,由于保证输入永远不会是 1010
、1011
、1100
、1101
、1110
& 1111
之一,因此,实现函数的人也可以通过包含这些情况来扩展函数的定义,使其对自己有利。