您的位置:技术中心首页 > 电路综合 >> 静态时序分析(Static Timing Analysis)基础

静态时序分析(Static Timing Analysis)基础 (2)

作者:未知   时间:2006-01-14 19:36:19  来自:我爱研发网  浏览次数:5519  文字大小:【】【】【

n   Interconnect Data:

在「什么是STA」段落的例子中,为了方便说明,我们并没有把逻辑闸和逻辑闸间的连线延迟(Interconnect Delay)考虑在内。事实上,许多DSM IC设计之时序表现是由连线延迟主导的,其重要性不容我们忽视。

连线延迟依照布局与绕线(P&R)前后有不同的考量。在布局与绕线前,元件在晶片中摆放的位置尚未确定,所以连线延迟是一个预估值。而在布局与绕线之后,连线延迟则是根据实际绕线计算出来的。对布局与绕线之前的连线延迟,通常是用Wireload Model来预估。Wireload Model根据晶片面积的预估大小及连线驱动元件数目(Fan-out)的多寡来决定连线的电阻和电容值,STA软体则利用这些电阻电容值计算出连线延迟。在布局与绕线之后,可以利用电阻电容萃取(RC Extraction)软体将绕线图形转换成实际的电阻电容电路,然后贴回(Back-annotate)STA软体计算连线延迟。

n Timing Constraints:

Timing Constraint为使用者所给定,用来检验设计电路时序的准则。其中最重要的一项就是时脉(Clock)的描述。对于一个同步电路而言,暂存器和暂存器之间的路径延迟时间必须小于一个Clock周期(Period),也就是说,当我们确认了Clock规格,所有暂存器间的路径的Timing Constraint就会自动给定了。

图十五

Clock规格包含波形、Latency及Uncertainty的定义。波形定义一个Clock的周期及讯号上升缘及下降缘的时间点。Latency定义从Clock来源到序向元件Clock输入端的延迟时间。Uncertainty则定义Clock讯号到序向元件Clock输入端可能早到或晚到的时间。

如果上面的文字让你有不知所云的感觉,那底下看图说故事的解说也许会让你有比较清晰的概念。在图十五的电路中,左边的正反器(Flip-Flop)在第一个Clock上升缘时会丢出资料,此资料会在第二个Clock上升缘让右边的Flip-Flop撷取。要分析右边的Flip-Flop能否正确撷取资料就必须知道第一个Clock上升缘到达节点C1的时间点和第二个上升缘到达节点C2的时间点。假设在时间点为0的时候,Clock讯号由S点出发,经过一段时间(source latency,1个时间单位,模拟晶片外的Clock延迟时间,例如板子上的绕线产生的讯号延迟时间)到达电路的Clock输入端点P,接下来再经过一段时间(晶片内Clock绕线造成的讯号延迟时间),Clock讯号分别到达C1和C2节点。如果电路已经进行布局与绕线,输入端点P到C1和C2的讯号延迟时间可由连线上的寄生电阻电容计算得来。比方说,经过计算发现讯号由P传递到C1需要1个时间单位,由P传递到C2需2个时间单位,则Clock讯号第一个上升缘到达C1和第二个上升缘到达C2的时间点就会如图十六下方两列所示,分别为时间点2和13(因为加上了1个时间单位的source latency)。

图十六

在布局与绕线之前,我们无法准确得知P到C1和C2的讯号延迟时间,仅能先做个预估。图十五的network latency及上文提到的Uncertainty就是用来做此种预估的。先假设我们拥有某种完美的布局与绕线软体可以让Clock输入端点P到所有Flip-Flop的Clock输入端的讯号延迟时间一模一样,那么我们只要知道这个讯号延迟时间就可以得到Clock讯号到达C1和C2的时间点了。这个讯号延迟时间可以藉由电路特性(如预估面积大小,Flip-Flop数目等)来做预估,而这个预估值就是所谓的network latency。如果这种完美的软体存在的话,那Clock的上升缘到达C1和C2的时间点就可以由Latency(source latency + network latency)计算出来。

很不幸的,世界上没有这么完美的软体,在布局与绕线后Clock输入端点P到所有Flip-Flop的Clock输入端的讯号延迟时间不会完全一样。也就是说Clock的某个上升缘不会同时到达C1和C2。因此我们要对上述的预估值做些修正,加入Uncertainty的描述来定义Clock上升缘左右移动的可能范围。在图十六中,Uncertainty为1个时间单位,所以Clock第一个上升缘会在时间点3(因为Latency为3)左右1时间单位范围内(也就是时间点2到时间点4)到达C1,。第二个上升缘则会在时间点12到14的范围内到达C2。

除了Clock之外,对于电路其他输出输入端点及其周边的环境(Boundary Condition)也要加以描述。在说明Boundary Condition之前,我们得对路径(Path)有更进一步的了解。上文曾提及STA会将电路中所有的Path找出来加以分析,但Path的定义是什么呢?

Path根据起点及终点可以分为4种:

1.          由Flip-Flop Clock输入到Flip-Flop资料输入(图十七左上)。

2.          由主要输入(Primary Input,简称PI)到Flip-Flop资料输入(图十七右上)。

3.          由Flip-Flop Clock输入到主要输出(Primary Output,简称PO)(图十七左下)。

4.          由主要输入到主要输出(图十七右下)。

当Clock规格确定了之后,第1种Path的时序限制(Timing Constraint)就自动的给定了。为了给定其他3种Path的时序限制,我们必须定义Boundary Condition。

一般来说,我们会定义下列的Boundary Condition:

1.          Driving Cell:定义输入端点的推动能力(图十八)。

2.          Input Transition Time:定义输入端点的转换时间(图十八)。

3.          Output Capacitance Load:定义输出负载(图十八)。

4.          Input Delay:输入端点相对于某个Clock领域的延迟时间。(图十九,Delayclk-Q + a)

5.          Output Delay:自输出端点往外看相对于某个Clock领域的延迟时间。(图十九,c)

在这些Boundary Condition定义之后,上述4种Path事实上都可看成是第1种Path(Flip-Flop到Flip-Flop)。也就是说,加上Boundary Condition后,只要Clock给定,所有Path的Timing Constraint就会自动给定。。


图十八

图十九

由于每个Path都有Timing Constraint,所以时序分析都能够进行。但在某些情况下,有些Path的分析可能没有意义,因此你会想忽略这些Path的分析。或是有些Path分析的方式不一样,你会想指定这些Path的分析方式。此时就要设定一些Timing Exception,如False Path和Multi-cycle Path等等来处理非一般性的时序分析。

STA流程及分析方式

STA的流程如图二十所示,而其分析验证的项目就是我们前文提及之时序检查相关的Timing Arc,如Setup Time、Hold Time等等。以下我们针对Setup Time举1实际范例来说明STA的分析方式。

图二十

n       Setup Time

设计电路如图二十一所示,时序模型(Timing Model)及时序限制(Timing Constraint)如下:

图二十一

  •          所有逻辑闸在输出讯号上升时最长的延迟时间为3ns,最短为2ns。
  •          所有逻辑闸在输出讯号上升时最长的延迟时间为2ns,最短为1ns。
  •          所有连线(Net)最长的延迟时间为2ns,最短为1ns。
  •          所有Flip-Flop Clock到Q的延迟时间为3ns。
  •          所有Flip-Flop的Setup Time为1ns(Ts)。
  •          所有Flip-Flop的Hold Time为1ns(Th)。
  •          Clock周期为14ns(Dclkp)。
  •          Clock source latency为2ns(Dclks)。
  •          Clock network latency为3ns(Dclkn)。
  •          Clock uncertainty为1ns(Dclku)。
  •          B及C的input delay皆为1ns(Da、Db、Dc)。
  •          Y的output delay为3ns(DY)。

接下来,我们以Step-By-Step的方式说明时序分析的方式。

1.          首先找出所有Timing Path,我们只列出具代表性的3条Timing Path来加以说明。

图二十二

2.          假设输入A讯号由0变1,计算第1条Path终点讯号到达的时间(Arrival Time简称AT)。

3.          假设输入A讯号由1变0,计算第1条Path终点AT。

图二十四

4.          计算第1条Path终点的需求时间(Required Time,简称RT)。

图二十五

5.          假设输入A讯号由0变1,计算第1条Path终点的Slack。Slack等于RT和AT的差值,对于Setup Time验证来说等于RT - AT,对于Hold Time验证来说等于AT - RT。在此Setup Time范例中,Slack为正,表示讯号实际到达Path终点时间比必须到达的时间还早,因此Timing是满足的。

图二十二六

6.          假设输入A讯号由1变0,计算第1条Path终点的Slack。Slack为正,因此Timing是满足的。

  

综合5和6,第1条Path的Timing是符合规格的,其Slack为4ns(取较差状况)。


图二十七

7.          假设前级Flip-Flop的讯号由0变1,计算第2条Path终点的AT。

图二十八

8.          假设前级Flip-Flop的讯号由1变0,计算第2条Path终点的AT。

图二十九

9.       计算第2条Path终点的RT

图三十

10.      假设前级Flip-Flop的讯号由0变1,计算第2条Path终点的Slack。Slack为负,因此Timing不满足。

图三十一

11.      假设前级Flip-Flop的讯号由1变0,计算第2条Path终点的Slack。Slack为负,因此Timing不满足。

  

综合10和11,第2条Path的Timing不满足,其Slack为-3。

图三十二

12.      假设前级Flip-Flop的讯号由0变1,计算第3条Path终点的AT。

图三十三

13.      假设前级Flip-Flop的讯号由1变0,计算第3条Path终点的AT。

图三十四

14.      计算第3条Path终点的RT。

  

图三十五

15.      假设前级Flip-Flop的讯号由0变1,计算第3条Path终点的Slack。Slack为负,因此Timing不满足。

  

图三十六

16.      假设前级Flip-Flop的讯号由1变0,计算第3条Path终点的Slack。Slack为负,因此Timing不满足。

  

综合15和16,第3条Path Timing不符合规格,其Slack为-4。

  

图三十七

综合上述分析结果,此电路的时序不符合规格,其Critical Path是Path3,Slack为-4。

总结

本文先对STA的概念做概念性的介绍,在下集的文章中,将对STA在实际IC设计流程中的应用举一范例说明,请各位拭目以待。

[1] [2] [3]
责任编辑:5life

更多相关 STA 时序分析 的文章

STA在芯片设计后端的应用 [2006-03-11]
静态时序分析在数字集成电路设计中的应用 [2006-03-11]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  STA在芯片设计后端的应用
  静态时序分析在数字集成...
  静态时序分析(Static T...
  Design Compiler FAQ
  利用Synopsys工具的高性...
  逻辑综合中对关键路径处...

栏目最新

更多相关链接

  STA在芯片设计后端的应用
  静态时序分析在数字集成...
  静态时序分析(Static T...
  Design Compiler FAQ
  利用Synopsys工具的高性...
  逻辑综合中对关键路径处...

热点文章

更多相关链接