0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:吾爱IC社区 作者:芯农民 2023-06-29 16:42 次阅读

Min pulse width定义

最小脉冲宽度检查可确保时钟信号的宽度足够宽,以便采集到正确的数据,保证设计功能。即为了获得稳定的输出,需要确保时钟信号宽度至少达到某个“最小宽度”。比如lib中就对寄存器Flipflop的CLK pin有min pulse width的check。

  • High pulse width

If 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 width

If 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 times
  • Less delay variations with PVT and OCV
  • Clock 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。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5327

    浏览量

    120055
  • SDC
    SDC
    +关注

    关注

    0

    文章

    48

    浏览量

    15528
  • VDD
    VDD
    +关注

    关注

    1

    文章

    311

    浏览量

    33123
  • NMOS管
    +关注

    关注

    2

    文章

    120

    浏览量

    5398
  • PMOS管
    +关注

    关注

    0

    文章

    82

    浏览量

    6618
收藏 人收藏

    评论

    相关推荐

    cadence16.6----------Check Bus width mismatch

    ERROR(ORCAP-2207): Check Bus width mismatch我想问下这是怎么回事,要怎么定位?
    发表于 10-30 15:38

    Check Bus width mismatch

    用cadence画原理图进行drc检查的时候出去这个error,Check Bus width mismatch,我已经把总线都删了,还出现这个问题,求问怎么办?
    发表于 04-24 12:35

    TL494 Pulse-Width-Modulation C

    of a pulse-width-modulation control,these devices offer the systems engineer the flexibility to tailor ORDERING INFORMATIONthe powe
    发表于 12-12 00:10 18次下载

    LM5021,off-line pulse width mo

    The LM5021 off-line pulse width modulation (PWM) controllercontains all of the features needed
    发表于 09-29 15:01 16次下载

    TL598,pdf,(PULSE-WIDTH-MODULAT

    The TL598 incorporates all the functions required in the construction of pulse-width-modulated (PWM
    发表于 09-29 00:02 33次下载

    TL1451A,pdf(Dual Pulse-Width-M

    of two pulse-width-modulation (PWM) control circuits. Designed primarily for power-supply control, the TL1451A contains an on-chip 2.5-V
    发表于 10-05 23:01 32次下载

    Pulse Width Modulator circuits

    Pulse Width Modulator circuits:Couple Notes:The ic used is a CMOS type MC14093a quad 2-input NAND
    发表于 03-14 08:31 1799次阅读
    <b class='flag-5'>Pulse</b> <b class='flag-5'>Width</b> Modulator circuits

    脉宽调制器工作在不同层次的频率和功耗-Pulse-Width

    Abstract: Build a general-purpose pulse-width modulator using three op amps from a quad-op-amp
    发表于 05-03 14:33 634次阅读
    脉宽调制器工作在不同层次的频率和功耗-<b class='flag-5'>Pulse-Width</b>

    脉宽调制器工作在不同层次的频率和功耗-Pulse-Width

    Abstract: Build a general-purpose pulse-width modulator using three op amps from a quad-op-amp
    发表于 05-06 10:51 892次阅读
    脉宽调制器工作在不同层次的频率和功耗-<b class='flag-5'>Pulse-Width</b>

    TMS320x28xx,28xxx_High-Resolution_Pulse_Width_Modulator(HRPWM)Reference_Guide

    This document describes the operation of the high-resolution extension to the pulse width modulator (HRPWM).
    发表于 01-19 17:01 27次下载

    Pulse Width Modulation

    Pulse Width Modulation.多种集合,符合热爱PCB绘图的学习者的胃口,喜欢的朋友下载来学习。
    发表于 03-21 15:14 0次下载

    PULSE WIDTH VHDL程序

    PULSE WIDTH VHDL程序,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-11 11:55 0次下载

    什么是Min Period检查?

    Period检查? 在.lib中,触发器、latch、Memory这些时序期间的clock input pin上会定义min_period属性来规定它上面时钟的最小周期(也就是最高频率),例如: pin
    的头像 发表于 06-17 14:16 1468次阅读

    时序分析概念min pulse width介绍

    今天我们要介绍的时序分析概念是 **min pulse width** ,全称为最小脉冲宽度检查。这也是一种非常重要的timing arc check,经常用在时序器件或者memory
    的头像 发表于 07-03 14:54 2700次阅读
    时序分析概念<b class='flag-5'>min</b> <b class='flag-5'>pulse</b> <b class='flag-5'>width</b>介绍

    时钟子系统中clock驱动实例

    clock驱动实例 clock驱动在时钟子系统中属于provider,provider是时钟的提供者,即具体的clock驱动。
    的头像 发表于 09-27 14:39 769次阅读
    <b class='flag-5'>时钟</b>子系统中<b class='flag-5'>clock</b>驱动实例