Sign-off交付前30项检查清单:流片前最后一道关
Sign-off(签收)是把设计数据交给晶圆厂之前的最后一道内部关口。一次流片(tapeout)的费用从几十万到上千万人民币不等(见 一次流片到底花多少钱),而绝大多数回片失败的原因,事后复盘都能在签收前的报告里找到蛛丝马迹。本篇把签收动作拆成五个交付域、共 30 项可机械核对的检查点,每项给出「看哪份报告的哪个字段」的判定标准。如果你还没建立流片的全局概念,建议先读 Tapeout 是什么。
本文要回答的问题
- Sign-off 阶段到底要签收哪些东西,按什么顺序分组核对?
- 每一项检查点的判定标准是什么——打开报告看哪个字段、阈值是多少?
- 某一项没通过就硬签出去,最典型的翻车后果长什么样?
- 网表、SDC、报告之间的版本一致性怎么保证不出错?
五域总览:30 项检查怎么分组
签收检查不是一张平铺的清单,而是按交付物来源分成五个域:综合域确认网表与约束自洽,STA 域确认时序收敛,物理验证域(DRC/LVS)确认版图合法且与网表一致,DFT 域确认可测性达标,文档与版本域确认交付包里的每份文件都能追溯到唯一版本。下面这张图先给出五个域的分工,后面逐域展开。
读这张图抓住一个顺序:从左到右是「先设计正确、再物理合法、最后交付可追溯」的递进。前三域任何一项红了,后两域做得再漂亮也不能签。
一、综合域:网表与约束自洽(第 1-6 项)
综合是 RTL 变成门级网表的环节,这里的疏漏会原样带进后端。综合流程的整体背景见 逻辑综合。
| # | 检查点 | 判定标准 | 不通过的典型后果 |
|---|---|---|---|
| 1 | 约束完备性 | check_timing 报告无 unconstrained_endpoints | 大量路径根本没被时序分析,STA 收敛是假象 |
| 2 | 时序约束复核 | SDC 中 create_clock/create_generated_clock 数量与设计时钟树一致 | 派生时钟漏约束,硬件分频路径时序失控 |
| 3 | 面积报告 | 总面积 ≤ 裸片预算的 85%,预留布线余量 | 后端布不通,被迫回综合砍功能 |
| 4 | 功耗报告 | 动态功耗与漏电功耗均低于功耗预算,报告基于真实切换率(SAIF) | 回片后芯片过热降频,实际性能不达标 |
| 5 | lint 清零 | lint 报告无 error,warning 逐条有豁免评审记录 | 位宽截断、锁存器意外推断等隐患流入网表 |
| 6 | 网表一致性 | 形式验证(LEC)报告 equivalence 全 PASS | 综合优化改动了逻辑功能,RTL 仿真结论作废 |
这六项里最容易被敷衍的是第 2 项:设计评审时大家盯着主时钟,硬件分频产生的派生时钟常常没人补约束。第 6 项则是底线——LEC 不过,等于你交付的网表和仿真的 RTL 不是同一个东西。
二、STA 域:时序收敛(第 7-12 项)
静态时序分析(STA,Static Timing Analysis)是签收的重头,原理可对照 时序分析 与 建立时间违例的根源。
| # | 检查点 | 判定标准 | 不通过的典型后果 |
|---|---|---|---|
| 7 | WNS | 最差负裕量 WNS = 0(无负值),所有 corner/mode 均成立 | 最高频路径建立时间违例,芯片上不了目标频率 |
| 8 | TNS | 总负裕量 TNS = 0 | 大面积路径欠裕,无法靠降频单点规避 |
| 9 | 违例路径数 | 保持时间(hold)违例路径数为 0 | hold 违例降频也救不回来,直接功能错误 |
| 10 | 跨时钟域 | CDC 报告无未处理的异步穿越,同步器全部识别 | 亚稳态流入控制逻辑,偶发性死机难复现 |
| 11 | 多角多模式 | PVT 全角(SS/TT/FF × 高低温 × 各电压)全部收敛 | 只验了典型角,低温或慢角硅片批量翻车 |
| 12 | 时序例外 | 每条 set_false_path/set_multicycle_path 有书面理由并复核 | 误标 false path 把真路径豁免掉,漏分析 |
第 7、8 项是多数团队看得最紧的,第 10、12 项才是资深工程师会反复追问的:CDC 和时序例外的错误不会在常规仿真里暴露,上了硅才咬人。
三、DRC/LVS 域:物理验证(第 13-18 项)
版图做完后必须过两道关:设计规则检查(DRC,Design Rule Check)确认几何图形能被工艺制造,版图与原理图一致性(LVS,Layout vs Schematic)确认版图实现的电路就是网表描述的电路。物理设计的全流程见 物理设计。
| # | 检查点 | 判定标准 | 不通过的典型后果 |
|---|---|---|---|
| 13 | 规则集版本 | DRC deck 版本与晶圆厂当前 release 一致(核对版本号) | 用过期规则集签收,厂方 runset 一跑全是违规 |
| 14 | DRC 归零 | 违规数为 0;任何 waiver 有厂方书面认可 | 晶圆厂拒收,或制造出来良率灾难 |
| 15 | LVS 一致 | LVS 报告 netlist match,无 open/short | 版图和网表对不上,芯片内部断线或短路 |
| 16 | 天线规则 | antenna 违规为 0(或全部插入二极管修复) | 等离子刻蚀打穿栅氧,隐性可靠性损伤 |
| 17 | 密度规则 | 各层 metal density 在工艺窗口内 | CMP 研磨不均,层间厚度超差影响良率 |
| 18 | ERC | 电学规则检查无 floating gate、无电源短路 | 栅极悬空导致随机导通,功耗异常 |
第 13 项看起来最「行政」,却是新手最常踩的:晶圆厂一个季度可能更新好几次 rule deck,签收前不核对版本号,等于白跑一轮验证。
四、DFT 域:可测性达标(第 19-24 项)
可测性设计(DFT,Design for Test)保证芯片造出来之后能被测试机有效筛出坏片,背景见 可测性设计。
| # | 检查点 | 判定标准 | 不通过的典型后果 |
|---|---|---|---|
| 19 | 故障覆盖率 | stuck-at 覆盖率 ≥ 99%(或项目约定值) | 坏片漏过测试流向客户,现场失效 |
| 20 | 测试覆盖率 | transition/at-speed 覆盖率达项目目标 | 时序相关缺陷测不出来,高速场景翻车 |
| 21 | 扫描链完整 | 扫描链 trace 报告无断链,链数与设计一致 | ATE 上扫描移位直接失败,整批无法测试 |
| 22 | 压缩比 | 压缩逻辑工作正常,测试时间在预算内 | 单片测试时间超标,测试成本吃掉利润 |
| 23 | MBIST | 内建自测覆盖全部嵌入式存储器并 PASS | 存储器位坏漏检,上板后随机数据错误 |
| 24 | 向量仿真 | 测试向量回灌门级仿真(含 SDF)无 mismatch | 向量本身有错,好片被判坏片,良率假象 |
DFT 域的核心思想是「测试也是设计的一部分」:覆盖率差一个百分点,对百万级出货就意味着上万片潜在的现场失效。
五、文档与版本域:交付可追溯(第 25-30 项)
最后一域不产生新数据,但决定前面 24 项的结论能不能被信任——所有报告必须指向同一份网表、同一份约束。
| # | 检查点 | 判定标准 | 不通过的典型后果 |
|---|---|---|---|
| 25 | 网表版本 | 交付网表的哈希/时间戳与 STA、LEC 报告输入一致 | 报告验的是旧网表,交付的是新网表 |
| 26 | SDC 版本 | 签收用 SDC 与 STA 报告头部记录的文件一致 | 约束中途改过,时序结论不适用于交付版 |
| 27 | 报告归档 | 五域全部报告按目录规范归档,可随时调阅 | 出问题时无法回溯,复盘无据可依 |
| 28 | 命名规范 | 交付文件名符合厂方/项目命名约定 | 厂方系统解析失败,交付包被退回 |
| 29 | 数据校验 | GDS/OASIS 文件 checksum 与传输记录一致 | 传输损坏未发现,厂方拿到残缺数据 |
| 30 | 签收记录 | 检查表逐项签字,责任人、日期、版本齐全 | 责任无法界定,出了事全组背锅 |
第 25、26 项值得单独说:大项目里网表和约束天天在改,「报告跑的是哪一版」必须靠机器校验(哈希比对),不能靠人记。第 30 项的签字不是形式主义——它强迫每一项都有具体的人回答「这项我真的看过了」。
这一篇在知识体系里的位置
本篇是芯片设计流程末端「交付质量」环节的操作清单,向上承接 芯片设计全流程 的 Sign-off 阶段定义,向下细化到每份报告的具体字段。配套的深入阅读:RTL 仿真过了不代表能流片 讲清为什么前端验证的结论不能替代签收检查;时序部分的理论基础在 时序分析;测试成本与良率的关系可回看 一次流片到底花多少钱。
总结
Sign-off 交付前 30 项检查清单把「能不能交片」这个大问题拆成五个域的机械核对:综合域六项保网表与约束自洽,STA 域六项保时序在全角全模式下收敛,DRC/LVS 域六项保版图合法且与网表一致,DFT 域六项保芯片出厂可测,文档与版本域六项保交付包可追溯。每项检查都有明确的判定字段——打开报告看一眼就知道过没过。清单的价值不在条目本身,而在于把签收从「凭经验拍板」变成「逐项打钩」:五域全部打钩之前,交付包不出项目组。