静态时序分析(Static Timing Analysis)基础及应用
◎陈麒旭
前言
在制程进入深次微米世代之后,芯片(IC)设计的高复杂度及系统单芯片(SOC)
设计方式兴起。此一趋势使得如何确保 IC 质量成为今日所有设计从业人员不得不面临
之重大课题。静态时序分析(Static Timing Analysis 简称 STA)经由完整的分析方式
判断 IC 是否能够在使用者的时序环境下正常工作,对确保 IC 质量之课题,提供一个不
错的解决方案。然而,对于许多 IC 设计者而言,STA 是个既熟悉却又陌生的名词。本
文将力求以简单叙述及图例说明的方式,对 STA 的基础概念及其在 IC 设计流程中的应
用做详尽的介绍。
什么是 STA?
STA 的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析
其是否违反设计者给定的时序限制(Timing Constraint)。以分析的方式区分,可分
为 Path-Based 及 Block-Based 两种。
先来看看 Path-Based 这种分析方式。如图一所示,信号从 A 点及 B 点输入,经由
4 个逻辑闸组成的电路到达输出 Y 点。套用的 Timing Model 标示在各逻辑闸上,对于
所 有 输 入 端 到 输 出 端 都 可 以 找 到 相 对 应 的 延 迟 时 间 。 而 使 用 者 给 定 的 Timing
Constraint 为:
1. 信号 A 到达电路输入端的时间点为 2(AT=2,AT 为 Arrival Time)。
2. 信号 B 到达电路输入端的时间点为 5(AT=5)。
3. 信号必须在时间点 10 之前到达输出端 Y(RT=10,RT 为 Required Time)。
现在我们针对 P1 及 P2 两条路径(Path)来做分析。P1 的起始点为 A,信号到达时
间点为 2。经过第 1 个逻辑闸之后,由于此闸有 2 单位的延迟时间,所以信号到达此闸
输出的时间点为 4(2+2)。依此类推,信号经由 P1 到达输出 Y 的时间点为 7(2+2+3)。
在和上述第三项 Timing Constraint 比对之后,我们可以得知对 P1 这个路径而言,时
序(Timing)是满足使用者要求的。
按照同样的方式可以得到信号经由路径 B 到达输出 Y 的时间点为 11(5+1+3+2),
照样和上述第三项 Timing Constraint 比对,我们可以得知对 P2 这个路径而言,Timing
是不满足使用者要求的。
对图一的设计而言,总共有 6 个信号路径。对于采用 Path-Based 分析方式的 STA
软件来说,它会对这 6 个信号路径作逐一的分析,然后记录下结果。IC 设计者藉由检
视其分析报告的方式来判断所设计的电路是否符合给定的 Timing Constraint。由于最
常用来做静态时序分析验证核可(STA Signoff)的 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 中要求的时间还早到达,如此则 Timing 是满足的,反之则不满足。
STA 资料准备
在做 STA 之前,我们必须对其准备工作有充分的了解。STA 所需的资料如图三所示,
以下我们分项说明。其中 Design Data 部分,由于 Block Model 和 STA 软件相关性太高,
我们不在此加以说明,请直接参阅您 STA 软件的使用手册。
图三
Library Data:
STA 所需要的 Timing Model 就存放在标准组件库(Cell Library)中。这些必要
的时序信息是以 Timing Arc 的方式呈现在标准组件库中。Timing Arc 定义逻辑闸任两
个端点之间的时序关系,其种类有 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 如果不特别宣告
的话,就是属于此类。如图四所示,他定义了从特定输入到特定输出(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。反之,输出输入信
号变化方向一致的话,则此 Timing Arc 为 non-inverting sense。当特定输出无法由
特定输入单独决定时,此 Timing Arc 为 non-unate。
图五
图六
图七
图八
图九
图十
图十一
图十二
其它的 Timing Arc 说明如下。
Setup Timing Arc:定义序向组件(Sequential Cell,如 Flip-Flop、
Latch 等)所需的 Setup Time,依据 Clock 上升或下降分为 2 类(图五)。
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 而言是不允许的。
Recovery 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:定义信号需维持稳定的最短时间,依据信号维持在 0 或
1 的位准分为 2 类。(图十二)
上文列出了标准组件库内时序模型的项目,但对其量化的数据却没有加以说
明。接下来,我们就来看看到底这些时序信息的确实数值是如何定义在标准组件
库中的。
以 Combinational Timing Arc 为例,信号从输入到输出的延迟时间可以描
述成以输入的转换时间(Transition Time)和输出的负载为变量的函数。描述
的方式可以是线性的方式,如图十三所示。也可以将这 2 个变量当成指针,建立
时序表格(Timing Table),让 STA 软件可以查询出正确的延迟时间。这种以表
格描述的方式会比上述线性描述的方式准确许多,因此现今市面上大部分的标准
组件库皆采用产生时序表格的方式来建立 Timing Model。
图十三
我们举个简单的例子来说明 STA 软件如何从时序表格计算出组件延迟时间。
(图十四)
图十四
组件延迟时间(Ddelay):输入达逻辑 1 位准 50%到输出达逻辑 1 位准 50%的时间。
组件转换时间(Dtransition):输出达逻辑 1 位准 20%(80%)到 80%(20%)的时间。
当输入的转换时间为 0.5,输出负载为 0.2 时,可由图十四的时序表格查得
组件 I2 的延迟时间为 0.432。而由于表格的大小有限,对于无法直接由表格查
询到的延迟时间(如输入转换时间 0.25,输出负载 0.15),STA 软件会利用线
性内插或外插的方式计算延迟时间。
对于其它的 Timing Arc,不管是时序延迟或时序检查,其相对应的时序数
值计算和上例的计算方式是一样的。
接下来我们说明操作环境(Operating Condition)对时序的影响。操作环
境指的是制程(Process)、电压(Voltage)、温度(Temperature)三项因子。
这三项因子通常会被简称为 PVT,其对时序的影响可用下方线性方程式来描述。
其中 nom_process、nom_voltage 及 nom_temperature 会定义在标准组件库中,
代表建立时序表格时的操作环境。
Interconnect Data:
在「什么是 STA」段落的例子中,为了方便说明,我们并没有把逻辑闸和逻
辑闸间的联机延迟(Interconnect Delay)考虑在内。事实上,许多 DSM IC 设
计之时序表现是由联机延迟主导的,其重要性不容我们忽视。
联机延迟依照布局与绕线(P&R)前后有不同的考虑。在布局与绕线前,组
件在芯片中摆放的位置尚未确定,所以联机延迟是一个预估值。而在布局与绕线
之后,联机延迟则是根据实际绕线计算出来的。对布局与绕线之前的联机延迟,
通常是用 Wireload Model 来预估。Wireload Model 根据芯片面积的预估大小及
联机驱动组件数目(Fan-out)的多寡来决定联机的电阻和电容值,STA 软件则
利用这些电阻电容值计算出联机延迟。在布局与绕线之后,可以利用电阻电容萃
取(RC Extraction)软件将绕线图形转换成实际的电阻电容电路,然后贴回
(Back-annotate)STA 软件计算联机延迟。
Timing Constraints:
Timing Constraint 为使用者所给定,用来检验设计电路时序的准则。其中
最重要的一项就是频率(Clock)的描述。对于一个同步电路而言,缓存器和缓
存器之间的路径延迟时间必须小于一个 Clock 周期(Period),也就是说,当我
们确认了 Clock 规格,所有缓存器间的路径的 Timing Constraint 就会自动给定
了。