分享

静态时序分析(STA)基础(转)

 学习吧万万 2015-01-27

第二章 数字集成电路的静态时序分析[微软中国1]

静态时序分析是大规模集成电路设计中非常重要的一个方面。在电路设计过程中,为得到一个最佳的电路设计,在结构逻辑、电路布局布线等方面时序分析起着关键性的作用。静态时序分析既要检验电路的最大延迟以保证电路在指定的频率下能够满足建立时间的要求; 同时又要检验电路的最小延迟以满足保持时间的需求。芯片的设计只有通过了静态时序分析才能真正完成甚至在从逻辑综合开始后的每一个步骤的结果都需要满足或部分满足时序的要求。

随着芯片尺寸的减小和集成度密集化的增强、电路设计复杂度的增加、电路性能要求的提高等,新的变化都对芯片内的时序分析提出了更高的要求。

2.1 数字集成电路中的时序问题

在一个同步时序电路中, 所有的触发器都由一个共同的外部时钟线控制,这条时钟线通常称为全局时钟(global clock)。为了实现严格的同步, 电路中的时序关系必须满足一定的条件。

2.1.1 建立时间和保持时间

一个下降沿触发的触发器,它有3个端口,即数据输入端(data input)、数据输出端(data output)和控制端(control input)。它的基本工作原理是:当控制端口由高电平变化为低电平时触发器对数据输入端进行采样,并把采样值送到数据输出端。当控制端口为其它情况时数据输出端维持原采样值。直至控制端口第二次由高电平变化为低电平它的时序关系如图2-1 所示:

实际上由于物理元器件本身的特性,为了保证采样过程的准确,数据输入端必须在实际采样时间到达之前就保持稳定,同样在采样时间之后数据输入端仍然必须维持一段时间。这其实就是通常所说的数据输入端相对于采样时刻的数据建立时间(setup time) 和数据保持时间(hold time) 。如上图所示当触发器类型确定以后建立时间和保持时间由该触发器本身的结构决定,一般来说它们是常数。

clip_image006[1]

图2-1 建立时间和保持时间

2.1.2 时钟偏斜(clock skew)

在一个典型的同步时序电路中触发器的数据输入端连接到一个组合逻辑电路的输出,而该组合逻辑电路的输入又连接到一些触发器的数据输出端。如图2-2所示:

clip_image012

图2-2 同步时序电路

从以上的同步时序电路上可以看到时钟到达R1 和R2 的时间Tclk1 和Tclk2 很可能是有差异的我们把时钟到达不同触发器的时间差定义为时钟偏斜(clock

Skew)用δ表示。公式为:

δ = Tclk1 Tclk2 2-1

时钟skew 在不同的时钟布线的情况下可正可负,如图2-3:

图2-3 时钟偏斜

时钟skew的正负这样定义,当时钟信号的传输方向和逻辑信号的传输方向一致时,skew为正如图2-3(a)。当时钟信号的传输方向和逻辑信号的传输方向相反时,skew为负如图2-3(b)。

2.1.3 时延约束

未命名

未命名2

自制图片(下文可参考)

(1) 建立时间约束

由前面对的分析知道,为了实现正确的同步,触发器的数据输入端必须满足建立时间的要求。图2-2中,触发器R1在时钟信号到达R1后输出逻辑信号,输出的逻辑信号在经过组合逻辑电路后到达触发器R2。逻辑信号达到R2的时刻应该比下一个周期时钟信号到达R2的时刻至少早一个建立时间的长度。用公式表示为:

(T2 + T) - (T1 + tR1 + tlogic) > tsetup (2-2)

式中T1 是本周期时钟信号到达R1的时刻,T2 是本周期时钟信号达到R2 的时刻,T是时钟周期,那么T2 + T是下一个周期的时钟信号到达R2的时刻。

tR1[微软中国2] 是R1中时钟到达后直到Q 端信号输出的延时 tlogic 是逻辑信号在组合逻辑电路中的延时,则 tR1 + tlogic 是逻辑信号从R1到R2的总延时。那么T1 + tR1 + tlogic 是R1输出信号到达R2的时刻。tsetup是建立时间,由于时钟偏斜δ= T2 -T1经过整理得到:

tlogic < T - tR1 - tsetup +δ 2-3)[微软中国3]

则:

T > tlogic + tR1 + tsetup - δ (2-4)

从上式可以看到集成电路的时钟周期受到的约束。研发人员希望芯片的时钟周期越小越好,这样可以提高芯片的频率,但是时钟周期受到了上式的限制。可以看到要缩短时钟周期就要减小组合逻辑和时序逻辑的延时,从另一个方面也说明了静态时序分析的重要性。

在实际电路中组合逻辑延时并不是固定值会跟据信号走过的路径不同而改

变如图2-9。在上2-4式中由于大于号在tlogic (组合逻辑延时)的左边为了在各种情况下都使该式成立。所以这里的tlogic是最长的组合逻辑延时是tlogicmax,也就是说从所有只经过组合逻辑连接到R2 的触发器出发找出一条延时最长的路径这条路径的时延必须满足R2的建立时间时延约束。

由于类似2-4式在集成电路中的所有有信号传播关系的时序逻辑单元之间都要满足由于tR1tsetupδ相对tlogicmax很小,因而在所有每两个时序逻辑单元之间的这样的最大路径中时延最大的一条就是限制时钟周期的最关键因素,我们一般称为“关键路径”。因此找出各个触发器间组合逻辑的最长路径成为静态时序分析工具需要解决的主要问题之一,有关关键路径的查找问题见第4章。

clip_image020[微软中国4]

图2-9 不同的内部路径

在时序分析工具中把自前级触发器出发的时钟[微软中国5] 到达后级触发器的时间称为“到达时间arrival time”,而把后一级触发器由于setuptime 的原因要求前级信号到达的时间成为“要求时间required time”。

这样把(2-3)变形为:

T +δ- tsetup > tR1 + tlogic (2-5)

其中等式左边就是要求时间 required time:

TR = T +δ- tsetup (2-6)

等式右边边就是到达时间 arrival time:

TA = tR1 + tlogic (2-7)

TR > TA,而一般把TR - TA的值称作slack,用来表明该时序路径上是否有违反建立时间约束的情况。当slack为正值时表明满足建立时间约束,当slack为负则不满足建立时间约束。对于不满足时序约束的情况称为timing violation

下图就是一个slack为负出现setup timing violation的例子:

clip_image022

图2-4 违反建立时延约束情况timing violation

(2) 保持时间约束

从前面对保持时间的定义中可以知道在时钟信号到达触发器并对触发器输入端采样之后,数据输入端仍然必须维持一段时间才能保证触发器输出端的正确输出。

由于一般情况下,后级触发器在本时钟边沿收到的前级触发器在上一个时钟边沿处发出的信号。所以为了保证后级触发器上本周期时钟到达后仍稳定一段时间,前级触发器在本时钟边沿发出的信号到达后级触发器的时间不能太早,前级触发器本时钟沿的输出信号应当在后级触发器本时钟沿到达后经过保持时间后才到达后级触发器。用公式表示为:

T1 + tR1 + tlogic > T2 + Thold (2-8)[微软中国6]

式中左边的T1 + tR1 + tlogic 是R1输出信号到达R2的时刻,右边为本周期时钟到达R2的时刻加上一个保持时间,经过整理可以得到:

δ < tR1 + tlogic [微软中国7] - Thold (2-9)

从上式中可以看到当δ为正时它一定要小于tR1 + tlogic - Thold ,而当δ 为负时 T > tlogic + tR1 + tsetup - δ,负值δ会引起时钟周期变大而影响芯片性能。所以在集成电路设计中总是希望使同一时钟信号到达所有时序逻辑的时间一致,使δ尽可能的接近零,这样就可以避免上述问题。

在保持时间约束的检查中到达时间为:

TA = tR1 + tlogic

而要求时间为

TR =δ + Thold

这里要求TA > TR 。另外需要强调的是,一般情况下建立时间是在下一个时钟钟边沿处比较,而保持时间是与两个触发器的同一个时钟边沿之比较。如下图所示:

clip_image024

图2-5 建立时间检查和保持时间检查

由于保持时间时延约束关心的是触发器的当前输入信号稳定保持一段时间。强调输入端的下一个信号的到达不能早于这段时间。这就使得tlogic的定义与其在建立时间约束有明显的不同。这里的tlogic指的是输入端变化最早到达的时间而不是输入端信号的最迟到达的时间。所以这里的tlogic是最快情况下的组合逻辑时延是ltlogicmin与建立时间时延约束要求寻找最长路径不同这里要寻找最短路径一个数字集成电路要满足其时钟频率正常工作就必须满足以上两个约束而对建立时间和保持时间约束进行检查的方法称为“时序分析”。



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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多