使用DeMorgans我得到:
~~(abc) // ~ is the not.
我的问题是当我尝试构建电路时,NAND门只需要2个输入。那我怎么把它拆成3?如果它是AND门,我会使用两个,方程式为:
(a AND b) AND c
然而,这不适用于我的NAND,因为
~((a NAND b) NAND c) != (abc)
答案 0 :(得分:0)
如果你想要的只是一个当所有输入都是1时输出0的电路......
你可以简单地检查它们中的任何一个是否为0,然后否定它。
你已经说过答案:De Morgan的法律。只需应用它们: 〜(a ^ b ^ c)= ~a或~b或~c
虽然也许我错过了什么。还有其他我可能没有接受过的限制吗?
答案 1 :(得分:0)
2~的意思是你不想输出两次?如果是这样,~~(abc)=(abc),(两个NOT相互抵消)所以你可以做(a AND b)AND c。
如果你想只取一次(abc)的NOT,你可以先做(a AND b)AND c,然后你可以通过一个逆变器传递那个输出。你需要两个芯片而不是一个。
答案 2 :(得分:0)
我建议使用Rott的网格。 Rott的网格是De Morgan定律的图形应用程序,它对解决像你这样的问题特别有用。一些逻辑门需要比其他更多的晶体管。减少逻辑门处的潜在延迟的需要可能是使用门NOR或NAND优化设计的动机。找到相应的功能 - 使用您需要的逻辑门 - 可以使用Rott的网格快速完成:
每个Rott的网格都是根据以下三个原则创建的:
以下五个网格中的所有网格都是给定函数的不同表示:
a ⋅ b ⋅ c a ⋅ b ⋅ c a ⋅ b ⋅ c a ⋅ b ⋅ c a ⋅ b ⋅ c
| | ----------- ----------- ----------- -----------
a | b | c + + + + + + + +
----------- ----------- | ------ | ------
⋅ ⋅ ⋅ ⋅ | ⋅ | ⋅
| ------ ------ | | ------ | |
| + + | | + ¬a | b | c
| ------ ------ | | |
| ⋅ ⋅ | ¬a | ¬b|¬c
| | | |
a | b | c a | b | c
第一个网格并不真正有用,它只是由3输入AND实现的原始函数:
f = a ⋅ b ⋅ c
第二个Rott的网格仅使用2输入NAND实现。您可以使用两个2输入NAND和两个逆变器或四个2输入NAND - 其中两个位于逆变器和#39;因为两个引脚上具有相同输入的2输入NAND会反转信号。
f = ¬(nand(a,¬(nand(b,c))))
第三个Rott的网格只是第一个的变种。
f = ¬(nand(¬(nand(a,b)),c))
第四个Rott的网格可以通过使用两个2输入NOR和四个反相器来实现。逆变器可以用2输入NOR或2输入NAND代替。
f = nor(¬a,¬(nor(¬b,¬c))))
第五个Rott的网格可以通过组合一个2输入NOR,一个2输入NAND和一个逆变器来实现。
f = nor(not(a),nand(b,c))
(图片是使用online latex tool生成的。)