在我的数字电子实验室和讲座中,我们被告知尝试用 NAND 门制作东西,因为它们是可以买到的最便宜的门。为什么是这样?为什么 OR/AND 门不是最便宜的?
为什么与非门便宜?
与非门很便宜,因为从 1980 年代开始就有很多这样的门。
不过说真的,与非门是最简单的逻辑门。您可以将其视为多输入逆变器。在电气上,这正是 TTL 与非门。每个输入只是添加到输入晶体管的另一个发射器。电路的其余部分只是一个逆变器。在 CMOS 中有所不同,但与非门仍然非常简单。
由于芯片需要很少的晶体管,它们可以很小,这使得每个硅晶片可以有很多晶体管,这使得它们便宜。
可以这么说的原因之一是,在 CMOS 电路中,与非门比 NOR 门更小、面积更小、速度更快,而 AND 和 OR 门需要一个显式的反相器电路,其尺寸与 NAND/也不。所以在 CMOS 中,NAND 稍微便宜一点。
nMOS 并非如此(相反),而且大多数肯定不适用于像 74x 系列这样的封装门——面积成本完全被封装成本和其他开销所掩盖。
参考:Peter Robinson 的 VLSI 设计,第 14 页,“在 CMOS 中,与非门比或非门具有更好的速度和面积特性”。
参考文献 2:这里,意译为:“在 CMOS 中,或非门有两个串联的 pMOS,由于空穴的迁移率差,因此速度较慢。”
任何逻辑功能都可以从 NAND(或 NOR)门构建,甚至是完整的系统。OR 和 AND 门的成本与 NAND 大致相同,但您也需要反相器。1,000 个 NAND 门将比 OR、AND 和反相器的混合物便宜。
出于这个原因,Seymour Cray 过去常常用 ECL 或非门构建他的 Cray 超级计算机。
还没有提到的几点:
- 在基于MOS的逻辑完全接管之前曾经是“普通”类型的TTL逻辑中,一个两输入与非门需要四个晶体管,其中一个有两个发射极;一个双输入或非门需要六个晶体管(每个晶体管都有一个发射极)。更一般地说,一个 N 输入与非门需要四个晶体管,其中一个具有 N 个发射极;N 输入 NOR 门需要 2N+2 个晶体管。
- 在 NMOS 逻辑中,N 输入门,无论是 NAND、NOR 还是它们的某种组合(最后只有一个反转)都需要 N 个晶体管和一个电阻器。在 NMOS 中,或非门比与非门稍快。
- 在 CMOS 逻辑中,N 输入门,无论是 NAND、NOR 还是它们的某种组合(最后只有一个反转)通常需要 N 个 PMOS 晶体管和 N 个 NMOS 晶体管。与非门输出“高”的速度比或非门稍快,随着输入数量的增加,差异变得更加明显。然而,一个或非门输出“低”的速度比与非门稍快。由于 CMOS 技术在其他条件相同的情况下输出高信号比低信号稍慢,因此与非门可能具有更“平衡”的输出时间。
- 在大多数 CPLD 设计中,基本逻辑块由一堆多输入 NAND 门(输入可以连接或断开)组成,其输出驱动一堆多输入 NAND 门。请注意,文档通常显示一堆“AND”驱动一堆“OR”,但驱动 NAND 的 NAND 将产生与驱动 OR 的 AND 相同的行为,但反转较少,因为 NAND 门不仅是具有反转输出的 AND,但其行为与具有反转输入的 OR 相同。儿子采用 AND 和 OR,反转 AND 的输出和 OR 的输入(可以这样做,因为两个反转取消),剩下一个是 NAND 驱动 NAND。
任何不需要三态逻辑或最佳速度的逻辑设计都可以完全用与非门来实现。这并不是说 NAND 门总是最实用的实现方式。例如,一个异或门需要四个二输入与非门来构建,在 CMOS 中总共代表十六个晶体管。然而,如果一个人直接用晶体管构建一个 CMOS 异或门,那么这项工作可以用八个来完成。