分享

静态时序分析的理解(建立时间、保持时间)

 雨在路上 2022-06-15 发布于广东

一、概念

建立时间:触发器(DFF)时钟上升沿到来之前,数据需要保持稳定的最小时间间隙就是建立时间。简而言之,时钟边沿触发前,要求数据必须存在一段时间, 这就是器件需要的建立时间。如不满足建立时间,这个数据就不能被这一时钟打入触发器
保持时间:触发器(DFF)时钟上升沿到来之后,数据需要保持稳定的最小时间间隙就是保持时间。简而言之,时钟边沿触发后,数据也必须保持一段时间,以便能够稳定读取, 这就是器件需要的建立时间。如果hold time 不够,数据同样不能被打入触发器。
在这里插入图片描述
   通过时序逻辑的Setup和Hold作约束,即可保证时钟边沿采集数据的稳定状态,从而达成消除毛刺的目的。
  我们都知道数据是在时钟信号上升沿的那一瞬间被打进触发器从而被采样的,那么我们只需要在时钟上升沿的那一瞬间或者那一小段时间保持稳定不就行了?理论上这么想是没问题的,但对于实际工程来讲,这是几乎不可能达到的。
  要分析这个问题,我们不妨先看一下D触发器里面到底长啥样,下图是经典上升沿D触发器的内部结构图:
在这里插入图片描述
  与非门G1到G4是维持阻塞电路,G5和G6构成一个RS触发器用于数据的锁存。如有不明白RS触发器的真值表和工作机理的可以在网上找到资料,这里不再累述。
  图中可以看到,时钟信号直接作用在了G2和G3上面,也就意味着G2和G3是真正的采样传输门电路,输入信号应该要正确的被G2和G3采样后传输至后面的RS触发器。我们注意到,数据在传输到G3之前经过了G4,传输至G2之前经过了G4和G1。我们知道,实际情况中信号经过门电路是有延迟的。所以输入信号在到达G2和G3之前经过了G1和G4的延迟,因此就引入了建立时间的概念:建立时间就是为了补偿信号在G1和G4上的延迟。也就是数据在时钟沿来临之前,需要足够的建立时间让信号经过G1和G4到达G2和G3。触发器的建立时间主要取决于G1和G4.
  那么保持时间呢?一样的,上升沿来临时,数据通过G2和G3传输至后面的RS触发器,但G2和G3也会存在延时。因此又引入了保持时间的概念:保持时间就是为了补偿信号在G2和G3上的延迟。也就是数据在时钟沿来临之后,需要足够的保持时间让信号正确的从G2和G3传输至RS触发器。触发器的保持时间主要取决于G1到G4,进而可以推断出,一般D触发器的保持时间比建立时间要长。
  建立时间和保持时间存在的意义就是为了使数据随时钟信号被准确采样。如果不满足建立时间和保持时间会怎样?很简单,因为在传输的过程中数据并不是处于稳定状态而处于亚稳态区(metastability ),则会导致采样的数据可能会出错。

时钟偏移 (clock skew)由于路径延迟,同一个时钟信号到达两个不同的寄存器之间的时间差值,根据差值可以分为正偏移和负偏移。
在这里插入图片描述
时间裕量(setup/hold slack)如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

最大时钟频率fmax:fmax = 1/Tmin    Tmin—— 最小时钟周期
   电路正常工作时,所允许的系统时钟脉冲频率最大值。下面会给出最大始终频率计算方法。
时钟抖动(clock jitter):指的是时钟周期的变化。指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。由于跟晶振本身的工艺有关,所以在设计中无法避免它能带来的影响,通产只能在设计中留有一定的margin。

二、时序分析

  分析Setup需要分析数据路径时钟路径,下面结合一个比较经典的模型来看看我们在进行电路设计的时候要如何去满足建立时间和保持时间。
在这里插入图片描述
  图中,Tcomb表示两个触发器之间组合逻辑电路延时(可变,可通过电路优化);Tskew1,Tskew2分别为CLK1处相和CLK2处对于原始CLK的时钟偏移,clock skew主要是由于时钟线存在长度而导致的时钟偏移;Tco表示数据从输入端到输出端的最小时间间隔(属于器件延时);两个D触发器均为上升沿触发。

  假设D触发器的建立时间为Tsetup,保持时间为Thold,则存在如下关系式:
       Tsetup < = Tclk+Tskew-Tco-Tcomb (1)
       Thold < = Tco+Tcomb-Tskew (2)
其中:
  Tclk : 时钟周期
  Tskew : Tclk2相对于Tclk1时钟线上的延时,Tskew=Tskew2-Tskew1
  Tco: DFF1触发器从D端到Q端的时延
  Tcomb : 数据信号经过组合逻辑电路的延时(例如缓冲器)

下图是这个模型的时序图,结合图四我们可以推导出这两个约束关系式。
在这里插入图片描述
建立时间约束:
  (1)式的思想其实就是 在第二个时钟沿(数据采样边沿)来临之前,数据稳定的时间一定要大于等于建立时间。因此在一个时钟周期内,数据稳定的时间为Tclk-Tco-Tcomb,因为时钟也存在偏移,因此要把这个时钟偏移加上,于是最后数据稳定的时间为Tclk+Tskew-Tdq-Tcomb,满足这个稳定时间大于建立时间即可。

  理论上能够承载的最大时钟频率为:f_max = 1/(Tsetup+Tco+Tcomb-Tskew)

保持时间约束:
  (2)式的思想为 在第二个时钟沿(数据采样边沿)来临之后,数据稳定的时间一定要大于等于保持时间。因此在时钟沿来临之后,数据稳定的时间为Tco+Tcomb,再减去时钟偏移则为Tco+Tcomb-Tskew,满足这个稳定时间大于等于保持时间即可。

  为什么计算的时候要取第二个时钟沿时刻来计算这些关系式,为什么不能取第一个是时钟沿呢?这是由于在第一个时钟上升沿通常是采集不到数据的,在Tclk1与Tclk2之间的时钟偏移Tskew通常可以通过做时钟树将其控制的很小,一般在ps级别,而在有效数据通过数据路径传输到D2时,还要经历器件延时、组合逻辑延时和线延时等过程,而在这个过程中Tclk2的第一个时钟边沿早已过去,因此只能在下一个时钟边沿采集数据。

如果setup time violation或者hold timeviolation应该怎么办?

  • Setup time violation solution:调整上述公式中的变量:Tclk, Tcomb,Tskew
      - 增大Tclk
        就是降低数字系统的工作频率 (很多产品等级,是根据频率来分的;品质好的芯片,频率高,价格贵)
     -减少Tcomb:
        从数字电路逻辑功能设计的角度看
          在组合电路之间插入寄存器,增加流水线(pipeline);
          在不改变逻辑功能的前提下,对组合逻辑电路进行优化;
          减少扇出或者负载;
        从数字物理版图实现的角度看
          更换速度更快的标准单元(HVT – High Voltage Threshold, SVT – Standard Voltage Threshold)
          更换驱动能力更强的标准单元(X2, X4)
          跟换阻值更低的金属层以减少标准单元电路的负载和金属线网的延迟
     -增加Tskew
        在时钟路径上,插入buffer,增加时钟路径的延迟,但是不能影响hold timing。

  • hold time violation solution:
      -增大Tcomb
        在组合电路的数据传输路径上,插入延迟单元(buffer),增加组合逻辑延迟;但是当组合逻辑延时增加时,setup time可能会出现违例。这时候就需要做平衡(balance)。由此可以看出setup和hold time是相互制约的。
      -减小Tskew
        时钟树调整,做好clock tree balance,hold就容易收敛。因为hold time与时钟周期没有关系

三、扩展等式关系

引入时间裕量,建立等式关系:
       Tsetup slack= Tclk+Tskew-Tsetup-Tco-Tcomb-Tnet    (1)
       Thold slack = Tco+Tcomb+Tnet-Thold-Tskew       (2)
其中:
  Tnet为走线的延时;
  Tsetup slack为建立时间裕量;
  Thold slack为保持时间裕量

对于有意义的时序约束,建立时间余量Tslack,setup和保持时间余量Tslack,hold都要大于0才行。故原有公式转化如下:

      Tclk > Tco+Tcomp+Tnet+Tsetup-Tskew    (1)

      Tco+Tcomp+Tnet > Thold+Tskew       (2)

为了得到更加简单的理解,我们按照常规,忽略Tnet和Tskew。原因在于Tnet,Tskew通常太小。
      Tclk > Tco+Tcomp+Tsetup   (3)

      Tco+Tcomp > Thold     (4)

(3)式表明,数据从第一个触发器采样时刻传到第二个触发器采样时刻,不能超过一个时钟周期!假如数据传输超过一个时钟周期,那么就会导致第二个触发器开始采样的时候,想要的数据还没有传过来。

对于(4)式两边同时加上Tsetup,得到(5):

      Tco+Tcomp+Tsetup > Thold+Tsetup    (5)

结合(3)式和(5)式,我们得到如下的式子:

      Thold+Tsetup < Tco+Tcomp+Tsetup < Tclk    (6)

Tco+Tcomp+Tsetup是指数据从第一级触发器采样瞬间开始,传输到第二级触发器并被采样的传输延时。我们简称为数据传输延时。

(6)式右侧Tco+Tcomp+Tsetup< Tclk表明 :约定数据传输延时不能太大,如果太大(超过一个时钟周期),那么第二级触发器就会在采样的时刻发现数据还没有到来。
(6)式左侧Thold+Tsetup <Tco+Tcomp+Tsetup表明:约定数据传输延时不能太小。Thold+Tsetup的时间宽度叫做触发器的采样窗口,在窗口期内,D触发器是脆弱的,对毛刺没有免疫力的。假如数据传输延时特别小,那么就会发现,当第二级触发器开始采样的时候,第一级触发器的窗口期还没有结束!也就是说,如果这个时候输入端数据有变化,那么不仅第一级触发器处于亚稳态,第二级触发器也将处于亚稳态!

综上,可以知道,数据传输延时既不能太大以至于超过一个时钟周期,也不能太小以至于小于触发器采样窗口的宽度。这就是静态时序分析的内涵。

参考:https://www.sohu.com/a/339791710_505888
http://blog.sina.com.cn/s/blog_78e87ba10102x14t.html
https://blog.csdn.net/dongdongnihao_/article/details/80951413

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多