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 开窗面积(面积类)以及局部密度限制。规则文件里应把同一对象的检查集中放置,便于后续维护和版本比对。

封装规则到 Calibre DRC 语句的映射链 封装规则对象 RDL 线宽 / 线距 最小 2.0 / 2.0 μm Bump 直径 / 间距 直径 25 μm / 间距 40 μm UBM 开窗面积 最小 300 μm² 钝化层覆盖 包围 RDL 边缘 ≥ 1.0 μm 金属 / Bump 密度 窗口 100×100 μm 芯片-基板对位 映射操作 层定义 LAYER GDS 层号 → 语义层名 派生层运算 AND / NOT / SIZE / SELECT 规则语句生成 WIDTH / SPACE / AREA / DENSITY 条件与区域限定 REGION / INSIDE / OUTSIDE 窗口与步进设置 WINDOW / STEP 坐标系与对齐声明 Calibre DRC 语句示例 LAYER RDL1 100 LAYER BUMP_OPEN 101 RDL_UBM = RDL1 AND UBM PASS_RDL = PASSIVATION NOT RDL1 WIDTH RDL1 < 2.0 SPACE RDL1 RDL1 < 2.0 AREA BUMP_OPEN < 300 DENSITY RDL1 < 0.3 WINDOW 100 100 STEP 50 ENCLOSURE PASSIVATION RDL1 < 1.0 SPACE RDL1 BUMP_OPEN < 1.5 REGION ( -50 -50 ) ( 50 50 )

四、封装 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 语句只是规则的“执行形式”,真正的依据仍是封装设计规则文档。映射过程中应保留规则编号与语句的对应关系,便于规则更新时快速定位需要修改的语句。层定义、派生层、检查语句、输出控制四段结构清晰、命名一致,才能让规则文件在多次迭代中保持可维护、可复核。