通常在数字设计中,我们处理在 0 到 1 时钟信号转换(正沿触发)而不是在 1 到 0 转换(负沿触发)时触发的触发器。自从我第一次研究时序电路以来,我就知道了这个约定,但直到现在才对其提出质疑。
上升沿触发和下降沿触发之间的选择是任意的吗?或者说正边沿触发触发器占主导地位有实际原因吗?
通常在数字设计中,我们处理在 0 到 1 时钟信号转换(正沿触发)而不是在 1 到 0 转换(负沿触发)时触发的触发器。自从我第一次研究时序电路以来,我就知道了这个约定,但直到现在才对其提出质疑。
上升沿触发和下降沿触发之间的选择是任意的吗?或者说正边沿触发触发器占主导地位有实际原因吗?
最佳猜测:积极的趋势是1970 年代之前尝试使用尽可能少的区域/零件的设计的副产品。通过增加每个晶片的芯片数量来节省生产成本的措施。现代正/负边缘 DFF 通常具有相等的总面积,因此正边缘趋势现在是传统做法。
面积节省来自“经典”D 触发器设计。D触发器的现代主/从组件可以使用两个5晶体管锁存器;专利WO1984003806 A1和US4484087 A均于 1984 年 3 月 23 日提交。8 晶体管 D 型锁存器的专利于 1970 年 2 月 6 日提交;US3641511 一个。为简单起见,对于使用上述 D-latch/S-cell 专利的设计,基于 SR/SnRn 锁存器的设计将被称为“经典”和“现代”。
在 IC 设计中,由于 NMOS 和 PMOS 的特性,NAND 门比 NOR 门使用更少的面积。从那里形成,面积节省尺寸趋势级联。SnRn 锁存器的 D 锁存器比 SR 锁存器小。经典的 D 触发器设计基于这些逻辑门。在搜索了几个设计之后,经典的正边缘设计总是比经典的负边缘设计小。随着芯片成本变得有利,向现代的迁移发生了:面积节省与特许权使用费。
深入挖掘以展示区域差异:
经典正边沿 D 触发器:基于示意图的维基百科经典正边沿触发 D 触发器描述和图表,使用五个 NAND2 和一个 NAND3。这总共使用了 13 个 NMOS 和 13 个 PMOS。
我能找到的最好的经典负边沿 D 触发器是使用两个 D 锁存器和两个反相器。示意图参考表格http://students.cs.byu.edu/~cs124ta/labs/L02-FSM/HowToUseMasterSlave.html。这总共使用了十八个 NMOS 和十八个 PMOS。在上面的经典姿势上放置一个反相器将降低此设计的晶体管数量。无论哪种情况,经典的负边缘都比正边缘设计更大。
基于专利WO1984003806 A1和US4484087 A五晶体管 D 型锁存器描述,现代 D 型触发器设计可以如下所示。这里一共使用了5个NMOS和fice PMOS;与 Classical 相比,节省了大量面积。反转主/从顺序将创建一个相同大小的负沿触发器。
我只是展示最小的设计。设计可以非常基于设计要求、允许的标准单元库、重置/预设功能或其他原因。
这里有一些基本假设已在另一篇文章中介绍(我现在找不到)。
如果你计算放置的逻辑元件和时钟逻辑的总数(FF 的总出货量),它们可能会出现在处理器和微处理器、英特尔、DEC 等中。这表现为你最终得到一小部分负责设计的人员/团队涵盖了数十年,但内部运作的细节并不多。
相反,您有许多不同的团队在处理 ASIC 流程,项目更多但相应的数量更少。
大多数处理器设计实际上不是正边沿或负边沿时钟,而是使用双锁存器、NOC(非重叠时钟)互补时钟方案设计的。
所以你最终得到一个输入->(逻辑云)->时钟锁存器->逻辑云->!时钟方案的锁存器。这是内部填充逻辑的主从FF的规范形式。
这种设计方法有几个优点,但也有额外的复杂性。
另一个不幸的是,大多数大学都没有教授这种设计方法。所有 Intel x86 设计都属于此类(不得将接口的外部操作与内部操作混为一谈)与他们为手机设计的著名的可综合 SOC 内核。
在“Dally, William J., and John W. Poulton”中可以找到关于这方面的精彩论述。数字系统工程。剑桥大学出版社,1998。第 9.5 节讨论“开环同步定时”<-章节标题。但是引用“然而,边缘触发时序很少用于高端微处理器和系统设计,主要是因为它导致最小周期时间取决于时钟偏差”。
是的,一个完全迂腐的答案。但是一个鲜为人知的重要方法,考虑到这些设计中有多少个晶体管(很多很多)。
当前 CMOS 技术的性能(在功率/面积/速度/成本方面)似乎对所使用的触发方案不敏感。
我无法严格证明上述陈述,因为它需要大量的初步知识和研究,甚至证明的摘要也可能太长而无法回答。据我所知,没有区别,因此让我假设是这种情况。
我要么不知道您关于触发器通常在时钟的正沿触发的说法是否正确(我相信它是正确的)。让我假设这对于以下讨论也是正确的。
在上述所有假设下,我只看到两种可能性:
为了了解上升沿触发何时成为标准,我决定跟随英特尔 CPU时钟方案的演变:
似乎 Intel 是从下降沿触发开始的(如果这个术语可能完全适用于最早的 CPU),但从 386 开始切换到上升沿触发。
8086 使用 HMOS 技术(某种耗尽负载 NMOS 逻辑),而 80386 是 CHMOS(它是一种 CMOS)。看起来正沿触发的采用与 CMOS 技术的采用同时发生。我们假设 CMOS 对上升沿触发没有任何优势,因此这种约定似乎是任意的。
但是,我们必须牢记三点:
显然,还有进一步研究的空间。待续...