速查手册

面试前扫一眼,或者做题时对照。所有公式与结论都与课程、题库保持一致。

① 核心公式

Setup Slack(建立时间裕量)
Arrival = T_launch + Tcq + Tcomb_max Required = T_capture + Tclk − Tsetup − uncertainty slack_setup = Required − Arrival = (T_capture + Tclk − Tsetup − uncertainty) − (T_launch + Tcq + Tcomb_max)
Tcomb_max(最慢路径)、慢角 ss。slack ≥ 0 满足。
Hold Slack(保持时间裕量)
Arrival = T_launch + Tcq + Tcomb_min Required = T_capture + Thold slack_hold = Arrival − Required = (T_launch + Tcq + Tcomb_min) − (T_capture + Thold)
Tcomb_min(最快路径)、快角 ff。注意 slack 方向与 setup 相反,且公式里没有 Tclk
含偏斜的形式
令 Tskew = T_capture − T_launch slack_setup = Tclk + Tskew − Tcq − Tcomb_max − Tsetup slack_hold = Tcq + Tcomb_min − Tskew − Thold
同一个 Tskew 对两者的影响方向相反(零和)——这是 useful skew 的基础。
其它常用关系
f = 1 / T 总 latency = source latency + network latency Tskew = 到达时间之差(相对量) MTBF = e^(t_r/τ) / (T_0 × f_clk × f_data) P_dynamic = α · C · V² · f

② 方向速记(最容易记反的地方)

SetupHold
怕什么数据到得太晚数据到得太早
用哪条路径延迟Tcomb_maxTcomb_min
工艺角ss(慢)+ 低电压ff(快)+ 高电压
受 Tclk 影响
derate 方向data late ×1.1,clock early ×0.9data early ×0.9,clock late ×1.1
uncertainty 含 jitter同域 hold 不含(jitter 抵消)
何时修CTS 之前CTS 之后、布线之后才算数
怎么修让数据更快让数据更慢
⚠️ 三句话防记反

① 降频能修 setup,完全不能修 hold
② 在数据路径上加延迟 → setup 变差、hold 变好(永远相反)。
③ useful skew 修 setup 是延后 capture 时钟;修 hold 是延后 launch 时钟。

③ Clock Uncertainty 组成

阶段SetupHold
pre-CTSjitter + margin + skewmargin + skew
post-CTSjitter + marginmargin(很多流程设为 0

典型值:pre-CTS setup ≈ 0.1–0.2 ns;post-CTS 可降至 0.05–0.1 ns。margin 是流程选择,不是物理量。 CTS 后必须把 uncertainty 调小,否则白白浪费裕量。

④ 时序约束优先级(高 → 低)

Timing Exception Priority
1. set_case_analysis ← 最高,直接改变电路拓扑 2. set_false_path 3. set_max_delay / set_min_delay 4. set_multicycle_path 5. 默认单周期检查 ← 最低
口诀:case > false > max/min > multicycle > 默认
🚫 multicycle 必须配对

set_multicycle_path N -setup 必须set_multicycle_path (N−1) -hold
只设 setup 会让 hold 检查被意外推到第 N 个沿,要求数据保持 N 个周期 → 大量莫名其妙的 hold 违例。

⑤ CTS 检查清单

CTS 之前(六项)

  1. 布局完成且合法
  2. 电源地已预布线(PG pre-routed)
  3. 预估拥塞可接受
  4. 预估时序可接受(setup
  5. 无 max transition / cap 违例
  6. 高扇出网络(HFNS)已处理

CTS 之后(五项)

  1. Skew report
  2. Clock tree report(级数、buffer 数、latency)
  3. Timing report(setup / hold
  4. Power & area
  5. 时钟树自身 DRC
💡 CTS 三大目标(互相冲突)

最小化 skew、最小化 insertion delay、最小化 功耗。 三者是 trade-off 关系,不可能同时最优。答题时一定要补上这一句。

⑥ 术语中英对照

中文英文一句话
建立时间Setup Time时钟沿数据需稳定的时间
保持时间Hold Time时钟沿数据需稳定的时间
恢复时间Recovery Time异步复位释放相对时钟沿的要求(类比 setup)
移除时间Removal Time异步复位释放后的保持要求(类比 hold)
时钟偏斜Clock Skew两点到达时间之(相对量)
时钟延迟Clock Latency单点的绝对到达时间
源延迟Source Latency时钟源 → 时钟定义点
网络延迟Network Latency定义点 → 触发器时钟端(= 时钟树延迟)
插入延迟Insertion Delay时钟树本身引入的延迟
抖动Jitter同一位置每个周期边沿位置的漂移
不确定性Uncertaintyjitter + margin(+ skew,CTS 前)
有用偏斜Useful Skew故意制造 skew 搬运裕量(可修 setup 和 hold)
时间借用Time Borrowing靠 latch 透明窗口借下一个周期的时间
片上变异OCV同芯片不同位置的延迟差异
先进 OCVAOCVderate 随级数/距离变化(查表)
参数化 OCVPOCV / SOCV延迟建模为分布,按 ±3σ 计算,σ 用 RSS 合成
共同路径悲观消除CRPR / CPPR把共同段被重复降额的悲观度加回来
伪路径False Path结构存在但功能上无法敏化的路径
多周期路径Multicycle Path放宽到 N 个周期(setup N 配 hold N−1)
串扰Crosstalk耦合电容导致延迟偏移(delta delay)或毛刺(glitch)
非默认规则NDR加宽/加间距/屏蔽,降低 EM 和 SI 风险
多角多模MCMM多工艺角 × 多工作模式的分析矩阵
时钟门控Clock Gating用 ICG 关掉空闲模块的时钟翻转省动态功耗
亚稳态Metastability采样窗口内数据变化导致的中间不确定态
平均无故障时间MTBF衡量同步器可靠性的指标
最差负裕量WNS最差路径差多少
总负裕量TNS所有违例路径 slack 之和
工程变更ECO后期小范围修改(metal-only 成本最低)

⑦ 高频易错点(网上流传的错误说法)

🚫 这些说法是错的
  • "false path 和功能无关" → 错。恰恰相反,false path 的本质就是功能上不可能被敏化(或被有意排除的异步 CDC)。
  • "useful skew 只能修 setup" → 错。延后 capture 时钟利于 setup,延后 launch 时钟利于 hold。
  • "降频可以修 setup 违例" → 这是改规格,不是 PD 修复手段。产品性能降级不叫修复。
  • "插 buffer 一定能改善 setup" → 有条件。只有省下的线延迟 > 新增的 cell 延迟时才有效,且应靠近 capture 端。
  • "clock buffer 的 rise/fall time 完全相同" → 不准确。被设计成对称的是 rise/fall delay(保证占空比),transition time 仍可能不同。
  • "7 层金属时钟固定走 M4/M5" → 是 PDK/层栈/floorplan 相关的。只有"电源走顶层金属"比较通用。
  • "zero skew 不可能因为路径长度不同" → 理由站不住。H-tree 可以把长度做等;做不到是因为 OCV/PVT/负载与噪声不匹配。
  • "clock gating 是修剪 clock tree" → 不准确。它不改变树的拓扑,只是关闭空闲模块的时钟翻转。
  • "SDC 包含功耗约束" → 错。功耗意图属于 UPF/CPF;SDC 管 timing / DRC / area / 例外。
🎯 怎么用这份手册

做题卡住时对照 ①②;面试前扫 ②④⑦。真正的理解来自课程里的推导过程—— 手册只负责在你已经懂了之后帮你快速回忆。

去刷题验证 → 回教学模块