Cadence SIP Layout 这个工具,光看名字就能劝退一批人:APD、基板、wire bond、flip chip、激光埋孔……每一个词单独拿出来都够啃半天的。我写第一章的时候,重点放在怎么把流程跑通,也就是从建库、建基板到导网表、摆die、拉线,先让完全没接触过封装设计的人知道 SIP Layout 大概长什么样。但这章要聊的事情不一样——真正投过板之后你会发现,流程通只是第一步,后面还有一堆"规则"等着你。
这一章的目标是解决从"能画出来"到"能画对"之间的差距,会涉及叠层设计、约束规则、wire bond 和 flip chip 两种互联方式的实操、平面分割与铜皮处理、DRC 与制造文件输出。无论你是从 PCB Layout 转过来,还是学校出来直接做封装,只要手里有 Cadence SiP Layout 或者 APD 这类工具,这篇内容应该能帮你少走不少弯路。
1. 第二章该解决什么问题:从"通流程"到"做对设计"
1.1 先把SIP概念说透,顺便和通信SIP划清界限
很多人第一次看到"SiP"这个词,第一反应是通信协议里的 SIP(Session Initiation Protocol),甚至有人跑到群里问"Cadence 和防火墙 SIP ALG 有什么关系"。这里先明确一下,咱们聊的是 System in Package,系统级封装,是把多个裸芯片(die)、无源器件、甚至 MEMS 传感器集成在同一个封装基板上,通过引线键合(wire bond)、倒装焊(flip chip)等方式互联,最终形成一个完整功能模块的技术。
它和 SoC 最大的区别在于:SoC 是把所有功能模块做进同一颗硅片里,工艺制程必须统一,但如果你的系统里既有射频、又有数字、还有模拟,不同工艺节点之间往往互不相容——射频器件可能最优制程是 130nm 模拟工艺,数字逻辑却是 7nm 数字工艺,硬塞到一片晶圆上要么性能打折要么良率崩掉。SIP 的做法是各自用最优工艺做好 die,再在封装级把它们拼起来。这也是 SiP 这几年在射频模组、汽车雷达、高性能计算侧越来越火的原因。
从 Layout 角度看,SIP 基板比普通 PCB 要"细"得多。普通 PCB 走线宽度是 mil 级,也就是几 mil 到几十 mil,过孔是机械钻孔;SIP 基板的线宽线距是微米级,常见 15/15μm、25/25μm,过孔用激光打孔,孔径百微米以下。如果你过去一直画 PCB,第一次切到 SIP 设计时最直观的感受就是:规则不是做不出来,而是稍不注意就违反。所以在 SiP Layout 里,"先定规则再画图"不是口号,是保命用的。
1.2 第一章流程回顾:基础流程没做对,后面全是坑
第一章我展开讲过的链路是:建工艺库 → 创建基板外形(Package Symbol)→ 导入网表 → 摆放 die 和无源器件 → 手动布线 → 简单 DRC 检查。这套链路说起来不复杂,但很多人卡在第一步的"库"上:die 的 pad 尺寸写错、bond finger 放反、assembly 层和 silkscreen 层混用,后面每一步都会被连带崩掉。
这一章的时间点,我默认你手上已经有一个能跑通的工程,有基板外形、有元件库、网表导入没问题、至少画过几根线。如果你还没到这一步,建议先回去把第一章的基础流程过一遍,因为第二章讲的叠层、约束、wire bond、flip chip 这些操作,全都建立在一个"能跑通的最小工程"之上。
我实际带人的时候经常碰到一种情况:新手画到一半来问,"为什么我 DRC 报了一千多个错?"点开一看,全是约束规则没设置、叠层物理参数是默认值导致的。这就引出第二章的核心逻辑——SIP Layout 不是"画图",是"在规则约束下做规划和取舍"。这一章我按实际项目推进顺序来讲:先准备叠层和约束,再做互联设计,再处理平面,最后检查输出。顺序对了,返工就少。
2. 开工前的准备工作:叠层、约束和库,一项都不能省
2.1 叠层设计怎么做才靠谱:材料、Dk/Df 与阻抗预算
SIP 基板叠层不像 PCB 那样动辄十几层,常见的是 2~6 层,但每一层的材料选择和厚度直接决定电气性能。基板材料主流是 BT 树脂、ABF 载板材料,高频场景会用改进型或是混压方案。反映到设计上,你需要在 Setup → Cross Section 里把每一层的介质材料、厚度、铜箔厚度敲进工具,这些参数从哪来?不要自己拍脑袋,直接找基板厂要叠层建议书,或者参考你们公司量产过的同类基板。
介质层厚度和介电常数 Dk 决定阻抗。举个实际例子,有个项目要做 50Ω 单端,参考层距离 h=50μm、Dk 约 4.0、线厚 18μm,用阻抗计算器(Polar 或 Cadence 内建工具)扫出来线宽大约在 85~90μm 附近;如果把介质压薄到 h=35μm,同样的 50Ω 线宽会收到 60μm 左右。差分 100Ω 不是简单把单端线加宽或缩窄再复制一根就行,耦合关系会让线宽和线距同时影响阻抗,我习惯的做法是先定线距(比如 120μm),再扫线宽,直到目标阻抗落在容差范围内。
注意一个很多人踩过的坑:Cross Section 里每一层的金属厚度和介质厚度一定要按基板厂的真实叠层填,不要用 Cadence 默认值。默认值有时候看起来跑得很顺,但导出的阻抗和实际制造结果完全对不上,等流片回来用 TDR 测试一看,阻抗偏了 10% 以上,这种返工非常贵。
2.2 约束规则设置:把"该遵守的规矩"写进工具里
SIP 设计里约束规则的意思是,让工具在布线、摆放、检查时有没有一张"边界清单"。我见过不少新手,布线布得很欢,直到 DRC 才崩溃——线间距只有 8μm,而基板厂能力是 15/15μm,整版报废。所以在连线之前,先把约束建好,最基础的三类:
- 物理约束(Physical):各网络的最小线宽、最大线宽。电源网络通常要给 50μm 以上,信号网络 15μm 或 25μm 起步。
- 间距约束(Spacing):线与线、线与 pad、pad 与 pad 之间的最小间距。这个值必须不低于基板厂的工艺能力,我一般习惯取制程极限的 1.2 倍作为设计值,给产线留点余量。
- 电气约束(Electrical):单端阻抗、差分阻抗、等长组、最大/最小延时。Cadence 里可以在 Electrical Constraint Set 里建阻抗剖面和相对延时规则。
我在 Cadence 里的常规操作是:先建好几个 Constraint Set(比如 "SIG_25_50" "PWR_50"),赋给对应网络,再开约束管理器检查。约束设置还有一个隐蔽好处——布线时工具的实时高亮和自动避让会按你的约束来,画出来的线在物理上大概率是可行的,而不是等 DRC 再返工。实操感受是:每换一个基板厂,我就会把工艺能力表里的线宽线距、激光孔径、最小 pad 尺寸更新到自己的模板库里,一劳永逸。
2.3 库的规范化:die 的 pad、bond finger 和 layer 管理
库是 SIP 设计里第一生产力,也是最容易翻车的地方。die 库最关键的是 pad 定义——pad 的开口尺寸、间距、所在层必须和晶圆厂提供的 die 文档一致。常见的错误是 pad 的 geometry 放错层,铜箔层没有开阻挡层(soldermask),导致后面生成 wire bond 时工具根本选不到连接点。
另外就是 subclass 管理。Cadence 里层很多,比如 PACKAGE_GEOMETRY/ASSEMBLY、PACKAGE_GEOMETRY/SILKSCREEN、BOARD_GEOMETRY/OUTLINE,各有各的用途。ASSEMBLY 是装配层,指导贴片;SILKSCREEN 是丝印,用于目视标识。有些新手把元件位号、外形线一股脑画在同一层,后面导入装配图时一团糟。我的习惯是每个层只放它该放的东西:外形、腔体、散热焊盘放详细规格的专用子类,位号统一放 silkscreen,装配说明放 assembly。这样出图、出贴装文件、做 3D 检查的时候不用临时改层,省大量时间。
3. 两种互联方式的实操:wire bond 与 flip chip
3.1 wire bond 设计:从 die pad 到 bond finger 的每一步
wire bond 是目前成本最低、最成熟的裸芯片互联方式,用金线、铜线或银合金线把 die 的 pad 和基板上的 bond finger 连起来。设计时最核心的几个参数:线径、弧高、跨距、pad 开口尺寸和 bond finger 尺寸。
常规金线线径在 20~25μm,线距(两条相邻引线中心距)不能小于线径加安全余量,常见要求是相邻线芯间距不小于 50~60μm,具体看封装厂能力。die pad 的开口尺寸一般在 60~90μm 见方,bond finger 的宽度 50~70μm、长度 150~250μm,相邻 bond finger 的间距和线距匹配。设计时不要把这些值写死成你喜欢的数字,而是先跟基板厂和封测厂确认,再落到库和约束里。
Cadence SiP Layout 里做 wire bond 大致路径是:先在 Package Symbol 里定义 bond finger(引脚),把 die 摆到基板对应腔体位置,然后用 Wire Bond 菜单里的 Bond Wire 工具选择 die pad 和 bond finger 生成互联。工具会自动按预设的线弧参数(弧高、距离)生成 3D 线形,你可以看 profile 是否超出模封厚度。
我这几年踩过最深的坑是 die 间距。两颗 die 摆太近,wire bond 工具头伸不进去,打线机根本没法打;或者打出来的金线跨过另一颗 die 的边角,导致短路风险。封装厂一般会给一个"键合工具可达距离"约束,比如 die 边缘到相邻键合区边界至少留 300μm 以上。所以摆放 die 的时候不要只盯着基板面积能不能放下,还要确认 wire bond 的"操作空间"够不够。
3.2 flip chip 设计:bump、UBM 与扇出布线
flip chip 和 wire bond 完全不同,die 翻转过来,通过焊料凸点(bump)直接和基板上对应 pad 相连,优点是寄生电感小、I/O 密度高、适合高频和高速信号。代价是基板精度要求更高,bump pitch(凸点中心距)小的只有 60~130μm,基板对应 pad 的精度必须在 ±10μm 以内。
做 flip chip 设计时,Cadence 里要定义 bump 的阵列、位置和 UBM(凸点下金属层)开口。很多 die 的 bump 是整体阵列,工具可以一次生成一排或一个阵列的 bump,再走 RDL(再分布层)把密集的 bump 区扇出到规则线宽线距的走线区域。这里有个关键矛盾:bump 区 pitch 很小,比如 80μm,但基板制程线宽线距可能只有 15/15μm,直接扇出会很挤,这时候就要用 RDL 层做"阶梯式"扇出,或者在基板较粗的走线层和较细的 RDL 层之间靠盲孔转换。
我实际项目里最常碰到的问题是 bump 位置和 die 中心对不齐。Cadence 的 flip chip 摆放通常要以 die 中心和 bump 阵列中心为基准对齐,不能只看 die 外形居中。如果发现导入网表后所有 bump net 都不匹配,八成是 die 摆偏了 0.1mm 级别,视觉上看不出来,一检查全是错误。把 Die 的 Place 坐标精确到小数点后至少 3 位,是比较稳妥的做法。
3.3 混合互联与其他方向:不急于一时但值得了解
现在不少高端 SiP 封装是 wire bond + flip chip 混用:电源和地用 flip chip 降低寄生电感,普通信号用 wire bond 控制成本;或者主芯片用 flip chip,外围小 die、无源件用 wire bond。Cadence SiP Layout 对两种模式同时存在支持得还可以,前提是你把两种类型的 die 分别在库里正确标记,wire bond die 和 flip chip die 不要混用同一套 pad 定义逻辑。混合键合(hybrid bonding)属于下一代技术,密度极高,目前工具支持也在成熟中,如果不是做最前沿的 HBM 类封装,可以先不追,把工程基础打牢更重要。
4. 平面处理与电源规划:铜皮和 shape 的优先级
4.1 为什么要做平面分割:电源域、隔离与参考面
SIP 基板面积小、层数少,但电源域可能有好几个,还有模拟、数字、射频的隔离需求。平面分割的意义在于:让每个电源域有自己的低阻抗通路,同时避免不同敏感电路之间通过公共回流路径互相干扰。模拟地和数字地如果没切开,射频 LNA 的电源纹波可能通过地平面串到基带数字电路,导致灵敏度恶化。
在 Cadence 里做平面分割的核心工具是 Shape。先在对应层画一个大的 shape 覆盖整个区域,指定网络为 GND,再根据需要在这个大 shape 里挖掉不属于它的区域(或者直接画多个各自独立的 shape),模拟地和数字地就分开了。这里要注意的是,同一层上同网络的多个 shape 之间不能只是"看起来相连",Cadence 对铜皮的连接关系会严格判断是否为同一网络;如果你用两个独立 shape 放在同一层、中间隔了 5μm,DRC 会认为它们没有连通,处理后发现有孤岛网络未连接。
4.2 在 Cadence 里做 shape 的关键操作:优先级与 thermal relief
铜皮优先级这个问题,我在群里真的回答过好多次,热度高到大家都以为 Cadence 只有 PCB 才有这个功能。实际上 SiP Layout/APD 里同样有 shape 优先级(Shape Priority),它的作用是在多个 shape 重叠时决定谁覆盖谁。比如你要在内层同时铺一个 3.3V 的电源 shape 和一个 GND shape,两个 shape 在同一层交叉重叠,就必须先给其中一个设定更高优先级,否则工具不知道覆盖关系,DRC 会报短路或者网络错误。
实际操作路径一般是 Setup → Shapes → Shape Priority 或者 Use Priorities 选项,把电源网络的 shape 优先级设成高于 GND,让电源 shape 覆盖 GND shape 的区域不会贴在一起。还有一个容易被忽略的点是 thermal relief——铜皮连接到过孔或者引脚时,如果直接整块连接,焊接时散热快、容易虚焊,所以要给电源 pin、地 pin 设置热焊盘开窗。Cadence 里可以通过设置 pad 的 thermal relief 形状来生成十字连接,这直接影响封装焊接良率,别省。
4.3 电流密度与过孔阵列:一个粗糙但实用的预估方法
电源走线能过多少电流,工程上有个粗算方法:铜箔厚度 18μm、线宽 100μm 的走线,温升 10℃ 时大约能走 0.5A 左右的电流,如果需要更大的电流,就加宽、加厚或者多个过孔并联。不要指望一层细线灌满 5A 电流的电源轨,实际做的话我习惯至少给电源网络铺层面或双面多段并联,再通过过孔阵列互联。
过孔数量同样可以粗算:每颗激光微孔(孔径 75~100μm)在常规工艺条件下大约能承受 0.3~0.5A 电流。设计一个 2A 的电源域,过孔最好不要少于 6~8 个,而且要分散排布,集中在一小块区域反而造成局部热点。这些数字只是经验参考,严谨的话应该在 Layout 完成后用 Sigrity 做一次 IR Drop 和电流密度仿真,Cadence 生态里通常就是 SiP Layout 出图 → Sigrity 做 PI/SI 验证,这个链路配合得还不错。
5. 检查与输出:DRC、比对和生产文件
5.1 DRC、几何检查与常见报错怎么读
画完设计不等于结束,投板前的检查是最容易暴露问题的环节。Cadence SiP Layout 的 DRC 分好几种:经典的几何间距检查(Spacing/Width)、连接性检查(Connectivity)、以及针对封装设计的高级规则检查(如 GMP 几何制造规则)。我习惯先跑一次 Database Check(DB Doctor)确认数据本身没坏,再跑 DRC 更新,最后针对报错一条条看。
有个很典型的报错类型,一句话大意是"port 2 的引脚间距在电气上过大",第一次看到的人都懵。这类报错本质是工具检测到你的引脚之间电气距离远大于约束设定(或者说有信号完整性风险),常见诱因是某个高速网络在布线时走了很长一段绕线,或者 pin 到 pin 之间的连接没有按等长规则约束。处理方式不是直接 Waive,而是回到约束管理器里检查这个网络的相对延时/等长规则是否设置合理,再看走线路径有没有绕出不必要的长线。封装基板面积本来就小,很难像 PCB 那样靠走线长度补偿,所以更多要靠结构设计(比如交换 pin 顺序、调整 die 摆放)来满足时序。
5.2 网表比对、BOM 和贴装文件
网表比对是很多人都做得不够彻底的一步。从原理图导入网表后,Layout 端可能因为人为操作增删了连接,导致最终 PCB/基板文件和原理图不一致。在 Cadence 里可以通过 Design Compare 或导出网表后与原理图网表做比对,确保每个网络的器件和 pin 连接完全一致。我有一个原则:所有 DRC 清完以后,网表比对也必须零差异,这两个条件同时满足才敢投板。
BOM 输出大家应该都熟,Cadence 里可以直接跑 Report → Bill of Materials 生成物料清单,注意别漏掉 Die 和特殊元件,无源器件如果有多个封装位号,一定要带位号输出。另外贴装坐标文件也很关键,类似 PCB 的 pick-and-place 文件,它给出每个元件在基板上的精确坐标和旋转角度。SIP 里 Die 的贴装精度要求比普通贴片高很多,坐标输出我习惯保留到 0.01mm 精度,方便贴片机程序直接使用。
5.3 制造文件输出清单:投板前最后一步别仓促
SIP 基板要交出去的制造文件比普通 PCB 复杂,常规清单包括:基板各层图形(Gerber 或 ODB++)、钻孔文件、防焊层、字符层/装配层、叠层说明、BOM、贴装坐标、关键尺寸标注图。Cadence 里出 Gerber 用 Manufacture → Artwork,出 ODB++ 用相应的 Export 功能,我个人的偏好是 ODB++,因为它包含更多制造信息和层叠逻辑,现代基板厂基本都支持。
出文件前有一份自检清单,我贴在工位上,每次投板前过一遍:叠层厚度和材料说明是否更新;钻孔文件是否包含所有微孔和机械孔;铜皮优先级设置是否正确;热焊盘是否都开了十字连接;特殊区域(射频走线、敏感模拟)是否有明确标注;BOM 里有没有料号缺失。这些项目全部打勾后,我才会把文件包发出去。
6. 实战问答:SIP Layout 里那些常见的坑
6.1 常见问题速查
| 问题现象 | 可能原因 | 排查思路 |
|---|---|---|
| DRC 报线距不够 | 约束规则没设或设得比制程能力小 | 先看 Cross Section 和 Spacing 约束,按基板厂能力更新 |
| wire bond 生成失败 | die pad 层定义错误或 bond finger 方向不对 | 检查 die 库 pad 几何所在层,以及 bond finger 放置方向 |
| flip chip 所有 bump 网络不匹配 | die 摆放位置偏移 | 检查 die 中心与 bump 阵列中心对齐 |
| 同一网络铜皮中间出现孤岛 | shape 优先级或 shape 边界未连接 | 查看 shape 边界是否被挖断,用 DRC 检查孤立连接 |
| 阻抗测试和设计不符 | 叠层参数与工厂实际不一致 | 更新 Cross Section 为基板厂真实叠层,重新算阻抗 |
| 电源压降过大 | 走线太细、过孔数量不足 | 按电流密度估算加宽走线或加过孔阵列,上 Sigrity 仿真确认 |
这里说一个通用技巧:遇到任何"看起来不该报错但报了"的情况,先查约束规则,再查层定义,最后才怀疑工具 bug。我碰到过很多次"工具出问题"的误判,实际都是 Cadence 某个层的开关没开、或者约束没赋给某个网络导致的灰色地带问题,把层的显示和约束规则捋一遍,九成都能找到原因。
6.2 我踩过的坑和一些小技巧
第一个坑:把 PCB 的思维完全搬到 SIP。在 PCB 上我习惯把电源和地做成完整平面,信号在相邻层走;但 SIP 基板层少、且可能有射频/模拟敏感区,完整平面往往不现实,更常见的做法是局部铜皮 + 屏蔽过墙(一群 GND 过孔围住敏感区域)。所以不要执着于"每层都是完整平面",要学会在极小面积里做局部低阻抗回路。
第二个坑:die 的摆放顺序。表面看 die 摆哪里只影响布线长度,实际上影响打线弧高、模封厚度、散热路径。尤其注意不要把两个有大量互联的高频 die 摆得太远,否则哪怕走线等长,插损和寄生也会变大。我习惯先把 I/O 互联最多的 die 放在基板中心附近,其他 die 围绕它展开,这样布线路径短,后续优化空间大。
第三个小技巧:多用 3D 视图检查。Cadence SiP Layout 的 3D 浏览器可以直观看到 wire bond 弧线是否超出模封、bump 阵列是否对齐、芯片边缘是否超出基板。每次布完线我都切到 3D 转一圈,比盯 2D 图容易发现空间干涉问题。
最后分享一个关于模板的体会:同样类型的封装,尽量沉淀成模板,比如叠层参数、约束规则、常用 bond finger 尺寸、DRC 断言文件。很多公司反复做同类产品,却每次从零开始建规则,不仅浪费时间,而且容易前后不一致。我在做了几个项目以后,把这些规则固化成了公司内部模板,后面新项目导入时直接复用,设计效率明显提升。
SIP Layout 这个方向,工具操作只是基本功,真正值钱的是对制程、材料、封测工艺的理解。第二章内容到这里,核心就是把"做对设计"这件事变成流程的一部分:先定叠层和约束,再选互联方式,中途处理好平面和电源,投板前做足检查和输出。接下来如果你还想往下走,可以试试把 Layout 导到 Sigrity 做信号完整性和电源完整性仿真,那才是真正检验设计能不能量产的一关。