IC设计中的经济学(2):为什么在逻辑电路中插入那么多非门

Author: Jackie Long

前一节我们已经讨论过"为什么要将逻辑表达式化成与非或非"的问题,并提出过一个问题:为什么实际逻辑电路中间都会插入很多非门?


比如,最简单的 "与"、"或"、"非"逻辑门在真实的逻辑芯片中通常表达如下图所示:

IC设计中的经济学(2):为什么在逻辑电路中插入那么多非门

IC设计中的经济学(2):为什么在逻辑电路中插入那么多非门

IC设计中的经济学(2):为什么在逻辑电路中插入那么多非门

这些都是真实的74HC系列逻辑中的逻辑框图,你也可以随意下载一个74HC系列数字逻辑器件,插入多个非门几乎都是标配电路了,但是插入两(偶数)个非门不就相当于没有插入了吗?虾米情况?

首先要说的是:插入的非门肯定是要花钱的,但是既然这么做,就一定有道理。有人说输入插入非门是为了整形,输出插入非门是为了增强带负载能力,难道"与非门"或"或非门"的带负载能会比"非门"差?都是一样的构造,只有"非门"可以对输入电平进行整形?

其实插入"非门"的主要目的是为了提升速度,即优化逻辑门的延时!虾米?编剧你这次又被我抓到了吧?我插入两个非门就多了两级逻辑,不就更慢了吗?地球人都知道呀!

But,我只想告诉你,这只是一般人的想法(我们是高逼格的人),大多数人都会认为每一级逻辑都有一个"门延时",因此会通过计算总的逻辑级数来计算总的延时,也就是说,逻辑级数越少的电路就是速度最快的,然而,门延时实际上取决于电气努力(electrical effort,这个不好解释,知道这个名词就行了),所以采用较少的逻辑级数往往会导致更大的延时(这有点类似时序逻辑的"流水线"结构)。

CMOS集成电路设计里有一个"最优级数"的概念,不是这个专业的不需要深究,我们只举个最简单的例子就可以说明白这个问题,如下图所示:

IC设计中的经济学(2):为什么在逻辑电路中插入那么多非门

这三个"非门"逻辑当中哪个延时最小呢?你可能认为是第一个,但实际上第二个方案是延时最小的!我们可以类比古代通讯的烽火台(或八百里加急):一百里的距离中间可以插入1个、10个、100个、1000个甚至更多的烽火台,烽火台太少是不容易达到快速通讯的目的,但是点燃烽火台也是需要时间的,因此烽火台也不宜过多,换言之,烽火台的数目有一个最佳数量值,这与CMOS逻辑设计中插入适当数量的非门的道理是一样的!非门的电平翻转时间就相当于点燃烽火台花费的时间,只要两个非门之间的延时大于非门翻转时间,则插入非门即可优化逻辑速度

这就解释了:为什么这些厂家都不要钱似的插入"非门"逻辑了吧?插入这么多的"非门"就是为了获得更快的速度,然后卖个更好的价钱,正所谓:天下熙熙,皆为利来;天下攘攘,皆为利往,这个道理永远是正确的,在集成电路设计里也不例外。


分享到:


相關文章: