多角多模 MMMC:怎样在组合爆炸里不漏掉真正的最坏情况(X2)
S5 签核枢纽 说三把尺要共用一条基线,F10 说角集合要版本化;本篇把最棘手的一维展开:一颗芯片不是在「一个工况」下签核,而是在制造偏差、温度电压、RC 偏差、功能模式的组合空间里签核。数据该怎样按「角」与「模式」组织,才能既不漏最坏点、又不被笛卡尔积压垮?
一、四个正交维度

- PVT 角:工艺(SS/TT/FF)× 电压 × 温度,决定 Liberty 库版本;
- RC 角:金属制造偏差造成的寄生极值(见 F5);
- 功能模式(mode):func/scan/test、各电源态、超频/降压模式,决定哪段 SDC 生效、哪些路径存在(见 F2 SDC 生命周期);
- 检查类型:setup、hold、信号完整性、功耗、IR/EM 各取不同极值方向。
二、哪些数据按角分,哪些全局共享
| 数据 | 是否按角/模式分 | 说明 |
|---|---|---|
| 网表 / DEF / 连接关系 | 全局唯一 | 同一颗芯片逻辑与几何只有一份 |
| Liberty 库 | 按 PVT 角 | 每个 view 绑定对应 .db |
| SPEF 寄生 | 按 RC 角 | 同一版图提取出多套 RC |
| SDC / mode 约束 | 按模式 | 时钟定义、例外、生效路径不同 |
| 活动数据 | 按模式/场景 | SAIF 必须来自对应工况(F6) |
| OCV/AOCV/POCV 降额 | 按角 | 随工艺/路径深度变化 |
analysis view = 一套「库角 + 寄生角 + 约束/模式 + 操作条件」的绑定;scenario(场景) = 一个有工程含义的工作状态(如「func-SS-高温满频」「scan-FF-低温」「sleep-IR」),由若干 view 组成。签核报告按场景给 WNS/TNS,而不是按孤立的文件。
三、关键:角的配对不是自由组合
setup 的最坏通常是 慢库(SS)+ 悲观 RC(rc-worst)+ 低压高温;hold 的最坏通常是 快库(FF)+ rc-best + 高压低温。PDK 明确规定哪些库角和哪些 RC 角是合法配对——自由笛卡尔积里大量组合没有制造意义,甚至自相矛盾。配对矩阵本身就是基线的一部分(见 F10)。
四、剪枝:让场景集合既小又覆盖最坏
- 按检查方向选极值:setup 只看慢端组合、hold 只看快端,不跑全表;
- 模式×角的可达性剪枝:sleep 模式下高频路径不存在,无需对它跑 setup;scan 模式按专用时钟约束单独签;
- 多模合并(mode merging):约束差异可参数化的模式共用 view,靠 mode 变量切换而非整套复制;
- 统一 worst 场景兜底:每个检查保留一个「全包络」悲观场景,防止剪枝漏掉罕见组合;
- 场景清单评审入库:场景定义文件随设计版本化,增删场景要评审——少签一个真实可达组合,就是漏签收。
五、MMMC 下的典型事故
| 事故 | 根因 | 拦截 |
|---|---|---|
| hold 在低温快角爆 | 只签了高温慢角 | setup/hold 分极值角,快低温强制入集 |
| 模式专属路径未签 | 场景与模式脱钩 | 每模式列存在路径并绑定 SDC |
| 库角寄生角错配 | 自由组合未按 PDK | 配对矩阵入基线、工具配置校验 |
| 功耗对不上场景 | SAIF 张冠李戴 | 活动数据带模式标签(F6) |
| 剪枝剪掉真实最坏 | 剪枝无包络兜底 | 保留 worst 包络场景并评审 |
相关与延伸
- 应用核心:S5 签核枢纽;时序约束分层:F2 SDC;寄生角:F5 SPEF/SDF。
- 库角来源:F3 Liberty;基线锁定:F10 PDK。
总结
MMMC 把签核组织成「全局唯一的网表/DEF + 按角分的库与 SPEF + 按模式分的约束与活动」,再用 scenario 绑定成有工程含义的工况;角的合法配对由 PDK 规定,组合爆炸靠检查方向、可达性、模式合并加 worst 包络来剪枝——目标从来不是跑得全,而是不漏掉任何一个真实可达的最坏组合。