数据交接契约:把「我跑过了」变成「这包文件请你签收」(X1)
主线 S0–S7 的每个箭头都是一次 handoff。横切篇 X3 讲变更怎么传、F10 讲版本怎么锁;本篇回答最基础的组织问题:一次里程碑交付,到底交什么、谁对正确性负责、对方凭什么签收? 绝大多数流片事故不是某个工具跑错,而是交接面拿错了版本——这类问题只能靠契约,不能靠责任心。
一、交接面为什么是事故高发区
交接的两端天然信息不对称:交出方知道「这个数据怎么来的、哪些角还没跑、哪个 waiver 是临时的」,接收方看到的只是一堆文件。没有契约时,双方靠口头和记忆填补这些缝隙:

二、一次合格 handoff 的六要素
| 要素 | 说明 |
|---|---|
| 文件清单 | 每个交付物的逻辑路径、checksum、版本 tag,区分主版本与派生物 |
| 角与模式 | 覆盖哪些 PVT/RC corner、哪些 functional/power mode(见 X2) |
| 原子版本 | 必须同源的数据显式绑成一组(如 routed 网表+DEF+SPEF,见 S4) |
| 成熟度/限制 | 哪些检查已 clean、哪些是预估、哪些角待补、已知风险 |
| owner 与签收方 | 每项数据的生产者负责人、接收确认人 |
| waiver 与例外 | 放过的违例及理由、有效期、批准人,随数据版本化 |
「跑过了」和「可签收」的差别,正是后四行。
三、可复用的 handoff checklist 模板
bash
里程碑:S4 routed-data 交付 日期 / 版本 tag:________
基线:PDK____ 库____ deck____ 工具____(对应 F10 四元组)
交付文件
[ ] routed 网表 path/cksum owner:____
[ ] routed DEF path/cksum owner:____ (与网表原子同版)
[ ] 时钟树报告 path
[ ] 各角 route DRC/短线报告
覆盖角/模式:SS/0.81V/-40c … ;func/scan;sleep/active
成熟度:setup 已签 / hold 待布线后复签 / SI 角进行中
附带 waiver:#17 天线违规,已加 diode,批准人____
未决风险:宏 A 周边拥塞,若 ECO 触发将重出本包
交出方签字:______ 接收方签字:______这张卡的价值在于强迫显式化:没跑完的角必须写成「进行中」,不能默认全绿;同源关系必须打勾,漏一项就暴露。
四、文件清单文化的三条工程规矩
- 发布走 release 区,不在 scratch 区交接:接收方只读冻结副本,交出方继续迭代不影响已签收版本(数据分区管理细节见 X4 规划)。
- 发布说明与数据同寿命:清单/changelog 放进交付包,而不是聊天记录;任何重发递增版本并写明作废了哪一版。
- 签收即背书:接收方签收代表「我已确认这包数据覆盖我下游所需的角与模式」,后续发现漏角,责任界面清晰。
五、典型交接事故与拦截
| 事故 | 根因 | 契约如何拦 |
|---|---|---|
| 拿旧 SPEF 签收 | 无版本/cksum,软链被换 | 清单带 checksum 与原子版本 |
| 漏签某 corner | 没声明覆盖角 | 角×模式矩阵入 checklist |
| 临时 waiver 变永久 | 例外未记录 | waiver 带理由与有效期随包 |
| 网表/DEF 不同源 | 同源关系未声明 | 原子版本字段强制绑定 |
| 用了预估数据当真值 | 成熟度未标 | 每项标 clean/预估/进行中 |
相关与延伸
总结
里程碑交付的本体不是一句「跑过了」,而是一包带文件清单、角模式覆盖、原子版本、成熟度、owner 和 waiver 的契约;清单文化把交接两端的信息缺口逼到纸面上,让「拿错版本」在签收之前就不可能静默发生。