2.数字集成电路基础(2)STA 静态时序分析

一、概念

建立时间:触发器(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 ),则会导致采样的数据可能会出错。

再介绍几个关于时序的概念:

1.*时钟偏移 (clock skew):*由于路径延迟,同一个时钟信号到达两个不同的寄存器之间的时间差值,根据差值可以分为正偏移和负偏移。

2.时间裕量(setup/hold slack):如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

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

二、时序路径分析

分析Setup需要分析数据路径和时钟路径,下面结合一个比较经典的模型来看看我们在进行电路设计的时候要如何去满足建立时间和保持时间。

时序路径分析时常用的变量:

Tclk : 时钟周期
Tskew : Tclk2相对于Tclk1时钟线上的延时,Tskew=Tskew2-Tskew1
Tcq: DFF1触发器从时钟端C端到Q端的时延
Tcomb : 数据信号经过组合逻辑电路的延时(例如缓冲器)
在这里插入图片描述
图中,Tcomb表示两个触发器之间组合逻辑电路延时(可变,可通过电路优化);Tskew1,Tskew2分别为CLK1处相和CLK2处对于原始CLK的时钟偏移,clock skew主要是由于时钟线存在长度而导致的时钟偏移;Tco表示数据从到输出端的最小时间间隔(属于器件延时);
假设D触发器的建立时间为Tsetup,保持时间为Thold,则存在如下关系式:
       Tsetup < Tclk+Tskew-Tcq-Tcomb (1)
      Thold < Tcq+Tcomb-Tskew (2)

建立时间约束:
  (1)式的思想其实就是 在第二个时钟沿(数据采样边沿)来临之前,数据稳定的时间一定要大于等于建立时间。因此在一个时钟周期内,数据稳定的时间为Tclk-Tcq-Tcomb,因为时钟也存在偏移,因此要把这个时钟偏移加上,于是最后数据稳定的时间为Tclk+Tskew-Tcq-Tcomb,满足这个稳定时间大于建立时间即可。
保持时间约束:
  (2)式的思想为 在第二个时钟沿(数据采样边沿)来临之后,数据稳定的时间一定要大于等于保持时间。因此在时钟沿来临之后,数据稳定的时间为Tco+Tcomb,再减去时钟偏移则为Tco+Tcomb-Tskew,满足这个稳定时间大于等于保持时间即可。

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

三、时序违例的解决方法

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

(1)Setup time violation solution:调整上述公式中的变量:Tclk, Tcomb,Tskew
  - 1.增大Tclk:就是降低数字系统的工作频率 (很多产品等级,是根据频率来分的;品质好的芯片,频率高,价格贵)
 -2.减少Tcomb:
    从数字电路逻辑功能设计的角度看
      在组合电路之间插入寄存器,增加流水线(pipeline);
      在不改变逻辑功能的前提下,对组合逻辑电路进行优化;
      减少扇出或者负载;
    从数字物理版图实现的角度看
      更换速度更快的标准单元(HVT – High Voltage Threshold, SVT – Standard Voltage Threshold)
      更换驱动能力更强的标准单元(X2, X4)
      跟换阻值更低的金属层以减少标准单元电路的负载和金属线网的延迟
 -3.增加Tskew
    在时钟路径上,插入buffer,增加时钟路径的延迟,但是不能影响hold timing。
(2)hold time violation solution:
  -1.增大Tcomb
    在组合电路的数据传输路径上,插入延迟单元(buffer),增加组合逻辑延迟;但是当组合逻辑延时增加时,setup time可能会出现违例。这时候就需要做平衡(balance)。由此可以看出setup和hold time是相互制约的。
  -2.减小Tskew
    时钟树调整,做好clock tree balance,hold就容易收敛。因为hold time与时钟周期没有关系

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值