MMMC 与寄生签核:在「漏角」与「跑不完」之间走钢丝(E2)
黄金 STA 工具流程见 E1 PrimeTime,view/scenario 的数据组织见 X2 MMMC,SPEF/SDF 格式见 F5;本篇聚焦签核工具里的 corner/降额/寄生工程:怎么定义角、OCV 三代口径、SPEF 如何反标、数量怎么权衡。设计侧见 OCV/AOCV/POCV 与 MMMC 高级 STA。
一、为什么单一「典型角」不能签核
一颗芯片在不同硅片、不同电压、不同温度下速度不同,连线寄生也随金属工艺角(RC corner)变化。只在 tt/常温/标称电压下时序绿,不代表最差情况下绿。签核必须覆盖制造与工作条件的离散:
- 工艺角(process):晶体管快慢(tt/ss/ff/snfp/fnsp…)+ 互连 RC 角(typical / Cbest / Cworst / RCbest / RCworst);
- 电压(voltage):标称、最低工作电压(setup 常最坏)、最高;
- 温度(temperature):低温在先进节点可能更慢(temperature inversion),不能想当然只看高温。
setup 最差 ≈ 慢工艺 + 低电压 + 不利温度 + 大延迟 RC 角;hold 最差 ≈ 快工艺 + 高电压 + 小延迟角——两者往往不是同一个角,必须分别签。
二、Mode × Corner × Library:scenario 与 view

- library view / .lib 角:每个 PVT 一个时序库(含 NLDM/CCS,见 F3);
- RC corner:寄生提取(STARRC/Quantus)对每种互连角出一套 SPEF;
- scenario(analysis view)= 一个功能模式(mode,时钟/哪些块工作)+ 一个 PVT 库角 + 一个 RC 角 + 一份对应 SDC。
**MMMC(Multi-Mode Multi-Corner)**让 P&R 和 STA 同时维护多个 scenario:优化时照顾最差的那个,报告时逐角出结果。
三、笛卡尔积陷阱与剪枝
理论上 mode × PVT × RC 全组合会爆炸(几十上百角),每个都跑一遍 STA 不现实。剪枝原则:
- 只保留物理上真实/最坏的组合:不是每个工艺角都配每个温度电压,按 foundry 签核手册指定的合法组合(如 ssgnp/0.72V/125°C、ffp/0.94V/−40°C);
- setup 与 hold 分开取最坏角,不必每角既签 setup 又签 hold;
- 模式按真实工作场景裁剪:扫描/测试模式单独一组角,不必与功能模式全交叉;
- 早期用少量「代表角」迭代,签核期才上全角,把算力花在收口阶段。
剪枝必须可追溯——漏了一个真实最坏角,再多绿报告也是假的(见 X1 交接契约 的 scenario 清单)。
四、OCV → AOCV → POCV:片上变化怎么建模
同一片芯片上相邻晶体管的延迟也会因局部工艺涨落而不同,这就是 OCV(On-Chip Variation)。三代口径:
| 代 | 做法 | 局限 |
|---|---|---|
| OCV(timing derate) | 对整条时钟/数据路径乘一个固定保守系数(launch 晚到、capture 早到都往悲观算) | 单一系数,对短路径过悲观、长路径可能欠悲观 |
| AOCV(advanced/age-based) | 降额随逻辑深度(级数)和路径距离查表取值 | 仍按深度分档,路径分析依赖;对先进节点统计性不足 |
| POCV / LVF(parametric/statistical) | 给每个单元延迟一个统计分布(均值+σ),按路径做统计时序,不再是固定 derate | 需库的统计数据,计算量大,但最贴先进节点真实 |
签核工具会同时配合 CRPR(launch/capture 共享时钟段不重复扣悲观,见 D3 CTS)。关键纪律:实现期与签核期的降额口径必须一致,否则 P&R 里用老 OCV 收绿、PT 用 POCV 一签全红。
五、SPEF 寄生反标:为什么它一进来时序就变
综合时网延迟是估计(线负载模型或 topo 粗估)。布局布线后用寄生提取工具产出 SPEF(每段互连线的 R、C 耦合电容网络),STA 读入后用真实寄生替换估计值:
- 反标后净延迟、串扰(SI,耦合电容导致的 neighbor 影响)才进入分析,setup/hold 普遍重排;
- SPEF 必须与当前网表/DEF 同源同版本:节点名、pin 名对不上会出现大量 unannotated 寄生(部分或整网没反标),报告看着绿其实是退回理想线——反标率(annotated RC coverage)是必查项,要求接近 100%,未反标节点要逐条解释;
- 多 RC 角各自一套 SPEF,与 scenario 配对。
串扰(crosstalk/SI)签核在 POCV + 耦合寄生下还要做噪声与延迟增量分析(victim/aggressor 同时翻转),见设计侧 crosstalk SI 签核。
六、签核运行的权衡与核对
| 决策 | 建议 |
|---|---|
| 角的数量 | 早期 3~6 代表角迭代,收口按 foundry 全签核角 |
| 寄生精度 | 收敛前可用压缩/单角 SPEF,最终签核全 RC 角 + 高抽取精度 |
| 降额 | 直接用库支持的最高代(POCV/LVF)+ CRPR,与实现对齐 |
| 增量 | ECO 后只重提受影响网络、只重跑受影响 scenario(X3 作废链) |
| 一致性 | 网表/SPEF/库角/工具版本四元组冻结(F10、E5 收口) |
相关与延伸
- 同线:E1 黄金 STA、E3 物理验证、E5 签核收口、D3 CTS。
- 数据:X2 MMMC、F5 SPEF/SDF、F3 Liberty。
- 设计侧:OCV/AOCV/POCV、MMMC 高级 STA。
总结
MMMC 签核要在漏角和跑不完之间剪枝:按 foundry 合法且最坏的「功能模式 × PVT × RC × SDC」组 scenario,setup/hold 分别取最坏角、早期用代表角、收口上全角;片上变化用从固定 derate 的 OCV、按深度查表的 AOCV 到统计分布的 POCV/LVF 三代口径建模并配 CRPR,且实现与签核口径必须一致;布线后 SPEF 寄生反标会用真实 R/C 与串扰重排时序,必须核对网表↔SPEF 同源且反标率近 100%,最后在冻结的网表×SPEF×库角×工具四元组上逐角签字——任何一个未反标节点或漏掉的最坏角都会让「全绿」变成假象。