3. Calibre DRC基础与封装规则映射
先进封装中的 DRC 验证,本质上不是把晶圆厂的规则文件原样搬到封装版图上,而是把封装设计规则(RDL 线宽/间距、Bump 直径/间距、UBM 开窗、钝化层覆盖、芯片与基板对位等)翻译成 Calibre 能识别、能判定、能报错的几何与布尔语句。理解这一层映射关系,是后续跑通 DRC、读懂结果、定位违规的前提。
一、Calibre DRC 规则文件的基本结构
一个可运行的 Calibre DRC 规则文件通常由若干功能段组成,顺序大体固定:首先是环境与输入声明,包括版图数据格式、顶层单元、层映射来源;其次是层定义段,把 GDS 层号/数据类型映射为有语义的层名;然后是派生层与运算层,用布尔、尺寸、选择等操作构造出规则判定所需的中间层;接着是检查主体,逐条写出宽度、间距、面积、密度、包围、延伸等规则;最后是输出与运行控制,包括结果数据库、报告格式、并行与线程设置。规则文件不是“写一条跑一条”,而是先建层、再算层、后判层,因此层定义的准确性直接决定后续所有检查的可信度。
在封装场景中,规则文件往往还要额外声明芯片坐标系与封装坐标系的关系、是否包含多芯片拼接、是否启用层次化处理等。若这些前置声明缺失或写错,后续即使规则语句本身正确,也会出现“该报的没报、不该报的报一堆”的情况。
二、层定义:从 GDS 数字到封装语义
Calibre 通过 LAYER 语句把版图中的物理层映射为逻辑层。典型写法如下:
LAYER RDL1 100
LAYER RDL1_DATATYPE 100 0
LAYER BUMP_OPEN 101
LAYER UBM 102
LAYER PASSIVATION 103
LAYER SEALRING 104
其中数字对应 GDS 的层号与数据类型。封装 RDL 常以“金属层 + 开窗层 + 钝化层”成组出现,因此层定义阶段就要把 RDL 金属、UBM、Bump 开窗、钝化覆盖、划片道/密封环分别命名清楚。若同一物理层在不同芯片或不同封装区域含义不同,应通过区域限定或派生层区分,而不是复用同一个层名。
层定义完成后,通常还要建立派生层,例如“RDL 金属中排除测试结构”“Bump 开窗与 UBM 的交叠区”“钝化层未覆盖的 RDL 区域”等。这些派生层是后续规则判定的直接对象,命名应能反映其几何含义,避免用 L1、L2 这类无语义名称。
三、四类基础检查的语句形态
宽度检查用于约束 RDL 线宽、UBM 尺寸等最小几何尺寸,典型语句为 WIDTH RDL1 < 2.0,表示 RDL1 层上任何宽度小于 2.0 微米的图形报错。间距检查用于约束同层或异层之间的最小距离,如 SPACE RDL1 RDL1 < 2.0 检查 RDL 线间间距,SPACE RDL1 BUMP_OPEN < 1.5 检查 RDL 与 Bump 开窗的间距。面积检查用于约束最小金属面积或开窗面积,如 AREA RDL1 < 4.0,防止出现过于细碎、难以可靠制造的图形。密度检查则用于控制金属或 Bump 在给定窗口内的覆盖率,通常写成 DENSITY RDL1 < 0.3 WINDOW 100 100 STEP 50 这类形式,表示在 100×100 微米窗口、50 微米步进下,RDL1 密度低于 0.3 即报错。
这四类检查在封装规则中经常组合使用。例如 Bump 规则往往同时包含直径(宽度类)、Bump 间距(间距类)、UBM 开窗面积(面积类)以及局部密度限制。规则文件里应把同一对象的检查集中放置,便于后续维护和版本比对。
四、封装 RDL 与 Bump 规则的映射方法
映射的核心思路是“先确定判定对象,再确定判定条件,最后确定判定范围”。以 RDL 线宽为例,规则文档写的是“RDL 最小线宽 2.0 微米”,映射到 Calibre 时,判定对象是 RDL1 层,判定条件是宽度小于 2.0,判定范围默认是全芯片。若规则还要求“仅在 Bump 下方区域放宽到 1.5 微米”,就需要先用区域限定构造出 Bump 下方区域,再在该区域内单独写一条放宽后的宽度检查,而不是直接修改全局规则。
Bump 规则的映射更依赖派生层。Bump 通常由开窗层、UBM 层和金属层共同描述,因此判定“Bump 直径”时,往往不是直接量开窗层,而是先构造 BUMP_AREA = BUMP_OPEN AND UBM,再对 BUMP_AREA 做宽度或面积检查。判定“Bump 间距”时,则对 BUMP_AREA 做同层间距检查。判定“UBM 开窗面积”时,直接对 BUMP_OPEN 做面积检查。判定“钝化层覆盖”时,用 ENCLOSURE PASSIVATION RDL1 < 1.0 这类包围检查,表示钝化层对 RDL 边缘的包围不足 1.0 微米即报错。
密度检查的映射需要特别注意窗口与步进。封装 RDL 密度通常按局部窗口统计,窗口过大则掩盖局部稀疏,窗口过小则统计噪声大。示例中采用 100×100 微米窗口、50 微米步进,是一种兼顾局部性与稳定性的折中。规则文件里应把窗口尺寸、步进、密度上下限写成可配置参数,便于不同产品快速调整。
五、一个可参考的映射检查清单
为避免漏映射,可在规则文件评审时逐项核对下表。表中参数为教学示例,实际项目应以封装设计规则文档为准。
| 封装规则项 | 判定对象 | Calibre 语句 | 示例阈值 |
|---|---|---|---|
| RDL 最小线宽 | RDL1 | WIDTH | 2.0 μm |
| RDL 最小线距 | RDL1 同层 | SPACE | 2.0 μm |
| Bump 最小直径 | BUMP_AREA | WIDTH | 25 μm |
| Bump 最小间距 | BUMP_AREA 同层 | SPACE | 40 μm |
| UBM 最小开窗面积 | BUMP_OPEN | AREA | 300 μm² |
| 钝化层包围 RDL | PASSIVATION 对 RDL1 | ENCLOSURE | 1.0 μm |
| RDL 局部密度 | RDL1 | DENSITY | 0.3~0.7 |
| RDL 与 Bump 开窗间距 | RDL1 对 BUMP_OPEN | SPACE | 1.5 μm |
最后需要强调,Calibre DRC 语句只是规则的“执行形式”,真正的依据仍是封装设计规则文档。映射过程中应保留规则编号与语句的对应关系,便于规则更新时快速定位需要修改的语句。层定义、派生层、检查语句、输出控制四段结构清晰、命名一致,才能让规则文件在多次迭代中保持可维护、可复核。