缓冲器本质上就是两个背靠背连接的反相器。那么使用缓冲器或反相器进行时钟树综合(CTS)究竟有何差异?其优缺点是什么?后端设计工程师在构建时钟树时会考虑哪些因素?本文将解答这些问题。
基于反相器的时钟树:
为简化讨论,假设我们仅使用单一型号的反相器(例如驱动强度X)构建时钟树,且所有反相器等距排列(如图1所示)。
它的优势就是:
时钟信号的高电平脉宽和低电平脉宽完全对称
。这对时钟信号至关重要,尤其是在正负边沿触发触发器高度交互的SoC设计中。
基于缓冲器的时钟树:
理论上可用两个相同反相器构建缓冲器,但标准单元库设计通常采用不同方案:
- 1、为节省面积,第一级反相器驱动强度较低,且与第二级反相器距离极近
- 2、第二级反相器具有更强驱动强度
关键问题:
由于两级反相器间走线极短,第一级反相器的延迟主要受第二级反相器的输入电容影响(因为走线极短,可忽略线电容)。而第二级反相器的负载包含走线电容和下一级缓冲器的输入电容,进而导致: 信号上升/下降转换时间(transition)不对称,从而影响了时钟信号的高低电平脉冲宽度
; (补充:那缓冲器时钟树有什么优点呢?答案就是,缓冲器相比反相器具有更好的驱动能力,这在设计中有助于节省面积和功耗)
因此,对于时钟高电平和低电平脉冲宽度有非常严格要求的电路,人们可能会倾向于使用基于反相器的时钟树而不是基于缓冲器的时钟树。
缓冲器方案的优化:
我们能否做些什么来让基于缓冲器的时钟树也能工作呢?答案是肯定的!
如果我们平衡第一个反相器所看到的负载和第二个反相器所看到的负载,我们或许能够实现上升时间和下降时间的相等,从而使得时钟转换信号的时钟高电平和低电平脉冲宽度相等。
在这个近似中,我们将导线以 T 模型的形式进行建模。反相器则使用分布式 RC 模型进行建模,其中包括它的“导通”电阻和扩散电容。
为了使高低电平的脉冲宽度相等,第一个反相器观察到的 RC 延迟必须等于第二个反相器的 RC 延迟。
R c h n , 1 ( C D , 1 + C G 2 ) = R c h p , 2 ( C D , 2 + C w i r e + C G , 1 ) + R w i r e / 2 ( C w i r e + C G , 1 ) + R w i r e / 2 ( C G , 1 ) Rchn,1 (CD,1 + CG2) = Rchp,2 (CD,2 + Cwire + CG,1) + Rwire/2 (Cwire + CG,1) + Rwire/2 (CG,1) Rchn,1(CD,1+CG2)=Rchp,2(CD,2+Cwire+CG,1)+Rwire/2(Cwire+CG,1)+Rwire/2(CG,1)
如果这个方程成立,可以说在相当大的程度上高低脉冲宽度会近似相等。导线的电阻和电容是其长度的函数,标准单元库设计者可以将这一点传达给后端设计者。
虽然大多数标准单元库供应商提供对称缓冲器,但缓冲器上升和下降延迟可能存在几皮秒的差异,这会导致高低脉冲宽度不同。在更深的时钟树中,占空比的变化会更加显著!
一种简单的解决方法是在中点插入一个反相器到由缓冲器构成的时钟树中(如下图)。然而,主要挑战在于找到这个中点。这确保了到达触发器漏极引脚的时钟的高低脉冲宽度确实相同!
原文链接如下,如果有🪜的小伙伴可以直接拜读原文:
反相器与缓冲器时钟树区别
代码与文字齐飞,逻辑共创意一色!若我的文章让你会心一笑,点个赞我们一起笑谈"IC人生"!