GDSII 与 OASIS:流片交付的「法律文件」(F8)
EDA 数据格式 列过 GDSII/OASIS 字段;本篇沿数据流讲它的交接生命:在 S6 被组装、检查、签字,再交给 S7 制造。为什么版图文件叫「法律文件」?因为一旦双方会签流片,硅上长什么样只认这份几何,不认你的 RTL、网表或意图。
一、GDS 里到底装了什么
- 按 layer + datatype(GDSII)或 layer + datatype/texttype编号的几何:边界多边形(boundary)、路径(path)、文本标、结构实例;
- 层级(structure/cell)嵌套:顶层结构放置(sref/aref)宏与单元结构,与网表层次大致对应但允许物理重组;
- 单位与数据库精度:一个 user unit 对应多少米、DBU(database unit)小数位数;
- 原点、层号、文本标注。
OASIS 是现代替代:用 CBLOCK 压缩、n 层名称/文本列表、严格的坐标与重复形状编码,同样设计数据体积可小一个数量级以上,并原生支持更大坐标范围;两者通过 layer map 互转。
二、layer map:本站最危险的一张表
GDS 层号本身没有行业统一语义——金属 6 在这家 PDK 是 36 号层,换一家可能是 62 号。map 文件负责「工具内部层名 ↔ GDS 层号/datatype ↔ 工艺用途」三方对应:

经典事故就是 stream-out 用错/用旧 map:某注入层静默丢失(DRC 甚至可能不报)、两层映到同一层、datatype 错导致只出图形不出标识。map 必须用 PDK 随版本提供、纳入基线(见 F10),禁止项目私自改。
三、stream-in/out 与 LVS 回路
- stream-out:P&R 数据库(DEF + 单元 GDS)合成整芯 GDS;
- stream-in:代工厂或签核工具把 GDS 读回做独立检查;
- LVS:从 GDS 抽出版图网表,与逻辑网表比对(见 S6)。能过 LVS 才证明这份几何真的连对了电路。
因此「GDS 通过 DRC」远远不够:DRC 只看几何规则,LVS 才回答「这是不是我要的电路」。
四、版本回灌:dummy fill 让 GDS 不是终点动作
S6 金属 dummy fill 为满足密度规则而加图形,会改变耦合电容。正确闭环是:
bash
布线 GDS → 加 fill → 回提 SPEF(含 fill 寄生)→ 回 S5 复签时序
└→ 与最终 LVS 网表、签字 GDS 同版本如果先发了带 fill 的 GDS、却用 fill 前提取的 SPEF 签收时序,就是在给另一颗电容网络的芯片盖章。GDS、LVS 源网表、回提 SPEF 必须是同一版几何的派生物。
五、数据契约与典型事故
| 事故 | 根因 | 拦截 |
|---|---|---|
| 注入层丢失 | layer map 错/旧 | PDK 受控 map + 层清单逐一会签 |
| DRC 过但电路错 | 只做 DRC 未过 LVS | GDS 抽版网表强制 LVS clean |
| fill 后时序回退 | 填充增容未回提复签 | fill→回提 SPEF→S5 复签闭环 |
| 单位/原点错位 | DBU/原点与厂方不符 | 单位原点写入 manifest,回读比对 |
| GDS 体积失控 | 全展平、无压缩 | 保留层次或用 OASIS/CBLOCK |
相关与延伸
- 生产站:S6 物理验证/GDS;消费方:S7 掩模数据准备。
- 基线与版本契约:F10 PDK 与签核基线;字段字典:EDA 数据格式。
总结
GDSII/OASIS 是只认几何的法律文件,层号语义全靠一张受控 layer map 维系,DRC 保形状合法、LVS 保电路正确;dummy fill 之后它还会回头改变寄生,所以签字 GDS、LVS 网表与回提 SPEF 必须源自同一版几何并一起回灌复签。