使用DeMorgans我得到:
~~(abc) // ~ is the not.我的问题是,当我试图构建电路时,NAND门只需要2个输入。那我怎么把它分成三份呢?如果它是一个AND门,我将只使用2,等式将是:
(a AND b) AND c但是,这不适用于我的NAND,因为
~((a NAND b) NAND c) != (abc)发布于 2016-03-10 18:12:49
我建议使用Rott's grids。Rott's网格是德摩根定律的图形化应用程序,对于解决像您这样的问题特别有用。一些逻辑门比其他逻辑门需要更多的晶体管。减少逻辑门的潜在延迟的需要可能是使用门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-input实现的原始函数,并且:
f = a ⋅ b ⋅ c第二个Rott网格仅使用两个输入NAND实现。您可以使用两个双输入NAND和两个反相器,也可以使用四个双输入NAND-其中两个在反相器的位置,因为两个引脚上具有相同输入的双输入NAND会反转信号。
f = ¬(nand(a,¬(nand(b,c))))第三个Rott网格只是第一个网格的变体。
f = ¬(nand(¬(nand(a,b)),c))第四个Rott网格可以通过使用两个2输入NORs和四个反相器来实现。反相器可以由2输入NORs或2输入NAND代替。
f = nor(¬a,¬(nor(¬b,¬c))))第五个Rott网格可以通过一个2输入NOR,一个2输入NAND和一个反相器的组合来实现。
f = nor(not(a),nand(b,c))(图片是使用online latex tool生成的。)
发布于 2013-02-14 10:25:50
如果你想要的是一个当所有输入都是1时输出为0的电路...
您可以简单地检查它们中的任何一个是否为0,然后将其否定。
你已经说过答案了:德摩根定律。只需应用它们:~(a^b^c) = ~a或~b或~c
不过,也许我漏掉了什么。有没有其他我可能没有注意到的限制?
发布于 2013-02-14 10:31:57
2~是否意味着你不想输出两次?如果是这样,~~(abc) = (abc),(这两个不是互相抵消的),所以你可以只做(a,b)和c。
如果你只想取(abc)的NOT一次,你可以先做(a和b)和c,然后你可以通过一个反相器来传递输出。你需要两个芯片而不是一个。
https://stackoverflow.com/questions/14866770
复制相似问题