原创 静态时序分析(StaticTimingAnalysis)基础推荐(2)(转)

2007-1-26 08:40 1829 5 5 分类: PCB

n   Interconnect Data:


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


连线延迟依照布局与绕线(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就会自动给定了。




images200571613511728150.jpg

图十五


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就会自动给定。。


EDA中国门户网站xDr8i,XyI%`


点击看大图

图十八




点击看大图

图十九


由于每个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)。




images20057161831477672.gif

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




images20057161835615969.gif



点击看大图

图二十四


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




images20057161851543369.gif



点击看大图

图二十五


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




images20057161882716596.jpg

图二十二六


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


  


images2005716189259185.gif

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



gXjR,fG.^-I*]8R~/npostcar


images20057161892874797.jpg

图二十七


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


images20057161811615047.gif



点击看大图

图二十八


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




images200571618114691034.gif



点击看大图

图二十九


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




images200571618143719901.gif



点击看大图

图三十


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




images200571618155066958.gif



images20057161816446249.jpg

图三十一


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


  


images200571618163375200.gif

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




images200571618164749196.jpg

图三十二


12.      假设前级Flip-Flop的讯号由0变1,计算第3条Path终点的AT。 EDA中国门户网站Av~b+tr r [5c4b


images200571618171750764.gif



点击看大图

图三十三


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




images200571618231681359.gif



点击看大图

图三十四


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


  


images200571618235495691.gif



点击看大图

图三十五


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


  


images20057161825221591.gif



点击看大图

图三十六



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


  


images20057161826387872.gif

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


  


点击看大图

图三十七


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



总结


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

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条