如何用与非门和非门实现布尔函数𝐹 = 𝑥𝑦 + 𝑥′𝑦′ + 𝑦′𝑧

问题描述 投票:0回答:2

我已经用“与”、“或”和“非”门解决了这个问题,但不知道如何用“与非”和“非”门来解决。

我不知道如何实现这个布尔表达式的与非门。

boolean-logic boolean-expression digital-logic booleanquery
2个回答
0
投票

使用德摩根定律:

    xy    +  x'y'        +  yz
   (xy)'' + (x'y')''     + (yz)''     // all ANDs converted to NOT'd NANDs
  ((xy)'''  (x'y')''')'  + (yz)''     // first OR converted to NAND w/ args NOT'd
 (((xy)'''  (x'y')''')''   (yz)''')'  // second OR converted to NAND w/ args NOT'd
 (((xy)'    (x'y')')''     (yz)')'    // extra NOT's removed

0
投票

要使用与非门和非门实现布尔函数( F = xy + x'y' + y'z ),您需要使用德摩根定律和与非门的属性。以下是实现此目的的分步过程:

  1. 用基本门来表达函数:

    ( F = xy + x'y' + y'z )

  2. 分别分解每一项,然后组合它们:

    • 项 ( xy ) 可以使用与非门和非门来实现。
    • 项 ( x'y' ) 可以使用 NAND 门和 NOT 门来实现。
    • 项 ( y'z ) 可以使用 NAND 门和 NOT 门来实现。
  3. 实现(xy):

    • 使用与非门,( xy = (x cdot y) )
    • ( xy ) 可以使用 NAND 门和 NOT 门来编写: ( xy = 文本{NOT}(文本{NAND}(x, y)) ) ( xy = 文本{NAND}(文本{NAND}(x, y), 文本{NAND}(x, y)) )
  4. 实现(x'y'):

    • ( x' ) 和 ( y' ) 可以使用 NAND 门来实现: ( x' = 文本{NAND}(x, x) ) ( y' = 文本{NAND}(y, y) )
    • 然后 (x'y'): ( x'y' = 文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y)) )
    • 化简 ( x'y' ): ( x'y' = 文本{NOT}(文本{NAND}(文本{NOT}(x), 文本{NOT}(y))) ) ( x'y' = 文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y)) )
  5. 实施(y'z):

    • ( y' = 文本{NAND}(y, y) )
    • 使用 ( y' ) 和 ( z ): ( y'z = 文本{NAND}(文本{NAND}(y, y), z) )
    • 简化 ( y'z ): ( y'z = 文本{NOT}(文本{NAND}(文本{NOT}(y), z)) ) ( y'z = 文本{NAND}(文本{NAND}(y, y), z) )
  6. 使用与非门组合这三个项:

    • 使用德摩根定律组合各项:( F = xy + x'y' + y'z ) ( F = 文本{NOT}(文本{NOT}(xy) cdot 文本{NOT}(x'y') cdot 文本{NOT}(y'z)) )
    • 用与非门来表达: ( F = 文本{NAND}(文本{NAND}(文本{NAND}(x, y), 文本{NAND}(x, y)), 文本{NAND}(文本{NAND}(文本{NAND}(x , x), 文本{NAND}(y, y)), 文本{NAND}(文本{NAND}(y, y), z))) )

现在,让我们将它们放在一个表达式中:

  1. 非门:

    • ( 文本{NOT}(x) = 文本{NAND}(x, x) )
    • ( 文本{NOT}(y) = 文本{NAND}(y, y) )
  2. 中间术语:

    • ( xy = 文本{NAND}(文本{NAND}(x, y), 文本{NAND}(x, y)) )
    • ( x'y' = 文本{NAND}(文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y)), 文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y))) )
    • ( y'z = 文本{NAND}(文本{NAND}(文本{NAND}(y, y), z), 文本{NAND}(文本{NAND}(y, y), z)) )
  3. 使用与非门组合中间项: ( F = 文本{NAND}(文本{NAND}(xy, xy), 文本{NAND}(x'y', x'y'), 文本{NAND}(y'z, y'z)) )

这是使用 NAND 门的完整电路:

  • ( 文本{NOT}(x) = 文本{NAND}(x, x) )
  • ( 文本{NOT}(y) = 文本{NAND}(y, y) )
  • ( xy = 文本{NAND}(文本{NAND}(x, y), 文本{NAND}(x, y)) )
  • ( x'y' = 文本{NAND}(文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y)), 文本{NAND}(文本{NAND}(x, x), 文本{NAND}(y, y))) )
  • ( y'z = 文本{NAND}(文本{NAND}(文本{NAND}(y, y), z), 文本{NAND}(文本{NAND}(y, y), z)) )
  • 最后,( F = 文本{NAND}(文本{NAND}(xy, xy), 文本{NAND}(x'y', x'y'), 文本{NAND}(y'z, y'z) ) )

通过正确组织和连接这些门,您可以仅使用 NAND 和 NOT 门来实现布尔函数 ( F = xy + x'y' + y'z )。

© www.soinside.com 2019 - 2024. All rights reserved.