如何仅使用与非门转换此表达式 NOT(a) OR NOT(b) AND NOT(c)?我试图这样做,但我没有找到正确的答案。
问问题
1028 次
3 回答
1
首先,所有的逻辑方程都可以用与非门来表示。考虑一个 NOT.... 只需将 NAND 的两个输入连接在一起,您就有了一个 NOT!一个非与非是一个与,一个或是两个非门驱动一个与非!这一切都很酷……对数理逻辑进行一些研究,您应该会找到各种转换技术的详细信息。
于 2015-10-21T22:24:37.043 回答
0
您可以逐步应用以下公式:
NOT(A) OR NOT(B) = A NAND B
A AND B = NOT(A NAND B)
NOT(A) = A NAND A
于 2015-10-21T22:21:44.497 回答
0
我建议使用 Rott 的网格。它是 De Morgan 定律的图形应用,对于仅使用 NOR 和 NAND 门的组合优化设计很有用。通常它可以很快完成,而不必担心犯错误。
每个 Rott 的网格都是根据以下三个原则创建的:
- 德摩根定律通过在 ⋅ (合取)和 + (析取)之间切换并将它们用水平线(否定)分开来得到尊重,
- 垂直线分隔各个输入,改变逻辑门输入的数量,
- 在最后一行放置输入变量的素数或否定形式——这由它们上方的水平线数单独确定(初始 ¬ 也计算在内)。
这是匹配 Rott 网格中的给定表达式:
f = ¬a + ¬b ⋅ ¬c
--------------
⋅ +
| --------
| ⋅
| |
a | ¬b | ¬c
如您所见,原始表达式已转换为等效表达式,即仅使用两个 2 输入 NAND 门(以及一些反相器,也可以用 NAND 门代替)。网格只是将德摩根定律应用于原始表达式的图形表示:
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 图片是使用在线乳胶工具生成的)
于 2016-03-18T08:33:31.423 回答