3. 封装版图几何操作与层处理
在先进封装物理验证中,RDL(重分布层)与凸点(Bump)结构是连接芯片内部与封装基板的关键几何对象。与前端数字版图不同,封装版图往往由多个来源拼接而成:芯片 PDK 提供的 RDL 走线层、UBM 开窗层、凸点金属层,封装厂提供的基板焊盘层、阻焊开窗层,以及测试用的探针标记层。这些层在 Calibre 中并不是天然对齐的,需要经过层定义、派生、布尔运算、尺寸调整和层间关系检查,才能形成可验证的几何模型。本节围绕 RDL 与凸点结构,说明这些几何操作的实际做法与判断依据。
层定义与派生:从原始 GDS 到可验证层
Calibre 的层处理入口是规则文件中的 LAYER 语句。封装验证中常见的做法是:先为每个 GDS 层号/数据类型建立基础层,再通过派生得到逻辑层。例如,某封装 PDK 中 RDL 走线位于 layer 10 datatype 0,UBM 开窗位于 layer 20 datatype 0,凸点金属位于 layer 30 datatype 0。规则文件可写为:
LAYER RDL_METAL 10 0
LAYER UBM_OPEN 20 0
LAYER BUMP_METAL 30 0
LAYER RDL_DUMMY 10 1
LAYER PASSIVATION 40 0
// 派生:RDL 有效金属 = 走线层减去 dummy 填充
LAYER RDL_ACTIVE RDL_METAL NOT RDL_DUMMY
// 派生:凸点下金属开窗 = UBM 开窗与凸点金属的交集
LAYER UBM_BUMP UBM_OPEN AND BUMP_METAL
这里的关键是理解“派生”不是简单改名,而是把物理层转换为具有电学或工艺含义的逻辑层。RDL_ACTIVE 去除了 dummy 填充,用于后续的间距和宽度检查;UBM_BUMP 只保留真正被凸点覆盖的开窗区域,用于判断 UBM 是否被凸点完整包住。若直接对原始层做检查,dummy 会被误判为走线,开窗与凸点的错位也无法暴露。
布尔运算与尺寸调整:RDL 与凸点的几何修正
布尔运算在封装验证中主要解决三类问题:合并、切割和差集。以 RDL 为例,同一网络可能由多段走线拼接而成,需要先 OR 合并再检查连续性;而 RDL 与凸点之间需要保证足够的覆盖,可用 AND 求交集后判断面积。尺寸调整则用于补偿工艺偏差或建立检查窗口。Calibre 中常用 SIZE 语句,例如:
// 将 RDL 走线向外扩 0.5um,用于检查与相邻网络的间距余量
LAYER RDL_EXPAND SIZE RDL_ACTIVE BY 0.5
// 将凸点金属向内缩 0.3um,得到凸点核心区域
LAYER BUMP_CORE SIZE BUMP_METAL BY -0.3
// 检查 RDL 扩展后是否与相邻 RDL 重叠(即间距不足 1.0um)
LAYER RDL_SPACE_ERR RDL_EXPAND AND RDL_EXPAND
需要特别注意尺寸调整的方向约定:正数表示向外扩张,负数表示向内收缩,单位与版图数据库一致(通常为微米)。在 RDL 与凸点场景中,一个典型检查是“凸点是否完全落在 UBM 开窗内”。做法是先将 UBM 开窗向内缩一个安全余量,再与凸点金属求差集,若差集非空,说明凸点超出了安全边界。这个差集结果就是需要修复的几何对象。
层间关系操作:RDL 与凸点的对齐检查
层间关系操作的核心是“相对位置”而非单层几何。封装中常见的层间关系包括:包含(enclosure)、重叠(overlap)、间距(space)、延伸(extension)。Calibre 提供 ENCLOSURE、OVERLAP、SPACE 等检查语句,也可以先用布尔运算构造关系层再检查。以凸点与 UBM 开窗为例,要求凸点金属完全覆盖 UBM 开窗,且每边至少外扩 1.0 μm。实现方式是:
// 凸点向外扩 1.0um 后,应完全包含 UBM 开窗
LAYER BUMP_ENCL SIZE BUMP_METAL BY 1.0
LAYER ENCL_ERR UBM_OPEN NOT BUMP_ENCL
// ENCL_ERR 非空处即为凸点对 UBM 包覆不足的位置
这里的方向约定必须统一:SIZE ... BY 正数 表示几何向外扩张,NOT 表示前者减去后者。若把方向写反,检查结果会完全相反。对于 RDL 与凸点之间的连接,则常用 OVERLAP 判断两者是否有足够的接触面积,避免出现“凸点悬空”或“RDL 未接到凸点”的开路风险。
层次化处理与扁平化策略
封装版图通常包含大量重复单元,例如凸点阵列、RDL 扇出单元、测试焊盘单元。Calibre 默认以层次化方式处理,保留 cell 的引用关系,这对内存和运行时间更友好。但在某些检查中,层次化会带来问题:例如跨 cell 边界的 RDL 走线,如果只在单个 cell 内检查间距,可能漏掉相邻 cell 之间的实际间距。此时需要选择性地扁平化。
Calibre 中可通过 FLATTEN 语句或 DFM 相关选项控制扁平化范围。实际策略是:对凸点阵列这类规则重复结构,保留层次化,利用阵列重复性加速;对 RDL 走线这类跨单元连续结构,在检查前将相关层扁平化到指定层级,确保跨边界几何被正确合并。一个可参考的判断依据是:若某层在多个 cell 中都有图形且需要做全局间距检查,就应扁平化;若某层只在单个 cell 内闭合,则保留层次化。
SIZE 的正负号和 NOT 的操作数顺序。封装验证中大量错误来自层方向写反或差集顺序颠倒,而不是规则本身复杂。
一个可复用的检查清单
| 检查项 | 涉及层 | 操作 | 判断依据 |
|---|---|---|---|
| RDL 最小间距 | RDL_ACTIVE | SIZE +0.5 后 AND 自身 | 交集非空表示间距不足 1.0 μm |
| 凸点对 UBM 包覆 | BUMP_METAL, UBM_OPEN | BUMP 外扩 1.0 后 NOT UBM | 差集非空表示包覆不足 |
| RDL 与凸点连接 | RDL_ACTIVE, BUMP_METAL | AND 求交集面积 | 面积小于阈值表示接触不足 |
| UBM 开窗与钝化层关系 | UBM_OPEN, PASSIVATION | ENCLOSURE 检查 | 开窗应完全落在钝化层开孔内 |
| 跨 cell RDL 连续性 | RDL_ACTIVE | 扁平化后连通域分析 | 连通域数量与网络表一致 |
以上操作链的最终目的,是把封装版图中分散的 GDS 层转换为具有明确工艺和电学含义的验证层,再通过布尔运算和尺寸调整构造出可判读的检查结果。RDL 与凸点结构只是其中一类典型对象,掌握层定义、派生、布尔、尺寸、层间关系和扁平化这六个基本动作后,面对基板焊盘、阻焊开窗、探针标记等其他封装结构时,可以按同样的思路建立检查规则。关键在于每一步都明确输入层、运算方向和输出层的物理含义,而不是机械地堆叠语句。