仅使用NAND逻辑门转换表达式

时间:2015-10-21 22:00:30

标签: boolean-logic boolean-expression demorgans-law boolean-algebra

如何使用NAND门转换此表达式NOT(a)OR NOT(b)AND NOT(c)?我试图这样做,但我找不到正确的答案。

3 个答案:

答案 0 :(得分:1)

首先,所有逻辑方程都可以用NAND门表示。考虑一下NOT ....只需将NAND的两个输入连接在一起就可以了! NOT NAND是AND,OR是驱动NAND的两个NOT门!这一切都很酷...... 做一些关于数学逻辑的研究,你应该找到各种转换技术的细节。

答案 1 :(得分:0)

您可以逐步应用以下公式:

NOT(A) OR NOT(B) = A NAND B
A AND B = NOT(A NAND B)
NOT(A) = A NAND A

答案 2 :(得分:0)

我建议使用Rott的网格。这是De Morgan定律的图形化应用程序,仅使用NOR和NAND门的组合来优化设计非常有用。通常它可以很快完成而不用担心犯错误。

每个罗特的网格都是根据以下三个原则创建的:

  • 通过在⋅(连接)和+(分离)之间切换并将它们与水平线(否定)分开来尊重De Morgan定律,
  • 垂直线分隔各个输入,改变逻辑门输入的数量,
  • 在最后一行上的
  • 将输入变量置于其主要或否定形式 - 由它们上方的水平线的数量(初始¬也计数)单独确定。

这是匹配的Rott网格中的给定表达式:

f = ¬a + ¬b ⋅ ¬c 
   --------------
       ⋅    +    
       | --------
       |    ⋅
       |    |
     a | ¬b | ¬c

A function equivalent to the original expression.

正如您所看到的,原始表达式被转换为等效物,即仅使用两个2输入NAND门(以及一些逆变器,也可以由NAND门替换)。网格只是将De Morgan定律应用于原始表达式的图形表示:

f =    (¬a  +  (¬b ⋅ ¬c))
  = ¬(¬(¬a  +  (¬b ⋅ ¬c)))        //double negation law: ¬(¬x) = x
  =  ¬(¬¬a  ⋅ ¬(¬b ⋅ ¬c))         //De Morgan's law
  =    ¬(a  ⋅ ¬(¬b ⋅ ¬c))         //double negation law: ¬¬a = a

f = nand(a, nand(not(b), not(c)))

(.gif图片是使用online latex tool生成的)