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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

静态时序分析(STA)基础(转)
第⼆章数字集成电路的静态时序分析[微软中国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:
clip_image014
图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 端信号输出的延时t log ic 是逻辑信号在组合逻辑电路
中的延时,则tR1 + t log ic 是逻辑信号从R1到R2的总延时。

那么T1 + tR1 + t log ic 是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式在集成电路中的所有有信号传播关系的时序逻辑单元之间都要满⾜由
于tR1、tsetup、及δ相对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是最快情况下的组合逻辑时延是l tlogicmin。

与建⽴时间时延约束要求寻找最长路径不同这⾥要寻找最短路径⼀个数字集成电路要满⾜其时钟频率正常⼯作就必须满⾜以上两个约束⽽对建⽴时间和保持时间约束进⾏检查的⽅法称为“时序分析”。

相关文档
最新文档