【问题标题】:Detecting XOR in Karnaugh Maps检测卡诺图中的异或
【发布时间】:2016-01-08 23:40:26
【问题描述】:

我得到了以下卡诺图,但我仍然无法从每个表中计算出 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  |   |
       -----------------------

是异或,但如何轻松推导出异或表达式?

【问题讨论】:

  • 我不清楚。推导出 XOR 表达式是什么意思?
  • 那么,以上表格中的表达式是什么?我唯一的想法是它们是异或。就像在第一个中说的那样,它可能是 X xor Y xor Z xor W...但我怀疑是对的

标签: xor boolean-expression karnaugh-map


【解决方案1】:

我不会从表达式中忽略变量 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 中找到表达式,然后使用布尔代数定律。

对于第一个表:

¬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)

第二张桌子:

¬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)

【讨论】:

    【解决方案2】:

    xor 的基本规则是当奇数个输入为 1 时它给出 1。 因此,在 KMAP 中,只需查看 1 是否存在于所有奇数个 1 中。 就像 WXYZ(0010、1110 等)一样,如果全部给出 1,则 kmap 中存在 XOR。

    【讨论】:

    • 你怎么知道它是不是 XNOR?
    【解决方案3】:

    第一个表包含一个异或表达式:

    `第一个表`
                           w
        \ wz ___________
     xy \----------+
         | | | | 1 |
         +-----+-----+-----+------+
         | 1 | | | | |
         +-----+-----+-----+------+ |是的
       | | | | | 1 | |
     x | +-----+-----+-----+------+
       | | 1 | | | |
         +------------------------+
                ___________
                     z
    

    如您所见,桌子中间(Z 区域)是假的。 即表函数为:

    F(Table1) = w'x'yz' + wx'y'z' + w'xy'z' + wxyz' 以二进制形式,您可以看到零列: F(Table) = 0010 消除 Z F(xor)= 001 0100 ---------------\ 010 1110 ---------------/ 111 1000 100 ^--> 假的

    决赛桌必须是这样的:

    `简化的异或表`
                    w
          \ w 0 __1__
       xy \-----------+
        00 | | 1 |
           +-----+-----+
        01 | 1 | | |
           +-----+-----+ | y 和“ F = wy' + w'y ”只是一个异或
       |10 | 1 | | |在两个变量之间,对吧?
     x | +-----+-----+
       |11 | | 1 |
           +-----------+
    


    第二个表只包含第一个表的 Xnor 表达式:

    `第二张表`
    F(表2) = w'xyz + wxy'z + w'x'y'z + wx'yz
                              w
           \ wz ___________
        xy \-----------------------+ 表 2 的否定是表 1,反之亦然
            | | 1 | | | F(表2) = 1101 F(表2)'= F(表1) = 0010
            +-----+-----+-----+-----+ 1011 0100
            | | | 1 | | | 0001 1110
            +-----+-----+-----+------+ |是 0111 1000
          | | | 1 | | | | ^--> 假的^
        x | +-----+-----+-----+------+
          | | | | 1 | |
            +------------------------+
               ^ ___________ ^
               ^ z ^
               ^ ^
               ^--------z'--------^
    
        决赛桌是:
                    w
          \ w 0 __1__
       xy \-----------+
        00 | 1 | |
           +-----+-----+
        01 | | 1 | |
           +-----+-----+ | y 和“ F = w'y' + wy ”是一个 Xnor
       |10 | | 1 | |
     x | +-----+-----+
       |11 | 1 | |
           +-----------+
    

    永远记住包含锯齿形图案的表格
    是 Xor 或 Xnor 表达式。

    【讨论】:

    • 恭喜!您获得了第一个金徽章。我不知道为什么社区最近拒绝了我的编辑。我想知道为什么?你是编辑方面的专家......
    • @Mohammadreza Panahi,非常感谢。起初,在接触任何帖子之前,我试图分析有经验的编辑正在做什么,以通过正确使用不同的标签来使帖子更具可读性。当然,我犯了一些错误,但逐渐Dos and Don't通过批准和拒绝的提案数量显露出来。不要把它当成个人,只要做你认为是完成工作的最佳方式,每次都尝试让你的编辑比以前更好——one inch at a time!(顺便说一句,不要忘记使用 Grammarly 来完成你的工作更容易)
    【解决方案4】:

    只需将此地图的副本放在它的右侧(或左侧,没有区别),然后选择两个倾斜的立方体。 现在,我们为它们编写简化函数:

    (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))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 2011-05-07
      • 2016-03-05
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      相关资源
      最近更新 更多