在卡诺图中检测 XOR
Detecting XOR in Karnaugh Maps
我得到了以下卡诺图,但在计算每个 table 的 XOR 表达式时仍然遇到问题。
Table 1
-------
WZ
00 01 11 10
-----------------------
00 | | | | 1 |
-----------------------
01 | 1 | | | |
-----------------------
XY 11 | | | | 1 |
-----------------------
10 | 1 | | | |
-----------------------
Table 2
-------
WZ
00 01 11 10
-----------------------
00 | | 1 | | |
-----------------------
01 | | | 1 | |
-----------------------
XY 11 | | 1 | | |
-----------------------
10 | | | 1 | |
-----------------------
是异或运算,但如何轻松推导出异或表达式?
第一个 table 包含 Xor 表达式:
`First table`
w
\ wz ___________
xy \-----------------------+
| | | | 1 |
+-----+-----+-----+-----+
| 1 | | | | |
+-----+-----+-----+-----+ | y
| | | | | 1 | |
x | +-----+-----+-----+-----+
| | 1 | | | |
+-----------------------+
___________
z
如您所见,table(Z 区域)的中间部分是假的。
也就是说,table 函数是:
F(Table1) = w'x'yz' + wx'y'z' + w'xy'z' + wxyz'
in binary form you could see a zero column :
F(Table) = 0010 eliminating Z F(xor)= 001
0100 ---------------\ 010
1110 ---------------/ 111
1000 100
^--> fake
最后的 table 必须是这样的:
`simplified xor table`
w
\ w 0 __1__
xy \-----------+
00 | | 1 |
+-----+-----+
01 | 1 | | |
+-----+-----+ | y And " F = wy' + w'y " is an Xor only
|10 | 1 | | | between 2 variables, right?
x | +-----+-----+
|11 | | 1 |
+-----------+
第二个 table 只包含第一个的 Xnor 表达式:
`Second Table`
F(Table2) = w'xyz + wxy'z + w'x'y'z + wx'yz
w
\ wz ___________
xy \-----------------------+ negation of table 2 is table 1 and vise versa
| | 1 | | | F(Table2) = 1101 F(Table2)'= F(Table1) = 0010
+-----+-----+-----+-----+ 1011 0100
| | | 1 | | | 0001 1110
+-----+-----+-----+-----+ | y 0111 1000
| | | 1 | | | | ^--> fake ^
x | +-----+-----+-----+-----+
| | | | 1 | |
+-----------------------+
^ ___________ ^
^ z ^
^ ^
^--------z'-------^
the final table is:
w
\ w 0 __1__
xy \-----------+
00 | 1 | |
+-----+-----+
01 | | 1 | |
+-----+-----+ | y And " F = w'y' + wy " is an Xnor
|10 | | 1 | |
x | +-----+-----+
|11 | 1 | |
+-----------+
永远记住包含之字形图案的 tables
是 Xor 或 Xnor 表达式。
我不会从表达式中排除变量 z,因为我认为表达式 ¬z·(¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x) 不等于 (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x)。这意味着,K-map 包含四个双打,但只有四个单打。
我宁愿在K-map中找到表达式,然后使用布尔代数定律。
第一个table:
¬x·¬y·w·¬z + ¬x·y·¬w·¬z + x·y·w·¬z + x·¬y·¬w·¬z
¬z·((¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w)) //distributivity
¬z· (¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w) //relaxed syntax
¬z· (¬x·¬x + ¬x·y + ¬x·¬w + ¬y·¬x + ¬y·y + ¬y·¬w + w·¬x + w·y + w·¬w)·
(x·x + x·¬y + x·¬w + y·x + y·¬y + y·¬w + w·x + w·¬y + w·¬w) //distributivity
因为
的法律
- 幂等性(例如:¬x·¬x=¬x),
- 吸收(例如:¬x + ¬x·y=¬x)
- 与互补(例:¬x·x=0)
表达式等同于:
¬z· (¬x + 0 + ¬y·¬w + w·y + 0)·
( x + + 0 + y·¬w + + w·¬y + 0 )
¬z· (¬x + ¬y·¬w + w·y)·(x + y·¬w + w·¬y) //just formatted
¬z· (¬x·x + ¬x·y·¬w + ¬x·w·¬y
+ ¬y·¬w·x + ¬y·¬w·y·¬w + ¬y·¬w·w·¬y
+ w·y·x + w·y·y·¬w + w·y·w·¬y) //distributivity
¬z· ( 0 + ¬x·y·¬w + ¬x·w·¬y
+ ¬y·¬w·x + 0 + 0
+ w·y·x + 0 + 0 ) //using the three laws↑ again
¬z· (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x) //how the 3-input XOR is defined
¬z· (x xor y xor w)
第二个table:
¬x·¬y·¬w·z + ¬x·y·w·z + x·y·¬w·z + x·¬y·w·z
z·((¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w)) //distributivity
z· (¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w) //relaxed syntax
z· (¬x·¬x + ¬x·y + ¬x·w + ¬y·¬x + ¬y·y + ¬y·w + ¬w·¬x + ¬w·y + ¬w·w)·
(x·x + x·¬y + x·w + y·x + y·¬y + y·w + ¬w·x + ¬w·¬y + ¬w·w) //distributivity
z· ( ¬x + + 0 + ¬y·w + + ¬w·y + 0 )·
( x + + 0 + y·w + + ¬w·¬y + 0 )
z· (¬x + ¬y·w + ¬w·y)·(x + y·w + ¬w·¬y) //just formatted
z· (¬x·x + ¬x·y·w + ¬x·¬w·¬y
+ ¬y·w·x + ¬y·w·y·w + ¬y·w·¬w·¬y
+ ¬w·y·x + ¬w·y·y·w + ¬w·y·¬w·¬y) //distributivity
z· ( 0 + ¬x·y·w + ¬x·¬w·¬y
+ ¬y·w·x + 0 + 0
+ ¬w·y·x + 0 + 0) //using the three laws↑ again
z· (¬x·y·w + ¬x·¬w·¬y + ¬y·w·x + ¬w·y·x) //how the 3-input XNOR is defined
z· (x xnor y xnor w)
只需将此地图的副本放在它的右侧(或左侧,没有区别),然后选择两个倾斜的立方体。
现在,我们为它们编写简化函数:
(A = 1) (AND) (当 C=1 时 B=0,当 C=0 时 B=1)
(要么)
(A = 0) (AND) (当 C=0 时 B=0,当 C=1 时 B=1)
最后给出了这个:
(A AND (B XOR C)) OR (¬A AND (B XNOR C))
xor 的基本规则是当奇数个输入为 1 时它给出 1。
所以在 KMAP 中只看 1 是否存在于所有奇数个 1 中。
像 WXYZ(0010、1110 等)如果所有都给出 1 而不是 kmap 中存在 XOR。
我得到了以下卡诺图,但在计算每个 table 的 XOR 表达式时仍然遇到问题。
Table 1
-------
WZ
00 01 11 10
-----------------------
00 | | | | 1 |
-----------------------
01 | 1 | | | |
-----------------------
XY 11 | | | | 1 |
-----------------------
10 | 1 | | | |
-----------------------
Table 2
-------
WZ
00 01 11 10
-----------------------
00 | | 1 | | |
-----------------------
01 | | | 1 | |
-----------------------
XY 11 | | 1 | | |
-----------------------
10 | | | 1 | |
-----------------------
是异或运算,但如何轻松推导出异或表达式?
第一个 table 包含 Xor 表达式:
`First table` w \ wz ___________ xy \-----------------------+ | | | | 1 | +-----+-----+-----+-----+ | 1 | | | | | +-----+-----+-----+-----+ | y | | | | | 1 | | x | +-----+-----+-----+-----+ | | 1 | | | | +-----------------------+ ___________ z
如您所见,table(Z 区域)的中间部分是假的。 也就是说,table 函数是:
F(Table1) = w'x'yz' + wx'y'z' + w'xy'z' + wxyz' in binary form you could see a zero column : F(Table) = 0010 eliminating Z F(xor)= 001 0100 ---------------\ 010 1110 ---------------/ 111 1000 100 ^--> fake
最后的 table 必须是这样的:
`simplified xor table` w \ w 0 __1__ xy \-----------+ 00 | | 1 | +-----+-----+ 01 | 1 | | | +-----+-----+ | y And " F = wy' + w'y " is an Xor only |10 | 1 | | | between 2 variables, right? x | +-----+-----+ |11 | | 1 | +-----------+
第二个 table 只包含第一个的 Xnor 表达式:
`Second Table` F(Table2) = w'xyz + wxy'z + w'x'y'z + wx'yz w \ wz ___________ xy \-----------------------+ negation of table 2 is table 1 and vise versa | | 1 | | | F(Table2) = 1101 F(Table2)'= F(Table1) = 0010 +-----+-----+-----+-----+ 1011 0100 | | | 1 | | | 0001 1110 +-----+-----+-----+-----+ | y 0111 1000 | | | 1 | | | | ^--> fake ^ x | +-----+-----+-----+-----+ | | | | 1 | | +-----------------------+ ^ ___________ ^ ^ z ^ ^ ^ ^--------z'-------^ the final table is: w \ w 0 __1__ xy \-----------+ 00 | 1 | | +-----+-----+ 01 | | 1 | | +-----+-----+ | y And " F = w'y' + wy " is an Xnor |10 | | 1 | | x | +-----+-----+ |11 | 1 | | +-----------+
永远记住包含之字形图案的 tables
是 Xor 或 Xnor 表达式。
我不会从表达式中排除变量 z,因为我认为表达式 ¬z·(¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x) 不等于 (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x)。这意味着,K-map 包含四个双打,但只有四个单打。
我宁愿在K-map中找到表达式,然后使用布尔代数定律。
第一个table:
¬x·¬y·w·¬z + ¬x·y·¬w·¬z + x·y·w·¬z + x·¬y·¬w·¬z
¬z·((¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w)) //distributivity
¬z· (¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w) //relaxed syntax
¬z· (¬x·¬x + ¬x·y + ¬x·¬w + ¬y·¬x + ¬y·y + ¬y·¬w + w·¬x + w·y + w·¬w)·
(x·x + x·¬y + x·¬w + y·x + y·¬y + y·¬w + w·x + w·¬y + w·¬w) //distributivity
因为
的法律- 幂等性(例如:¬x·¬x=¬x),
- 吸收(例如:¬x + ¬x·y=¬x)
- 与互补(例:¬x·x=0)
表达式等同于:
¬z· (¬x + 0 + ¬y·¬w + w·y + 0)·
( x + + 0 + y·¬w + + w·¬y + 0 )
¬z· (¬x + ¬y·¬w + w·y)·(x + y·¬w + w·¬y) //just formatted
¬z· (¬x·x + ¬x·y·¬w + ¬x·w·¬y
+ ¬y·¬w·x + ¬y·¬w·y·¬w + ¬y·¬w·w·¬y
+ w·y·x + w·y·y·¬w + w·y·w·¬y) //distributivity
¬z· ( 0 + ¬x·y·¬w + ¬x·w·¬y
+ ¬y·¬w·x + 0 + 0
+ w·y·x + 0 + 0 ) //using the three laws↑ again
¬z· (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x) //how the 3-input XOR is defined
¬z· (x xor y xor w)
第二个table:
¬x·¬y·¬w·z + ¬x·y·w·z + x·y·¬w·z + x·¬y·w·z
z·((¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w)) //distributivity
z· (¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w) //relaxed syntax
z· (¬x·¬x + ¬x·y + ¬x·w + ¬y·¬x + ¬y·y + ¬y·w + ¬w·¬x + ¬w·y + ¬w·w)·
(x·x + x·¬y + x·w + y·x + y·¬y + y·w + ¬w·x + ¬w·¬y + ¬w·w) //distributivity
z· ( ¬x + + 0 + ¬y·w + + ¬w·y + 0 )·
( x + + 0 + y·w + + ¬w·¬y + 0 )
z· (¬x + ¬y·w + ¬w·y)·(x + y·w + ¬w·¬y) //just formatted
z· (¬x·x + ¬x·y·w + ¬x·¬w·¬y
+ ¬y·w·x + ¬y·w·y·w + ¬y·w·¬w·¬y
+ ¬w·y·x + ¬w·y·y·w + ¬w·y·¬w·¬y) //distributivity
z· ( 0 + ¬x·y·w + ¬x·¬w·¬y
+ ¬y·w·x + 0 + 0
+ ¬w·y·x + 0 + 0) //using the three laws↑ again
z· (¬x·y·w + ¬x·¬w·¬y + ¬y·w·x + ¬w·y·x) //how the 3-input XNOR is defined
z· (x xnor y xnor w)
只需将此地图的副本放在它的右侧(或左侧,没有区别),然后选择两个倾斜的立方体。 现在,我们为它们编写简化函数:
(A = 1) (AND) (当 C=1 时 B=0,当 C=0 时 B=1) (要么) (A = 0) (AND) (当 C=0 时 B=0,当 C=1 时 B=1) 最后给出了这个:
(A AND (B XOR C)) OR (¬A AND (B XNOR C))
xor 的基本规则是当奇数个输入为 1 时它给出 1。 所以在 KMAP 中只看 1 是否存在于所有奇数个 1 中。 像 WXYZ(0010、1110 等)如果所有都给出 1 而不是 kmap 中存在 XOR。