4.1 静态时序分析:setup 与 hold 的数学检查


4.1 静态时序分析:setup 与 hold 的数学检查

本节摘要:静态时序分析(STA)不跑任何激励,靠枚举全部时序路径并逐条核对两个不等式(建立 setup、保持 hold)来宣判频率达标与否。本节推导两个不等式的完整账目,用 1 GHz 设计实例做皮秒级预算分配,并讲清路径枚举、变异余量(OCV)与违例修复的工程机制。本节是全章的词汇表,后续三节都复用这里的延迟语言。

为什么不仿真:穷举的失败与静态的胜利

判断时序是否达标,最直觉的方案是仿真:输入各种激励,看输出有没有错过采样沿。但仿真有先天缺陷:它只能证明"试过的输入没问题",不能证明"所有输入没问题"。关键路径是否被激活取决于输入组合,一组 billion 周期的仿真完全可能从未踩到最坏的路径。签核需要的恰恰是"所有情况"的保证。STA 的回答是釜底抽薪:不跑时间维度的仿真,改做结构维度的枚举——把电路里所有从触发器到触发器的路径列出来,每条路径用最坏情况下的延迟做静态求和,检查是否超期。延迟数据来自工艺库查表与互连寄生提取,与输入波形无关。

这一转换的代价是保守(最坏值叠加天然悲观),收益是完备(任何路径都不漏)。签核场景下这笔交易稳赚:悲观顶多让频率低几个百分点,遗漏却意味着流片失败。STA 由此成为整个签核体系的地基,也是物理实现各阶段被调用最频繁的分析引擎。

两个不等式:时序世界的全部公理

**建立检查(setup)**关心的是数据要在时钟沿到来之前稳定到位。对一条从发射触发器到捕获触发器的路径:发射沿出发后,数据要经过发射触发器的时钟到输出延迟(t_cq,典型 20 到 60 皮秒)、组合逻辑与互连延迟(t_logic 加 t_net)、最后在捕获沿之前留出捕获触发器的建立时间(t_setup,典型 10 到 30 皮秒)。计入两端时钟的偏差(skew),不等式为:

建立检查: t_cq + t_logic + t_net + t_setup <= T_clk + T_skew 保持检查: t_cq_min + t_logic_min + t_net_min >= t_hold + T_skew

T_clk 是周期,T_skew 为正表示捕获端时钟晚到(给建立放行)。保持检查的语义完全不同:它要求新数据不能来得太快把旧数据冲掉——同沿发射的数据必须慢于捕获端的保持时间。注意三个不对称:建立看的是最大延迟(最坏慢),保持看的是最小延迟(最快坏);建立违例可以靠降频救,保持违例与频率无关、只能改硬件(加延迟单元);保持检查用的是最快工艺角,建立用最慢工艺角。

拿 1 GHz 设计(周期 1000 皮秒)分配一遍建立预算:发射触发器 t_cq 取 40 皮秒;两级组合逻辑合计 300 皮秒;互连线延迟 150 皮秒;捕获端建立时间 30 皮秒;时钟树偏差偏保守取 50 皮秒亏待。合计 570 皮秒,路径剩余裕量 430 皮秒——这笔账的意义不在数字本身,而在每一段都可归因:报告里任何一条违例路径都能拆到具体哪段逻辑、哪条连线吃掉了预算,修复因此有靶子。

图:一条时序路径的预算分解与双检查

图:一条时序路径的预算分解与双检查

路径从哪里来:图遍历的工程实现

STA 引擎把电路建成带延迟权重的有向图(顶点是引脚,边是线与单元的延迟),建立检查等价于在图上求最长路径。一般图的最长路径是 NP 难的,但时序图是 DAG(信号不能穿过触发器回环——跨触发器的路径由下一个建立检查接管),DAG 上的最长路径线性时间可解:拓扑排序后一趟动态规划。这就是"静态"分析敢号称覆盖全部路径的底气:百万条路径的求和不是暴力枚举,而是共享前缀的增量计算。保持检查是同一图上的最短路径,同样线性。

延迟数字的来源有两层。单元延迟查工艺库的 NLDM 表(输入翻转率与输出负载电容的二维插值);互连延迟由第 3 章提取的 RC 网络经缩减(降阶为等效驱动模型)计算。这两层都在工艺角(corner)下进行:慢角(低压低温、慢单元模型)跑建立,快角(高压高温)跑保持,典型签核要跑的工艺角组合从几个到十几个。

变异、违例修复与报告读法

先进工艺下"所有单元同时最慢"的假设过于悲观(芯片内变异是局部的、有相关性的),于是出现逐单元的变异分析(OCV/AOCV):同一芯片上单元间延迟存在随机起伏,分析时对数据路径上的每个单元乘上加速或减速因子(典型 5% 到 10%),时钟路径做相关性抵消。更精细的 POCV(参数化 OCV)用库里的统计分布(均值加若干西格玛)替代固定因子。余量逐层叠加后依然达标的路径,才是敢签字的路径——这套悲观叠加的纪律贯穿全部签核分析。

违例修复的手段按代价排序:逻辑层(缩深度、并行化路径、重定时)、物理层(把关键路径单元摆近、换高速单元)、插入层(缓冲器整形波形、延迟单元修 hold)。每轮修复后再跑 STA 验证,修复动作可能引发新违例(缓冲器自身有延迟),所以收敛靠多轮迭代,工具里的时序优化循环本质就是"STA 报告驱动的定向修改"。读报告时先看三个数:WNS(最差负裕量)、TNS(全部违例路径的裕量总和)、违例路径条数——WNS 决定频率上限,TNS 反映问题面的大小,两者的比值告诉你这是一条坏路径还是一片坏区域,修复策略完全不同。

路径枚举的工程细节再展开一层:签核级的路径按"起点触发器的时钟引脚到终点触发器的数据引脚"成对组织,路径之间共享前缀段,报告工具按"最坏终点"分组输出。一份实际的签核时序报告常有几十万到几百万行,逐行读不现实,工程读法是三步:先看最差路径的余量数字与所属时钟域,再沿报告给出的分段延迟(单元段、网络段各占多少)定位问题段,最后查该段的单元类型与负载(扇出过大、长线、弱驱动是三大惯因)。这套读法与 STA 引擎的增量计算结构一一对应,学会读报告就等于学会了引擎的输出语法。

本节要点回顾

  • 静态换完备:不做激励仿真,枚举全部路径做最坏求和,悲观换来签核级的完备性。
  • 建立不等式:t_cq 加逻辑加网加 t_setup 不超周期加偏差,用最大延迟与最慢角。
  • 保持不等式:最快数据必须慢于保持窗口,与频率无关,违例只能改硬件。
  • 预算可归因:1 GHz 示例 570 皮秒的支出可逐段定位,修复因此有靶子。
  • DAG 线性可解:最长与最短路径在时序图上都是拓扑序一趟动态规划。
  • 余量纪律:OCV 因子、抖动、提取余量逐层叠加,全叠加后达标才可签核。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U