设计数据准备:GDSII/OASIS文件格式、设计规则检查(DRC)基础、版图层次定义

各位工程师,咱们直接进入正题。今天聊的是封装签核流程里最基础、也最容易出问题的一环——设计数据准备。说白了,就是你要把芯片设计好的版图数据,转换成封装厂能认、能用的格式。这一步要是出了岔子,后面所有工作都得推倒重来。我见过太多项目因为数据格式不对,白白浪费两周时间。

一、GDSII与OASIS:两种主流格式的较量

先说说文件格式。目前业界最通用的就是GDSII,老牌格式,几乎所有EDA工具都支持。但它的缺点也很明显——文件体积大,读写慢。我记得十年前做过一个大型SoC项目,GDSII文件解压后足足有80GB,每次加载都要等半小时。

后来OASIS格式出现了。它用更高效的压缩算法,文件体积能缩小到GDSII的十分之一。我个人的习惯是:小规模设计用GDSII,大项目必须上OASIS。不过要注意,有些老旧的封装厂工具可能还不支持OASIS,签核前一定要跟工厂确认。

关键区别一览:

特性 GDSII OASIS
诞生时间 1970年代 2000年代
文件大小 较大 小(压缩率高)
读写速度 慢 快
工具兼容性 极好 较好
适用场景 小规模、传统流程 大规模、先进工艺

你可能会问:「那我到底该用哪个?」我的建议是:先问封装厂支持什么。如果都支持,优先选OASIS。但有一点要记住——无论选哪种,最终输出的文件必须经过完整性校验。我曾经吃过亏,文件传输过程中损坏了一个bit,结果DRC跑出来几千个错误,排查了整整两天。

二、设计规则检查(DRC)基础

DRC,设计规则检查。听起来很基础对吧?但恰恰是这一步,能筛掉80%的后期问题。DRC的核心逻辑很简单:检查你的版图是否满足工厂的制造能力。比如线宽不能太细,间距不能太小,金属密度不能太高或太低。

嗯,这里要注意:DRC规则不是一成不变的。不同封装厂、不同工艺节点,规则差异很大。我建议你在项目启动前,就找工厂要一份最新的DRC规则文件(通常是Runset或Rule Deck)。别用上一版项目的规则,我见过有人复用旧规则,结果新工艺的微凸点间距要求变了,流片回来全部短路。

实战技巧:DRC跑完后,别急着看所有错误。先按「严重等级」排序。致命错误(如短路、开路)必须清零,警告类错误可以酌情处理。我一般会先修掉前10个最严重的错误,然后重新跑一遍,因为很多错误是连锁反应。

DRC的常见检查项包括:

  • 最小线宽/间距:金属走线不能太细,否则电流密度过大会烧断
  • 金属密度:太稀会导致CMP平坦化不均,太密会应力集中
  • 通孔覆盖:过孔必须被上下层金属完全覆盖,否则断路
  • 焊盘开窗:阻焊层开口必须比焊盘大,否则焊接不良
  • 划片槽:芯片边缘必须有足够的划片区域

我给你们画个流程图,看看DRC在整个签核流程中的位置:

版图设计完成 数据格式转换 GDSII/OASIS DRC检查 设计规则验证 通过? 修改版图 签核输出 交付封装厂 封装签核DRC流程

看到没?DRC是个循环过程。改版图、跑DRC、再改、再跑,直到清零。我见过最夸张的项目,DRC迭代了17轮才通过。别怕麻烦,这一步省下的时间,会在后面十倍百倍地还给你。

⚠️ 常见坑点:DRC跑通不等于万事大吉。有些规则是「软规则」,比如金属密度建议值,跑DRC不会报错,但实际制造时良率会下降。我的做法是:除了跑工厂的标准DRC,再额外跑一遍「经验规则检查」,把过去踩过的坑都写进去。

三、版图层次定义

版图层次,说白了就是给不同功能区域贴上标签。比如金属层、介质层、焊盘层、阻焊层……每一层都有特定的物理属性和工艺要求。层次定义混乱,是新手最容易犯的错误。

我举个例子:有一次项目里,工程师把「顶层金属」和「再分布层」画在了同一个层次里。结果DRC跑出来全是短路错误,因为工厂的规则认为这两个层次之间必须有介质隔离。后来花了三天才排查出来,就是因为层次定义没搞清楚。

标准的版图层次通常包括:

  1. 金属互连层:M1、M2……顶层金属,用于信号和电源布线
  2. 介质层:VIA层,连接不同金属层
  3. 焊盘层:PAD,用于打线或植球
  4. 阻焊层:SOLDERMASK,保护非焊接区域
  5. 标记层:TEXT、MARK,用于对准和识别
  6. 划片层:SCRIBE,定义芯片切割路径

每个层次都有对应的层号和数据类型。比如GDSII里,层号是整数,数据类型也是整数。不同工厂的层号映射表完全不同。我个人的习惯是:在项目一开始,就建一个「层次对照表」,把设计用的层名、层号、工厂的层名、层号一一对应起来。这样后面导出数据时,直接查表,不会出错。

避坑指南:我曾经因为层次命名不规范,导致封装厂读入数据时把「PAD_OPENING」和「PAD_METAL」搞混了。后来我强制团队使用统一的命名规则:功能_材料_层次,比如 PAD_AL_TOP、VIA_CU_M1M2。清晰明了,谁都不会看错。

最后说一句:数据准备阶段,慢就是快。花一天时间把格式、规则、层次定义都理清楚,后面能省下一周的时间。别急着往下冲,先把地基打牢。

可可精品资料库