news 2026/9/29 1:25:21

Cadence SiP Layout 全流程设计:从库管理到制造输出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cadence SiP Layout 全流程设计:从库管理到制造输出

上一章把 Cadence SiP Layout 的定位和准备工作讲完了,这个工具到底是做什么的、和 Allegro PCB Design 有什么区别、工艺库文件要准备到什么程度。说白了,第一章解决的是"能不能开工"的问题,这一章直接回答"怎么画出来"。

我见过不少人卡在同一个地方:库文件照着教程建好了,Allegro 也会用,但一进入 SiP Layout 就不知道鼠标往哪儿点了。这其实不怪你,SiP Layout 的设计对象不是一块普通 PCB,而是一个封装体,里面同时存在裸芯片(die)、无源元件、基板走线和键合金线,工作逻辑和普通 PCB Layout 有本质差异。你没法拿着画 PCB 的那套习惯硬套,必须重新适应。

这篇文章就按真实项目的推进顺序走一遍:先整理库,再建工程和定基板尺寸,然后放 die、连 wire bond 和走线,最后跑 DRC、出制造数据。整个流程走完,你手上就会有一份能交到封装厂的全套设计文件。如果你已经建好库、装好工具,但卡在下一步不知道从哪下手,这篇就是给你准备的。

1. 建工程前的库整理:symbol、padstack 和网表缺一不可

1.1 为什么 SIP 设计的时间一半花在库上

很多从 PCB 转过来的人,第一次打开 SiP Layout 就被库管理搞懵了。PCB 的封装库相对固定,0805 就是 0805,QFP-48 就是 QFP-48,库里调出来就能用。SIP 不一样,里面放的"元件"主要是裸芯片,每颗 die 的 pad 数量、pad 位置、外形尺寸完全不一样,几乎不存在"通用封装"这回事,每一颗 die 的库都得单独准备。

在 Cadence SiP 环境里,一个可以被放到画布上的器件,背后要准备三类库文件:Symbol 负责画布上的图形表达,Padstack 负责焊盘在每一层金属上的物理结构,Device 负责器件逻辑定义,尤其决定网表导入时能不能匹配上。这三样东西必须彼此对应:Symbol 里的引脚编号要和 Device 里列出来的一致,Padstack 文件名又要在 Symbol 引脚属性里被正确引用。任何一环对不上,后面就会出现"导入网表失败""找不到引脚""焊盘变形"这些怪问题。

我自己的习惯是:拿到新库之后,先在库编辑器里把 Symbol 逐个打开,检查每一个引脚的编号和方向;再到 Padstack Editor 里从 TOP 到 BOTTOM 逐层过一遍。别嫌麻烦,SIP 的库检查比 PCB 严格得多,因为基板制造是微米级的,一个 padstack 的内层属性设计错了,Gerber 发出去就是整板报废。

1.2 三个必须检查的库文件:附检查清单

为了不空谈,我列一张自己常用的检查清单,新库进来时照着勾一遍,基本能拦住 90% 的低级问题:

文件扩展名检查重点常见错误
Symbol.dra / .psm引脚编号、pin direction、Assembly 层外形、Place Bound引脚编号重复或缺失、方向全写成 passive
Padstack.padTOP 焊盘尺寸、SolderMask 开窗、内层 Thermal/Anti-pad、钻孔类型内层只有 Default 形状、阻焊开窗和焊盘一样大
Device.txt引脚数量、引脚名、类型(IN/OUT/IO/POWER)引脚数和 Symbol 不一致、类型全写成 passive

补充一句,很多 Foundry 给的 die 库并不是 Cadence 原生格式,而是 DXF 或 GDS 转过来的。转完以后概率最高的问题是 pad 坐标有偏移、尺寸单位不统一(mil 和 μm 混着用)。批量转换之后,一定要用"测量相邻两个 pad 间距"的方式抽查,别只看整体图形对不对,这种东西肉眼很容易忽略。

1.3 把现有 PCB 封装库改造成 SiP 库的两个思路

经常有人问:手上有现成的 Allegro 封装库,能直接拿来用在 SiP 里吗?我的答案要分开说。如果是把某个普通 SMT 元件(比如 0402 电容)拿进 SiP 设计,直接导入库文件、确认 padstack 路径没问题就能用。

但如果想复用的是一颗"die 模型",那就必须改造了。做法是:打开 Symbol 编辑器,把器件类型从 IC 改成 DIE,把引脚改成 die pad 需要的形态,再补上 DIE 类下的外形和装配信息,比如封装厚度、装配高度,最后重新生成 Device 文件,确认引脚类型和后续网表匹配。这一步不能跳过,否则后面 Wire Bond 编辑器里会找不到 die 的引脚,或者 bond finger 和 die pad 完全对不齐。我到现在都记得第一次做 SiP 时,为了赶进度直接用了 PCB 的 die symbol,结果 Wire Bond 编辑器弹出 "pin not found",查了一下午才发现是引脚类型问题。

2. 创建 SIP 工程:基板尺寸、层叠结构和活动类的概念

2.1 基板尺寸先估算再画:一个粗算公式

工程新建之后,第一个要回答的问题就是基板做多大。基板尺寸不是拍脑袋定的,它受到三个方向约束:die 和无源元件的总面积、键合或倒装的工艺边框、外部引脚(BGA 球、QFN 引脚)占用的区域。

对 wire bond 型 SIP,可以先套一个粗算公式:封装体边长 ≥ die 边长 + 2 ×(键合环带宽度 + 引脚区宽度)。举个例子,一颗 5mm×5mm 的数字 die,键合环带(bond finger 加金丝拉出空间)单边大约留 0.8~1mm,BGA 引脚区单边再留 1~1.5mm,那么粗算出来就是:5 + 2 × (1 + 1.2) ≈ 9.4mm,圆整到 10mm。这只是第一版估计,等布线走完发现信号出走困难或者铺铜被割裂,再往上调。

定义基板外形时,一般画成矩形或带倒角的矩形,BGA 封装还要求在 Outline 层标出 Mark 点和防呆方向标记。别小看这些细节,封装厂贴装、测试、焊接到 PCB 都要靠这些标记来定位。

2.2 层叠结构怎么选:1+2+1、2+2+2 的真实含义

SiP 基板层叠写法一般写"积层层数 + 芯板层数 + 积层层数",比如 1+2+1、2+2+2。1+2+1 表示上下各 1 层积层,中间是 2 层芯板,总共 4 层金属;2+2+2 就是 6 层。这个写法和 PCB 的"几层板"不是一个逻辑,它更强调哪几层是 build-up 出来的、哪几层是芯板。

怎么选?低复杂度、I/O 不多、一片 die 加几个电容的应用,1+2+1 就够用了;如果需要完整的参考平面、多个信号层、die 与 die 之间互连复杂,我一般建议 2+2+2。层数越多,成本不是线性上升而是指数级上涨,所以没有需求就别硬上高层数。

在新建工程时,系统会让你逐层定义金属层名称、介质厚度、材料。我建议把金属层名称直接定义成和后续 Gerber 输出一致的命名,比如 TOP、INNER1、INNER2、BOTTOM,省得后面 Artwork 输出时映射困难。介质厚度和介电常数在后面做 PI/SI 仿真时直接影响提取结果,先填个靠谱的数据总比后补强。

2.3 活动类和子类:Cadence 图层逻辑一讲就通

热词搜索里反复出现"活动类和子类",很多刚上手的人被这个界面概念绊住脚。其实可以理解成 Cadence 里的图层管理是两层结构:Class 是大分类,Subclass 是子分类,两者组合起来才确定一个具体图层。

在 SiP 设计里,最常用的组合是:

  • ETCH / TOP、ETCH / BOTTOM:顶层和底层走线铜皮。
  • ETCH / INNER1、ETCH / INNER2:内层走线铜皮。
  • PACKAGE GEOMETRY / DIE:die 的外形和 pad 位置图形。
  • PACKAGE GEOMETRY / PLACE_BOUND:元件的放置边界。
  • BOARD GEOMETRY / OUTLINE:基板外形线。
  • VIA CLASS / 默认:过孔定义和归属层。

Options 面板里的 Act Class 和 Act Subclass 决定了你当前所有绘制操作落在哪个图层上。激活的是 BOARD GEOMETRY / OUTLINE,画线就是在画基板框;激活的是 ETCH / TOP,画线就是在画顶层走线。很多人画线工具打开了,画完却看不到,或者一移动元件就发现"线长在元件上了",大概率就是活动和类子类切错了。

我建工程时会顺手把各层显示配色表设好:etch 层用亮色,silkscreen 用暗色,Assembly 用浅色。这样切来切去不会看混,视图问题解决掉,效率能提升不少。

3. 放置 die:位置规划与位号管理

3.1 裸片调入与位号分配:U1、U2 别乱排

基板框和层叠定义好以后,下一步就是把 die 放上去。操作和 Allegro 放元件类似:从 Component 列表里选中从库调入的 die symbol,放到画布上,然后移动、旋转、对齐。

这里有一个容易忽略的点:位号(RefDes)管理。die 一般命名为 U1、U2,后面的电阻电容用 R、C 前缀,和 PCB 设计习惯保持一致。如果网表是 EDA 工具生成的,位号已经存在;如果是手工布板,需要自己安排位号,批量重排时最好按行按列的顺序,这样生成的 BOM、装配图、测试文档看起来都清楚。

还有个小细节:有些 die 需要在 Assembly 层上标出第一引脚方位,因为 die 的 pad 往往是四周排列,没有明显极性。如果你只是把 die 转了 90 度却忘了更新 Assembly 标识,贴片机装的时候极有可能装反。

3.2 摆 die 的原则:信号流、热源、线长三角

die 怎么摆,直接决定后面 wire bond 好不好打、走线顺不顺、散热够不够、甚至信号质量好不好。我把这些年用下来的经验归纳成三条:

第一,信号流优先。两颗互连量大的 die 应该靠近放置,让连接它们的走线和 bond wire 尽量短。比如基带 die 和存储 die 之间往往有几十根并行线,如果摆在基板的两端,中间走线要绕满整个基板,层数、过孔、串扰全都上来了,布局就彻底被动了。

第二,热源别扎堆。功耗高的 die 要错开,不要在基板中央堆成一个小热岛。基板背面一般会铺热焊盘和散热孔阵列,布局阶段就要把这些区域留出来,别让 die 把散热铜皮位置占掉了。

第三,线长即噪声。高速信号、时钟、敏感模拟信号相关的 die 要尽量靠近外部引脚区,拉低引线电感和回流路径长度。搜索词里提到的"版图电流镜匹配",虽然更多是模拟 IC 版图概念,但封装级也有同样的"对称思维":如果两个 die 之间需要做差分或参数匹配,它们在基板上的位置、朝向、走线长度要尽量对称,而不是随手一放完事。

3.3 被动元件的放置:去耦电容贴电源脚是铁律

SIP 基板上除了 die,通常还会放去耦电容、上拉电阻这些无源元件。位置摆放有明确的优先级,尤其是去耦电容。它的作用是给 die 的电源引脚提供低阻抗交流回路,所以离 die 的电源脚越近越好,我一般控制在 0.5mm 以内。

这个道理和 PCB 上每个电源脚旁边放一个 0.1uF 电容完全一样,只是 SIP 里面尺寸更小、距离更敏感。回路越长,寄生电感越大,去耦效果就越差,高速下甚至起反作用。

上拉电阻、串阻这类器件则可以放在信号路径的适当位置,没必要贴着 die。Cadence 里有 Room 约束和自动摆放功能,但我更建议手动先把关键去耦电容摆完,再让自动摆放处理非关键器件。没有任何约束的自动摆,基本不考虑信号流和热分布,后期布线会让你非常痛苦。

4. 金丝键合与布线:SIP 版图的核心环节

4.1 wire bond 还是 flip chip:先想清楚再动手

die 放完之后,最大的岔路口来了:用 wire bond 还是 flip chip。这两条路在 Cadence SiP 里的操作路径完全不同,工艺、成本、性能也更不一样,必须在布线之前就定下来。

Wire bond 用金丝或铜丝把 die 的 pad 连到基板上的 bond finger,再通过基板走线连到外部引脚。优点是成本低、适用面广,缺点是 I/O 数量受限于 die 四周的 pad 间距,而且金丝本身有寄生电感,高频场景下瓶颈明显。

Flip chip 是把 die 翻转,通过 bump(凸点)直接焊到基板焊盘上,再从焊盘用 RDL 扇出。优点是 I/O 密度高、寄生参数小,适合高速高密度互连,缺点是 die 需要额外的 bump 工艺处理,成本高出一截。

工具操作上,wire bond 需要先安排 bond finger 的位置,再逐根或批量生成金丝,注意线弧和间距;flip chip 则需要先生成 bump 阵列,再走布线扇出到引脚。如果你做的是射频、光模块这类对寄生敏感的封装,我的建议是首选 flip chip,后面在信号完整性上会省心很多。

4.2 bond finger 设计与 bond wire 编辑实操

如果你是第一次做 wire bond 型 SIP,bond finger 设计是最容易出问题的地方。bond finger 是基板侧的焊盘,金丝一头焊在 die pad,一头焊在这里。工艺上,bond finger 的宽度一般在 50~70μm,长度 150~250μm,相邻 finger 间距不小于 50μm。实际取值务必和封装厂的工艺能力表核对,不同厂家、不同键合机台的能力差异挺大。

在 Cadence 里接金丝,打开 Wire Bond 编辑器(不同版本菜单位置有差异,一般在 Manufacture 或 Wire Bond 菜单下),流程大致是:

  1. 在 die 的 pad 和基板 bond finger 之间建立连接关系。
  2. 选择键合类型和线径,比如 25μm 金丝、球形焊(ball bond)。
  3. 设置线弧参数:线弧高度、水平长度、折线形状。
  4. 批量生成后,切到 3D 视图检查金丝之间、金丝与模封区边界之间的间距。

线弧高度非常重要。模封总厚度如果是 0.8mm,金丝最高点至少要低于模封顶部 0.1~0.15mm,否则塑封时金丝会被压塌或者外露。具体数值让封装厂确认,不同模具、不同材料差很多,这个不是软件能替你决定的。

4.3 布线规则与铜皮优先级:把 Constraints 用起来

走线和铺铜规则决定整个设计能不能落地。SIP 基板的线宽线距通常在微米级,比如默认线宽 50μm(约 2mil)、异电位最小间距 40~50μm,这些值要提前在 Constraints 里设好。别等画完线才想起来规则没设,到那时候 DRC 一排山倒海地报错,你会崩溃的。

关于铺铜,搜索词里那条"cadence 铜皮 优先级"是很多人被坑过的地方。同一层上的多个 Shape 如果有重叠区域,Cadence 默认后画的会盖住先画的,这时候就要调整 Shape 的优先级,让电源铜皮和地铜皮的挖空关系符合设计意图。

我个人的做法:先铺大面积地铜皮,再铺电源铜皮,并把电源铜皮优先级设高一级,这样它会自动挖空下方重叠的地铜区域。如果发现铜皮边界变得很奇怪,"铜皮被吃掉了",先检查优先级是不是反了,再检查两个 Shape 是否真的有重合。这类问题 DRC 不一定能直接报出来,最后只能靠眼睛扫,很费时间,不如一开始就规划好。

还有一点,封装厂会提供最小铜皮宽度、最小间距这些工艺能力参数,一定要在画铜皮之前拿到。否则你画了一个自认为很漂亮的 20μm 宽铜皮,基板厂做不出来,来来回回沟通又浪费时间。

5. DRC验证与高亮点选:常见报错和解决办法

5.1 SIP 版图的 DRC 和 PCB 的 DRC 不是一回事

SiP Layout 的 DRC 引擎和 Allegro 同源,所以用过 PCB 的人会觉得界面很熟悉。但 SiP 的规则范围宽得多:除了常规间距、线宽,还有 die 相关规则、bond wire 间距规则、bump 间距规则。这些非传统规则在默认状态下有可能没开启,你不主动开,它就不给你报,这是很危险的。

跑 DRC 之前,先在 Constraints 里把需要检查的项目全部打开。我建议分两阶段跑:布局完成时先跑 Placement DRC,重点查元件干涉、die 是否出界、离基板边太近;布线完成后再跑全量 DRC,重点查间距、连接性、同一网络的连通性。分步跑的好处是错误数量可控、定位容易,不会一次性报几百个错,看都看不过来。

5.2 "电大尺寸"警告:不是软件抽风,是路径太长

搜索热词里有一条英文报错,大意是 port 2 的两个 layout pin 之间的距离在电气上偏大。这种警告一般不是 Layout 阶段 DRC 报的,更多是后续仿真提取时冒出来的。它的含义是:两个引脚之间的走线长度相对于工作频率的波长来说太长了,不能再按集总参数处理,这条路径已经具备传输线特性。

见到这个警告,不要觉得是软件在无理取闹。正确的思路是:要么重新规划引脚位置,缩短关键路径;要么给这段路径做阻抗控制,保证回流参考完整。在做高速 SIP 时,类似"路径电大"的判断非常关键,它提醒你信号完整性不是把线画通就结束的。

5.3 高亮与选中网络的技巧:别在几十个网络里迷路

SiP 设计里网络多、die 多,想快速确认某个电源网络或时钟网络到底经过哪些地方,高亮功能是最好的工具。Cadence 里快速选中同一个网络的技巧是:先用高亮命令按网络名高亮,然后在 Find 面板勾选 Pin、Via、Shape 等类型,再点击网络上的任意一个元素,软件就会选中该网络的全部连接。

选中之后,你可以整体查看长度、统一改线宽、检查连通性,也可以单独导出这个网络的长度报告。我自己的习惯是:布局检查用临时高亮,看完就清理干净;对时钟、高速差分、关键电源网络,单独建立网络分组,持续高亮。这样打开任何一个视图,重点网络一眼就能识别,不会在几十个网络里迷失。

6. 输出制造数据:光绘、钻孔与下游协同

6.1 Gerber 和 ODB++:和封装厂确认格式再导出

设计完成不代表结束,数据能不能被封装厂顺利接收才是最后的标准。SiP 基板制造数据我强烈建议用 ODB++ 格式,它把层叠、钻孔、元件、网络信息打包在一个文件夹里,不容易丢层。Gerber(RS-274X)也常用,但对层的配置要求更严格,漏一个 Mask 层就是一批报废板。

在 Artwork 里配置 Film 时,每一层都要单独设置:ETCH/TOP、MASK/TOP、SILKSCREEN/TOP、DRILL 等。不要自己从头配,最好直接找封装厂要一份他们的 Artwork 模板,导入后确认一下层名映射就行。我自己配错过一次 Mask 层,导致阻焊开窗全部反了,后面上机验证才抓出来,教训很深刻。

钻孔文件输出时,特别注意盲埋孔和激光孔的层对关系。SiP 基板常用激光盲孔,层对范围写错的话,基板厂制板时根本做不出你要的孔结构。

6.2 从 SIP 封装到 PCB 工具:让封装走出孤岛

SIP 封装做出来之后,从来不是孤立的,它最终要焊接到一块 PCB 上,装进一个完整的系统里。所以从 SiP 设计导出封装模型给 PCB 工具使用,是很常见的需求。

在 Cadence 体系内,SiP 封装可以生成封装 symbol 给 Allegro PCB Editor 直接调用。如果下游是 Altium Designer,搜索词里有人问过"cadence 的 pcb 如何转换 AD 的 pcb 格式",通常做法是在 Cadence 里导出中间格式,再由 Altium 的导入向导转换过来,转换后重新映射层名和封装信息,大部分图形和网络信息都能保住。

最后说一个我自己的体会:SIP Layout 这个工具,真正难的不是软件操作,而是对自己画的封装有没有物理认知——金线能不能打上去、基板厂做不做得出这个线宽、模封会不会压到线弧。每次画完一版,花十分钟用 3D 视图转一圈,把剖面打开看一眼,能省掉后面无数轮和工艺厂的沟通成本。这比任何快捷键都值钱。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 1:25:10

长期战略合作底层价值:中间体工艺迭代,赋能药物全生命周期升级

在创新药赛道高速迭代的当下,一款药物的生命力,绝不止步于临床获批与上市销售。从临床前研发、临床试验、商业化放量,到上市后工艺优化、成本管控与合规升级,药物的全生命周期,始终伴随着技术的动态革新。而支撑这一切…

作者头像 李华
网站建设 2026/9/29 1:25:03

RISC18架构:8位MCU实时控制与硬件确定性的新范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:23:46

VMware 安装 CentOS 7.9:网络配置、yum源修复与快照克隆避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:23:36

分立三极管过压保护电路设计与SPICE仿真

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:23:10

1.8V/2.8V/3.3V/5V电平转换与电源转换选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:22:54

打造e621/e926客户端:API调用、限流与收藏同步实战

简介:一款基于谷歌Flutter框架、使用Dart语言编写的移动客户端工程源码,用于浏览和交互e621与e926两个在线图站,适合移动端开发者、Flutter进阶学员以及希望自建图站客户端的爱好者。项目功能覆盖较全,包括帖子和图池的浏览搜索、…

作者头像 李华