时序余量 Slack

类型: concepts
引用论文: 16 篇
Timing Slack 概念

时序余量 Slack

概念解析

定义与起源

术语定义:时序余量(Slack)是STA中最核心的指标——它告诉你一条时序路径"有多紧张"。Setup slack = 数据要求到达时间 - 数据实际到达时间。正slack = 时序满足,有余量。负slack = violation,需要修复。零slack = 刚好满足,但工艺变异可能让硅片上变负。

Slack是一把尺子——度量你的设计离fail有多近。WNS(Worst Negative Slack)=全芯片最差的那条violation路径。TNS(Total Negative Slack)=所有violation的slack之和——告诉你总violation严重程度。

核心要义

第一,Setup slack和Hold slack是两种完全不同的度量。 Setup slack检查数据是否"太快到"——数据必须在时钟沿之前稳定下来(建立时间)。正slack=数据及时到达。Hold slack检查数据是否"太慢走"——数据必须在时钟沿之后保持稳定(保持时间)。正slack=数据没有太快消失。修Setup=加快数据路径。修Hold=减慢数据路径。两者优化方向相反。

第二,Slack的多个来源需要不同修复策略。 路径太长(逻辑级数多)→减少逻辑级数或增大驱动。时钟偏斜大→调整时钟树。约束过紧(不合理的延迟约束)→松约束。IR Drop导致局部延迟增大→优化电源网格。找到slack的root cause比修slack本身更重要。

第三,Slack直方图(Slack Histogram)比WNS/TNS更有信息量。 WNS只看最差的一条。直方图展示所有路径的slack分布——如果大部分路径slack>100ps但少数几条<0ps→集中修那几条。如果slack分布整体偏负→需要架构级优化而不是local ECO。

实践应用

* WNS告诉你最紧迫的问题:先修WNS路径——它决定芯片能跑的最高频率。 * TNS告诉你问题的规模:TNS巨大意味着有大量中等violation——需要批量修复策略而非逐条修复。 * Slack Histogram是signoff必备:直方图的形状比单个数字更有价值——偏态分布vs正态分布→不同的优化策略。

实战案例

  • 某CPU的WNS追击战:WNS从-200ps开始——修第一轮→-120ps(修了最长的combinational path)。第二轮→-50ps(调整CTS skew)。第三轮→-20ps(插入LVT cell)。第四轮→+5ps(松了一条over-constrained path)。四轮ECO——WNS从负到正。

  • TNS爆炸的根因:某GPU的TNS从-50ns跳到-300ns。根因是一条clock gating使能信号的hold violation→影响了所有被它门控的寄存器。修正一条hold violation→TNS跳回-60ns。

  • Slack直方图发现了隐藏bug:某SoC的slack分布有两个峰——正常的在+50ps附近,异常的在-30ps附近。异常峰的路径全部经过了同一个PLL生成的时钟——那个PLL的时序模型有bug——修了模型后异常峰消失。

常见误区

误区一:WNS=0就万事大吉。 WNS=0意味着所有路径在STA模型下刚好满足。但STA模型有5-10%的误差——加上OCV/IR Drop/crosstalk影响——硅片上可能变负。需要正slack margin来吸收这些不确定性。

误区二:setup slack修好hold slack就不会坏。 修setup通常加快数据路径——这可能让hold slack变差(数据太快消失)。每次ECO后setup和hold都要重新检查。

误区三:TNS小=问题少。 TNS只是violation的幅度之和。如果只有1条路径violation=-200ps(TNS=-200ps)——比100条各-10ps(TNS=-1000ps)难修得多。TNS小不一定意味着容易修。

思想演变

**1990s
Slack=setup only**:hold slack靠插入buffer——在综合后被当作"简单问题"。STA只看最差路径。
**2000s
OCV加入slack计算**:片上变异让slack不再确定。AOCV用距离相关的降额因子。
**2010s
POCV统计slack**:slack从"固定值"变成"概率分布"。signoff看slack的σ而不仅仅是μ。
**2020s
AI预测slack**:ML在placement阶段预测最终slack——在修复成本最低的时候做优化。

原话引用

"Slack is the universal language of timing. Every timing engineer speaks it. Every timing problem is diagnosed in it."—— STA工程师, 内部培训
"WNS tells you where to start. TNS tells you when to stop."—— SNUG San Jose 2017
"正slack是你的朋友——但太多正slack是你的敌人(过度设计)。零slack是工艺变异中的赌注。"—— PrimeTime 用户指南, 2020