首页资源分类嵌入式开发嵌入式系统 > 静态时序分析

静态时序分析

已有 453361个资源

下载专区

上传者其他资源

嵌入式开发热门资源

本周本月全部

文档信息举报收藏

标    签: statictiming

分    享:

文档简介

中文版,很实用,对于刚入门的新手很有帮助

文档预览

静态时序分析(Static Timing Analysis)基础 (2) 在「什么是 STA」段落的例子中,为了方便说明,我们并没有把逻辑闸和逻辑闸 间的连线延迟(Interconnect Delay)考虑在内。事实上,许多 DSM IC 设计之时序 表现是由连线延迟主导的,其重要性不容我们忽视。 连线延迟依照布局与绕线(P&R)前后有不同的考量。在布局与绕线前,元件在 晶片中摆放的位置尚未确定,所以连线延迟是一个预估值。而在布 局与绕线之 后,连线延迟则是根据实际绕线计算出来的。对布局与绕线之前的连线延迟,通常 是用 Wireload Model 来预估。Wireload Model 根据晶片面积的预估大小及连线驱动 元件数目(Fan-out)的多寡来决定连线的电阻和电容值,STA 软体则利用这些电 阻电容值计算出连线延 迟。在布局与绕线之后,可以利用电阻电容萃取(RC Extraction)软体将绕线图形转换成实际的电阻电容电路,然后贴回(Backannotate)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 设 计流程中的应用举一范例说明,请各位拭目以待。

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。