3. 封装协同设计流程:从芯片设计到封装设计的协同流程、数据交换格式(LEF/DEF、GDSII)、设计规则检查

各位工程师朋友,今天我们来聊聊封装协同设计流程。说实话,这个主题我讲了不下二十次,但每次都有新感悟。芯片设计和封装设计,以前是各干各的,现在必须协同起来。为什么?因为芯片越做越小,频率越来越高,PDN(电源分配网络)的挑战越来越大。

我个人习惯把协同流程分成三个阶段:前端规划、中端数据交换、后端验证。每个阶段都有坑,我一个个说。

3.1 协同流程:从芯片到封装的“握手”

芯片设计团队和封装设计团队,就像左手和右手。左手画圆,右手画方,最后要拼成一个完整的圆。怎么协同?我建议按以下步骤走:

  1. 芯片顶层规划阶段:芯片团队给出IO pad的位置、电源域划分、关键信号走向。封装团队据此规划BGA球栅阵列和电源层叠。
  2. 芯片详细设计阶段:芯片团队输出LEF/DEF文件,封装团队导入后进行扇出布线、电源网络设计。
  3. 封装设计阶段:封装团队完成基板设计,输出GDSII文件。芯片团队检查是否与芯片版图冲突。
  4. 联合仿真验证阶段:双方共同进行IR Drop、SSN(同步开关噪声)仿真,确保PDN性能达标。

核心要点:协同不是串行,而是并行。芯片还没tape out,封装就要开始预布局。我见过太多项目因为“等芯片定稿再搞封装”而延期,血的教训。

3.2 数据交换格式:LEF/DEF 和 GDSII

数据交换是协同的“语言”。说错了话,后面全白干。常用的格式有三种:

格式 用途 谁生成 谁使用
LEF 描述芯片的物理库信息(引脚位置、金属层、布线规则) 芯片设计团队 封装设计团队
DEF 描述芯片的实例化信息(单元位置、电源网络、信号连接) 芯片设计团队 封装设计团队
GDSII 描述芯片/封装的最终版图(多边形、层次结构) 芯片/封装设计团队 制造厂、仿真团队

LEF/DEF 是“轻量级”交换格式。它只包含芯片的抽象信息,不包含完整的版图细节。封装团队拿到LEF/DEF后,可以快速知道芯片的IO位置、电源pad分布、布线阻挡层。我在项目中遇到过,芯片团队给了错误的LEF文件,封装团队按那个布局,结果芯片实际尺寸大了0.5mm,整个基板重做。所以,LEF/DEF 必须与芯片实际版图一致,这是底线。

GDSII 是“重量级”交换格式。它包含芯片或封装的完整版图。封装团队在完成基板设计后,输出GDSII给芯片团队做DRC(设计规则检查)。GDSII 文件通常很大,一个复杂的SoC芯片可能几百MB。我建议用分层GDSII,只交换必要的层次,否则传输和加载都慢得要命。

我的经验:LEF/DEF 用于早期协同,GDSII 用于最终验证。不要用GDSII做早期迭代,太慢了。我曾经有个项目,封装团队直接用GDSII做预布局,每次加载半小时,后来换成LEF/DEF,效率提升10倍。

3.3 设计规则检查(DRC):协同的“守门员”

设计规则检查,说白了就是检查你的设计有没有违反制造工艺的物理限制。封装协同中的DRC,比单芯片DRC复杂得多。为什么?因为涉及两个设计域:芯片域和封装域。

常见的DRC检查项包括:

  • 间距检查:芯片pad到封装走线的间距、封装走线之间的间距。我记得有一次,芯片pad间距是0.4mm,封装走线宽度0.3mm,结果间距只剩0.05mm,根本做不出来。后来改走线宽度才解决。
  • 金属密度检查:封装基板各层的金属密度必须在工艺允许范围内。密度太低,CMP(化学机械抛光)会出问题;密度太高,蚀刻不均匀。
  • 通孔检查:芯片到封装的微凸点(micro-bump)间距、封装基板内的盲孔/埋孔尺寸。我曾经遇到一个项目,微凸点间距设计为40μm,但封装厂只能做45μm,结果全部重做。
  • 电源网络检查:电源/地网络的宽度、通孔数量是否满足电流承载能力。说白了,就是看你的PDN会不会烧掉。

避坑指南:我曾经在DRC环节吃过亏。芯片团队和封装团队各自做DRC,但没人做“跨域DRC”。结果芯片的pad位置和封装的走线有冲突,流片回来才发现。从那以后,我要求双方必须做联合DRC,用同一个工具跑一遍。

3.4 协同流程的核心逻辑图

下面这张图,是我自己总结的协同流程。你看一眼就明白了:

封装协同设计流程核心逻辑 芯片顶层规划 IO pad / 电源域 / 关键信号 LEF/DEF 封装预布局 BGA规划 / 电源层叠 / 扇出 反馈 芯片详细设计 版图 / 布线 封装详细设计 基板布线 / 电源网络 GDSII 联合DRC检查 间距 / 密度 / 通孔 联合仿真验证 IR Drop / SSN / PDN 芯片设计域 封装设计域

你看,整个流程是双向的。芯片设计阶段输出LEF/DEF给封装做预布局,封装反馈修改意见。芯片详细设计完成后,输出GDSII给封装做详细设计。最后双方联合做DRC和仿真。说白了,就是“你中有我,我中有你”。

3.5 实际项目中的协同要点

最后,我分享几个实际项目中的要点:

  • 数据版本管理:芯片和封装的数据版本必须对齐。我建议用Git或SVN管理,每次更新都打tag。否则,芯片改了pad位置,封装还在用旧版本,后果你懂的。
  • 设计规则提前对齐:芯片和封装的设计规则,必须在项目启动时就对齐。比如,芯片的最小线宽、封装的最小线宽,两者可能不同。提前对齐,避免后期返工。
  • 联合仿真不能省:有些团队觉得DRC过了就万事大吉,其实不然。DRC只检查物理规则,不检查电气性能。IR Drop、SSN这些,必须靠仿真。我有个项目,DRC全过,但仿真发现电源网络阻抗超标,最后加了两个去耦电容才解决。

我的习惯:每周开一次协同会议,芯片团队和封装团队各派一个人,拿着最新的LEF/DEF和GDSII,对着屏幕过一遍。发现问题当场改,不要拖。拖一天,后面可能要多花一周。

好了,关于封装协同设计流程,我就讲这么多。记住,协同不是形式,是实实在在的工程实践。数据格式、DRC检查、联合仿真,每一步都不能马虎。

可可精品资料库