为什么时钟树上要用clock inverter(min pulse width check)?

min pulse width定义
最小脉冲宽度检查可确保时钟信号的宽度足够宽,以便采集到正确的数据,保证设计功能。即为了获得稳定的输出,需要确保时钟信号宽度至少达到某个“最小宽度”。比如lib中就对寄存器flipflop的clk pin有min pulse width的check。
high pulse widthif you need a formal definition of the term, it is the interval between the rising edge of the signal crossing 50% of vdd and the falling edge of the signal crossing 50% of vdd.
low pulse widthif talking in terms of low signals, it is the the interval between falling edge of the signal crossing 50% of vdd and the rising edge of signal crossing 50% of vdd.
以下图为例,一个时钟信号clk,经过六级普通buffer(各自的rise time和fall time是不相同的)到达一个寄存器的ck 端。我们来计算下high pulse width,low pulse width以及判断是否存在min pulse width违例(uncertainty:80ps reg ck pin requirement min pulse width:0.420ns)。
high pulse width = 0.5 + (0.049-0.056) + (0.034 -0.039) + (0.023-0.026) + (0.042-0.046) + (0.061 – 0.061) + (0.051-0.054) = 0.478ns
low pulse width = 0.5 + (0.056 – 0.049) + (0.038 – 0.034) + (0.026 – 0.023) + (0.046 – 0.042) + (0.061 – 0.061) + (0.054 – 0.051) = 0.522ns
high pulse width = 0.478-0.080 = 0.398ns (小于0.420ns)
因此, 存在min pulse width violation 。
min pulse width检查方式
liberty文件liberty文件中对寄存器的clk pin和reset pin均有一个默认的min pulse width check值。在sta分析时工具会自动载入进行check。如图1所示,index_1为input transition。
图1 lib中min_pulse_width属性定义
sdc约束除了采用lib文件中默认的min pulse width值check外,我们还可以通过如下sdc命令来设置特殊的约束条件。
set_min_pulse_width -high 2 [get_clocks clk]
set_min_pulse_width -low 1 [get_clocks clk]
理想clock buffer/inverter的特性
equal rise and fall timesless delay variations with pvt and ocvclock buffer能够驱动较长的net以及更多的fanout普通buffer如何导致pulse width violation?
图2显示了wp = 100nm&wn = 100nm的buffer电路的示意图。β比率(pmos的宽度与nmos的宽度的比率)由于nmos的迁移率高于pmos,因此上升时间大于下降时间。这个结论是根据电流公式得出的,不懂的请移步模拟电路查阅。
图2 unbalanced buffer电路原理图
这里的每个buffer都需要更多的时间来充电(相比放电过程)。输入为占空比为50%的周期为4ns的脉冲信号。当时钟信号通过buffer chain传播时,脉冲宽度如下图4所示减少相当多。最后一个buffer的输出具有相同的周期,但占空比发生了变化。在最坏的情况下,这种情况可能会小于设计所需的脉冲宽度(最小脉冲宽度)。
图3 unbalanced buffer chain
图4 pulse width reduction
balanced buffers have equal rise and fall time
为了使得buffer的上升和下降时间一致,pmos的宽度应该约为nmos的两倍(具体倍数关系取决于工艺)。balance buffer电路结构图如图5所示。图6为一堆balanced buffer级联的buffer chain的输出波形。从输出波形看到,当我们在clock path上使用这种balanced buffer,输出时钟信号周期未发生变化且占空比仍然为1:1,即不会出现pulse width violation。
图5 balance buffer电路结构图
图6 balanced buffer chain 输出波形
unbalanced inverter有没有min pulse width问题?
如果在时钟路径中使用偶数个反相器,一对反相器上升和下降时间会相互补偿,所以脉冲宽度并不会改变。所以反相器输出不会导致脉冲宽度违规。
图7所示为一个反相器的电路结构图。其中wp = 100nm,wn = 300nm。根据p管和n管的尺寸,我们得知上升时间比下降时间小得多。
图7 unbalanced 反相器原理图
图8所示为一个十级反相器级联的电路图。图9为第九级和第十级反相器输出波形图。从图中可以得知,unbalance inverter同样也不会导致min pulse width问题。
图8 unbalanced inverter chain
图9 第九级,第十级反相器输出波形图
所以,在做时钟树综合时,我们往往选用clock inverter来长clock tree。

老龄化社会催生的跌倒检测报警系统的设计
智能语音的落地,分享智能语音的产业观察
执法证据保全系统|智证据DW-S404
如何鉴别轻触开关质量
海拉为新款大众途锐生产LED矩阵头灯
为什么时钟树上要用clock inverter(min pulse width check)?
TIA Portal Test Suite Advanced介绍
微雪电子USB AVR JTAG ICE XPII下载器简介
人工智能正如火如荼 首届Arm人工智能开发者全球峰会吸引众多AI开发者
光伏电池供应商爱旭股份发布2021年报
德国Sypro Optic公开超小型LED投影仪性能指标
关于单块效果器中的模拟延迟和数字延迟
东芝推出搭载兼容NFC论坛类型3标签的有线接口的标签芯片
2022亚太区企业存储关键趋势展望
本田智能汽车为智能玻璃变色车窗申专利:电流通过时会变暗
全球半导体业在连续高涨两年之后开始回调
玄铁910:端云融合,“双剑合璧”解决算力难题
华为mate10什么时候上市?麒麟970+徕卡四摄,匹敌iphone8,华为mate10足以让你惊艳
中国联通与中国电信5G网络共建共享一周年工作成果
以太坊是目前市值上最大的竞争币