静态时序分析经典[整 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《静态时序分析经典[整 .pdf》由会员分享,可在线阅读,更多相关《静态时序分析经典[整 .pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、静态时序分析(Static Timing Analysis)基础及应用 陈麒旭前言 在制程进入深次微米世代之后,芯片(IC)设计的高复杂度及系统单芯片(SOC)设计方式兴起。此一趋势使得如何确保IC 质量成为今日所有设计从业人员不得不面临之重大课题。静态时序分析(Static Timing Analysis简称 STA)经由完整的分析方式判断 IC 是否能够在使用者的时序环境下正常工作,对确保 IC 质量之课题,提供一个不错的解决方案。然而,对于许多IC 设计者而言,STA 是个既熟悉却又陌生的名词。本文将力求以简单叙述及图例说明的方式,对STA的基础概念及其在IC 设计流程中的应用做详尽的介
2、绍。什么是 STA?STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。以分析的方式区分,可分为 Path-Based 及 Block-Based 两种。先来看看 Path-Based 这种分析方式。如图一所示,信号从A点及 B点输入,经由4 个逻辑闸组成的电路到达输出Y点。套用的 Timing Model 标示在各逻辑闸上,对于所 有 输 入 端 到输 出端 都可 以找 到 相 对 应 的延 迟时 间。而 使用 者给 定 的 Timing Constraint为:1.信号 A到达电路输入端
3、的时间点为2(AT=2,AT 为 Arrival Time)。2.信号 B到达电路输入端的时间点为5(AT=5)。3.信号必须在时间点10 之前到达输出端 Y(RT=10,RT 为 Required Time)。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 37 页 -现在我们针对 P1及 P2两条路径(Path)来做分析。P1的起始点为 A,信号到达时间点为 2。经过第 1 个逻辑闸之后,由于此闸有2 单位的延迟时间,所以信号到达此闸输出的时间点为 4(2+2)。依此类推,信号经由 P1到达输出 Y的时间点为 7(2+2+3)。在和上述第三项Timing Constraint
4、比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。按照同样的方式可以得到信号经由路径B到达输出 Y的时间点为 11(5+1+3+2),照样和上述第三项Timing Constraint比对,我们可以得知对 P2这个路径而言,Timing是不满足使用者要求的。对图一的设计而言,总共有6 个信号路径。对于采用Path-Based 分析方式的 STA软件来说,它会对这6 个信号路径作逐一的分析,然后记录下结果。IC设计者藉由检视其分析报告的方式来判断所设计的电路是否符合给定的Timing Constraint。由于最常用来做静态时序分析验证核可(STA Signoff
5、)的EDA软件PrimeTime?采用Path-Based 的分析方式,所以本文将以Path-Based 的分析方式介绍为主。再来看看 Block-Based 的分析方式。此时时序信息(Timing Information)的储存不再是以路径为单位,而是以电路节点(Node)为单位。由Timing Constraint我们仅能得知 A节点的 AT为 2,B节点的 AT为 5 以及 Y节点的 RT为 10。Block-Based 的分析方式会找出每个节点的AT和 RT,然后比对这两个数值。当 RT的值大于 AT时表示信号比 Timing Constrain中要求的时间还早到达,如此则 Timin
6、g 是满足的,反之则不满足。STA资料准备 在做 STA之前,我们必须对其准备工作有充分的了解。STA所需的资料如图三所示,以下我们分项说明。其中 Design Data 部分,由于 Block Model 和 STA软件相关性太高,我们不在此加以说明,请直接参阅您STA软件的使用手册。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 37 页 -图三 Library Data:STA所需要的 Timing Model 就存放在标准组件库(Cell Library)中。这些必要的时序信息是以Timing Arc 的方式呈现在标准组件库中。Timing Arc 定义逻辑闸任两个端点之
7、间的时序关系,其种类有Combinational Timing Arc、Setup Timing Arc、Hold Timing Arc、Edge Timing Arc、Preset and Clear Timing Arc、Recovery Timing Arc、Removal Timing Arc、Three State Enable&Disable Timing Arc、Width Timing Arc。其中第 1、4、5、8项定义时序延迟,其它各项则是定义时序检查。图四 Combinational Timing Arc是最基本的 Timing Arc。Timing Arc如果不特别宣告
8、的话,就是属于此类。如图四所示,他定义了从特定输入到特定输出(A到 Z)的延迟时间。Combinational Timing Arc的 Sense有三种,分别是 inverting(或 negative unate),non-inverting(或 positive unate)以及 non-unate。当 Timing Arc 相关之特定输出(图四Z)信号变化方向和特定输入(图四A)信号变化方向相反(如输入由 0 变 1,输出由 1 变 0),则此 Timing Arc 为 inverting sense。反之,输出输入信名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 37 页
9、 -号变化方向一致的话,则此Timing Arc为 non-inverting sense。当特定输出无法由特定输入单独决定时,此Timing Arc为 non-unate。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 37 页 -图五图六 图七 图八 图九 图十 图十一 图十二 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 37 页 -其它的 Timing Arc说明如下。Setup Timing Arc:定义序向组件(Sequential Cell,如Flip-Flop、Latch 等)所需的 Setup Time,依据 Clock 上升或下降分为 2 类(
10、图五)。Hold Timing Arc:定义序向组件所需的 Hold Time,依据 Clock 上升或下降分为 2 类(图六)。Edge Timing Arc:定义序向组件 Clock Active Edge到数据输出的延迟时间,依据 Clock 上升或下降分为 2 类(图七)。Preset and Clear Timing Arc:定义序向组件清除信号(Preset或 Clear)发生后,数据被清除的速度,依据清除信号上升或下降及是Preset 或 Clear 分为 4 类(图八)。这个Timing Arc通常会被取消掉,因为它会造成信号路径产生回路,这对 STA而言是不允许的。Recov
11、ery Timing Arc:定义序向组件 Clock Active Edge之前,清除信号不准启动的时间,依据Clock 上升或下降分为 2 类(图九)。Removal Timing Arc:定义序向组件Clock Active Edge之后,清除信号不准启动的时间,依据Clock 上升或下降分为 2 类(图十)。Three State Enable&Disable Timing Arc:定义 Tri-State组件致能信号(Enable)到输出的延迟时间,依据Enable 或 Disable 分为 2 类。(图十一)Width Timing Arc:定义信号需维持稳定的最短时间,依据信号维
12、持在0 或1 的位准分为 2 类。(图十二)上文列出了标准组件库内时序模型的项目,但对其量化的数据却没有加以说明。接下来,我们就来看看到底这些时序信息的确实数值是如何定义在标准组件库中的。以 Combinational Timing Arc为例,信号从输入到输出的延迟时间可以描述成以输入的转换时间(Transition Time)和输出的负载为变量的函数。描述的方式可以是线性的方式,如图十三所示。也可以将这 2 个变量当成指针,建立时序表格(Timing Table),让 STA软件可以查询出正确的延迟时间。这种以表格描述的方式会比上述线性描述的方式准确许多,因此现今市面上大部分的标准组件库皆
13、采用产生时序表格的方式来建立Timing Model。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 37 页 -图十三 我们举个简单的例子来说明STA软件如何从时序表格计算出组件延迟时间。(图十四)图十四 组件延迟时间(Ddelay):输入达逻辑 1 位准 50%到输出达逻辑 1 位准 50%的时间。组件转换时间(Dtransition):输出达逻辑 1 位准 20%(80%)到 80%(20%)的时间。当输入的转换时间为0.5,输出负载为 0.2 时,可由图十四的时序表格查得组件 I2 的延迟时间为0.432。而由于表格的大小有限,对于无法直接由表格查询到的延迟时间(如输入转
14、换时间0.25,输出负载0.15),STA 软件会利用线性内插或外插的方式计算延迟时间。对于其它的Timing Arc,不管是时序延迟或时序检查,其相对应的时序数值计算和上例的计算方式是一样的。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 37 页 -接下来我们说明操作环境(Operating Condition)对时序的影响。操作环境指的是制程(Process)、电压(Voltage)、温度(Temperature)三项因子。这三项因子通常会被简称为PVT,其对时序的影响可用下方线性方程式来描述。其中 nom_process、nom_voltage及 nom_temperat
15、ure 会定义在标准组件库中,代表建立时序表格时的操作环境。Interconnect Data:在什么是 STA 段落的例子中,为了方便说明,我们并没有把逻辑闸和逻辑闸间的联机延迟(Interconnect Delay)考虑在内。事实上,许多DSM IC设计之时序表现是由联机延迟主导的,其重要性不容我们忽视。联机延迟依照布局与绕线(P&R)前后有不同的考虑。在布局与绕线前,组件在芯片中摆放的位置尚未确定,所以联机延迟是一个预估值。而在布局与绕线之后,联机延迟则是根据实际绕线计算出来的。对布局与绕线之前的联机延迟,通常是用 Wireload Model 来预估。Wireload Model根据芯
16、片面积的预估大小及联机驱动组件数目(Fan-out)的多寡来决定联机的电阻和电容值,STA软件则利用这些电阻电容值计算出联机延迟。在布局与绕线之后,可以利用电阻电容萃取(RC Extraction)软件将绕线图形转换成实际的电阻电容电路,然后贴回(Back-annotate)STA 软件计算联机延迟。Timing Constraints:Timing Constraint为使用者所给定,用来检验设计电路时序的准则。其中最重要的一项就是频率(Clock)的描述。对于一个同步电路而言,缓存器和缓存器之间的路径延迟时间必须小于一个Clock 周期(Period),也就是说,当我们确认了 Clock
17、规格,所有缓存器间的路径的Timing Constraint就会自动给定了。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 37 页 -图十五 Clock 规格包含波形、Latency 及 Uncertainty的定义。波形定义一个 Clock的周期及信号上升缘及下降缘的时间点。Latency 定义从 Clock 来源到序向组件Clock 输入端的延迟时间。Uncertainty则定义 Clock 信号到序向组件Clock 输入端可能早到或晚到的时间。如果上面的文字让你有不知所云的感觉,那底下看图说故事的解说也许会让你有比较清晰的概念。在图十五的电路中,左边的正反器(Flip-F
18、lop)在第一个 Clock 上升缘时会丢出数据,此数据会在第二个Clock 上升缘让右边的Flip-Flop撷取。要分析右边的 Flip-Flop能否正确撷取数据就必须知道第一个Clock 上升缘到达节点 C1的时间点和第二个上升缘到达节点C2的时间点。假设在时间点为 0 的时候,Clock 信号由 S点出发,经过一段时间(source latency,1 个时间单位,仿真芯片外的Clock 延迟时间,例如板子上的绕线产生的信号延迟时间)到达电路的Clock 输入端点 P,接下来再经过一段时间(芯片内Clock绕线造成的信号延迟时间),Clock信号分别到达 C1和 C2节点。如果电路已经进
19、行布局与绕线,输入端点 P到 C1和 C2的信号延迟时间可由联机上的寄生电阻电容计算得来。比方说,经过计算发现信号由P传递到 C1需要 1 个时间单位,由 P传递到 C2需 2 个时间单位,则 Clock 信号第一个上升缘到达C1和第二个上升缘到达 C2的时间点就会如图十六下方两列所示,分别为时间点2 和 13(因为加上了 1个时间单位的 source latency)。图十六 在布局与绕线之前,我们无法准确得知P到 C1和 C2的信号延迟时间,仅能先做个预估。图十五的 network latency及上文提到的 Uncertainty就是用来做此种预估的。先假设我们拥有某种完美的布局与绕线软
20、件可以让Clock 输入端点P到所有 Flip-Flop的 Clock 输入端的信号延迟时间一模一样,那么我们只要知道这个信号延迟时间就可以得到Clock 信号到达 C1和 C2的时间点了。这个信号延迟时间可以藉由电路特性(如预估面积大小,Flip-Flop数目等)来做预估,名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 37 页 -而这个预估值就是所谓的network latency。如果这种完美的软件存在的话,那Clock 的上升缘到达C1 和 C2 的时间点就可以由Latency(source latency+network latency)计算出来。很不幸的,世界上没有这
21、么完美的软件,在布局与绕线后Clock 输入端点 P到所有Flip-Flop的 Clock 输入端的信号延迟时间不会完全一样。也就是说Clock 的某个上升缘不会同时到达C1和 C2。因此我们要对上述的预估值做些修正,加入 Uncertainty的描述来定义 Clock 上升缘左右移动的可能范围。在图十六中,Uncertainty为 1 个时间单位,所以 Clock 第一个上升缘会在时间点3(因为 Latency 为 3)左右 1 时间单位范围内(也就是时间点2 到时间点 4)到达 C1,。第二个上升缘则会在时间点12 到 14 的范围内到达 C2。除了 Clock 之外,对于电路其它输出输入
22、端点及其周边的环境(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.由主
23、要输入到主要输出(图十七右下)。当 Clock 规格确定了之后,第1 种 Path 的时序限制(Timing Constraint)就自动的给定了。为了给定其它3 种 Path 的时序限制,我们必须定义Boundary Condition。图十七 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 37 页 -一般来说,我们会定义下列的Boundary Condition:1.Driving Cell:定义输入端点的推动能力(图十八)。2.Input Transition Time:定义输入端点的转换时间(图十八)。3.Output Capacitance Load:定义输出负载(
24、图十八)。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,
25、所以时序分析都能够进行。但在某些情况下,有些 Path 的分析可能没有意义,因此妳会想忽略这些Path 的分析。或是有些 Path 分析的方式不一样,妳会想指定这些 Path 的分析方式。此时就要设定一些 Timing Exception,如False Path和 Multi-cycle Path等等来处理非一般性的时序分析。STA流程及分析方式名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 37 页 -STA的流程如图二十所示,而其分析验证的项目就是我们前文提及之时序检查相关的 Timing Arc,如 Setup Time、Hold Time 等等。以下我们针对 Setup
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态时序分析经典整 2022 静态 时序 分析 经典
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内