EDA 数据管理:几十 GB 一跑,到底哪个文件算数(X4)
前 23 篇讲的都是「数据内容对不对」;本篇回答工程上同样致命的另一问:这么多 GB~TB 的中间产物,哪个是 golden、放在哪、何时能删、别人怎么引用到正确那一版。 没有数据管理(DM)纪律,再正确的格式也会在「引用了被覆盖的旧 run」上翻车。
一、数据的三六九等
| 类别 | 例子 | 可变性 | 处置 |
|---|---|---|---|
| 输入/受控源 | RTL、UPF、SDC、PDK 指针 | 只从 release 读 | 不可变区,权限只读 |
| golden 交接物 | 冻结网表、签核 SPEF、tape-out GDS | 里程碑级 | release 区 + checksum + 保留 |
| 可再生产物 | 综合/布局的中间库、日志 | run 内临时 | scratch 区,配额可清 |
| 波形/大型转储 | FSDB、VPD、dump | 大、可再生 | 限期保留,归档压缩 |
一次 Innovus run 的工作目录可能几十 GB,但真正要被下游引用的只有其中几个文件——把整个 run 目录当交接物拷贝/软链,是混乱之源。
二、release 与 scratch:一条不可逾越的边界

- scratch 区:迭代随便跑、可被清洁工按策略回收,任何人不得把 scratch 路径写进交接清单;
- promote(发布):达到 X1 定义的成熟度后,把 golden 文件连同 manifest、checksum、日志指针发布;
- release 区不可变:
release/<block>/<date>-<id>/一旦发布只追加不改版;下游通过版本目录或软链只读引用,禁止直接改别人正在用的文件; - 软链纪律:软链只允许「下游 run → release」单向指向,绝不允许 release 内部互链或链回 scratch——否则清理 scratch 会顺手删了 golden。
三、manifest:让一个版本自证身份
每个 release 目录带机器可读清单(见 F10 四元组):PDK/库/rule deck/工具版本、文件清单与 checksum、上游 release 指针、场景/角标签、owner。下游 run 启动先校验 checksum 与上游指针——X2 的多角一致性、X3 的原子版本包都靠它落地。
四、工具选型边界:git 管不了大文件,但管得了清单
| 手段 | 管什么 | 不管什么 |
|---|---|---|
| git | RTL、SDC、UPF、脚本、manifest 清单 | GB 级网表/GDS/波形(走 LFS 或外置) |
| 商用 DM(如 IC Manage/ClioSoft) | 大文件版本、组件复用、多站同步、权限 | — |
| 对象存储/NAS+软链 | 海量 release、归档分层 | 不管语义 diff 与评审 |
| 作业编排(姐妹工具规划 G3,规划中) | run 的依赖、重跑、工作目录 | 不替代 release 语义 |
关键心智:git 存「指哪一版」的指针与脚本,大文件存对象存储/商用 DM,二者由 manifest 缝合。 用 git 直接提交 GDS,或用网盘式共享盘让大家互相覆盖,是两个极端反模式。
五、生命周期:什么时候真能删
- 流片前:scratch 按配额滚动清理;里程碑 release 全留;
- tape-out:按 X1 归档包固化,签核所用一切输入+工具版本+日志长期保留(缺陷追责、改版复用都要可重建);
- 量产后:与 X6 硅后排障、后续 respin 相关的 release 继续保留,纯探索性 scratch 可清;
- 删除门禁:任何回收动作只针对「无 release 指针引用」的数据,先用软链/引用图确认无下游依赖。
典型事故
| 事故 | 根因 | 拦截 |
|---|---|---|
| 下游签的是被覆盖的旧网表 | scratch 共享、原地改 | 不可变 release + 版本目录 |
| 清磁盘删掉 golden | release 链回 scratch | 单向软链 + 引用检查 |
| 换工作站结果对不上 | 大文件拷贝残缺无校验 | manifest checksum 启动校验 |
| git 仓库被 GDS 撑爆 | 用代码库管大文件 | git 管指针,大文件外置 |
| respin 无法复现 | tape-out 输入未归档 | 归档包强制保留可重建 |
总结
EDA 数据管理靠「scratch 随便跑、promote 评审、release 不可变」三级分区,让 golden 交接物以带 checksum 和四元组的 manifest 自证身份,下游只用单向软链引用已发布版本;git 管指针、对象存储管大文件、商用 DM 管复用与多站同步,而删除永远只回收没有 release 引用的东西。