我建议使用 Rott 的网格。 Rott 网格是 De Morgan 定律的图形应用,对于解决像您这样的问题特别有用。一些逻辑门比其他逻辑门需要更多的晶体管。减少逻辑门潜在延迟的需要可能是使用 NOR 或 NAND 门优化设计的动机。使用 Rott 的网格可以非常快速地找到相应的函数 - 使用您需要的逻辑门:
每个Rott的网格都是根据这三个原则创建的:
- De Morgan 定律通过在 ⋅(连词)和 +(析取词)之间切换并用水平线(否定词)分开来得到尊重,
- 垂直线分隔各个输入,改变逻辑门输入的数量,
- 在最后一行放置输入变量的质数或负数形式 - 这由它们上方的水平线数单独确定。
以下五个网格都是给定函数的不同表示:
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 - 其中两个在反相器的位置,因为两个引脚上具有相同输入的 2 输入 NAND 会反转信号。
f = ¬(nand(a,¬(nand(b,c))))
第三个罗特的网格只是第一个的变体。
f = ¬(nand(¬(nand(a,b)),c))
第四个Rott's grid可以通过使用两个2输入NOR和四个反相器来实现。反相器可以用 2 输入 NOR 或 2 输入 NAND 代替。
f = nor(¬a,¬(nor(¬b,¬c))))
第五个Rott's grid可以通过1个2输入NOR、1个2输入NAND和1个反相器组合实现。
f = nor(not(a),nand(b,c))
(图片是使用online latex tool生成的。)