ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SIP与MCM在Allegro X Advanced Package Designer中的区别及设计流程解析

SIP与MCM在Allegro X Advanced Package Designer中的区别及设计流程解析 1. 从SIP的多重含义说起先明确这里讨论的不是通信协议搜“SIP”这个缩写你能看到三种完全不同的解释通信圈里它是会话发起协议跟 SIP 480 这类响应码、还有 RTP 媒体流怎么配合的问题绑在一起苹果用户眼里它是系统完整性保护总有人琢磨怎么关掉而在封装设计这行SIP 代表 System-in-Package系统级封装。这三个领域互不隶属但缩写的碰撞经常让新人查资料时被带到沟里。这篇文章只在第三种语境下说话Allegro X Advanced Package Designer 里SIP 和 MCM 文件到底差在哪、各自怎么用。刚进入封装设计或者是从 PCB 设计转过来了最容易踩的坑就是把 SIP 和 MCM 当成“两种文件格式”来记仿佛一个后缀是 .sip、另一个是 .mcm。实际上在 Cadence 这套工具里它们更像是同一个设计平台下两条针对不同产品形态的流程分支。文件层面的差别只是表象真正影响你工作方式的是新建工程时选择的类型以及工具为这两种类型初始化出来的数据模型、约束系统和设计流程。搞清楚这些就不会在画到一半发现 die 放不进去、或者导出给 PCB 做联合仿真时缺一堆层。1.1 同一个缩写三个完全不同的世界先把这个多义性问题说透因为它真的会耽误人。你在搜索引擎里输入“sip 480”出来的大概率是通信协议里的响应码“480 Temporarily Unavailable”再往下翻还能看到一堆人问“SIP 协议和 RTP 协议怎样配合使用”。如果你是在苹果电脑上搜又会看到“m4 macos 怎么关闭 sip”这种问题那个 SIP 是系统完整性保护跟封装设计八竿子打不着。我见过有新人拿着通信协议的教程来问 EDA 工具里的 SIP 设置也有运维同事看到我屏幕上的 SIP 封装图以为我在调音视频通话服务器。没办法缩写撞车就是这么魔性。所以在动手之前先把语境钉死这篇文章里的 SIP是 System-in-Package系统级封装MCM 是 Multi-Chip Module多芯片模块。两者都是在封装设计软件里要处理的物理实体和工程文件跟网络协议、操作系统保护机制没有任何关系。只有先把这一步理清后面看工具里的菜单和参数才不会被带偏。1.2 到底什么是SIP什么是MCM为什么总是被放在一起比较简单说MCM 是把多颗裸芯片die安装在同一块高密度互连基板上再封装成一个整体组件。它解决的是一块基板上怎么放多个 die、怎么把 die 的 IO 引出来、怎么保证信号完整性和散热。SIP 更进一步它不光是“把几颗芯片装在一起”而是把完整的一个系统或者子系统包括数字芯片、模拟芯片、射频芯片、无源器件、MEMS、天线、甚至电源管理都集成到一个封装里对外是一颗完整的芯片。你可以把 MCM 看作“多芯片在一块板子上互联”的工艺技术而 SIP 是“做一个系统级封装”的产品思想。很多时候MCM 是实现 SIP 的基础手段之一两者不是完全对立的概念。但在 Allegro X Advanced Package Designer 里它们被做成了两条独立的设计流程新建工程时就要二选一。工具之所以这么分是因为这两种产品在物理结构上的关注点完全不同MCM 的核心是基板布线密度、wirebond 跨距、热和可靠性SIP 的核心是异构集成、3D 堆叠、腔体、混合互连方式以及跟 PCB 板级的协同仿真。别小看这个选择它决定了后面所有菜单、约束、导出选项的默认形态。我自己的体会是把这层逻辑想明白比记住任何快捷键都重要。2. 文件级差异Allegro X Advanced Package Designer中两者的“出生设置”就不一样很多人问我SIP 和 MCM 的文件是不是扩展名不同。其实在 Allegro X Advanced Package Designer 里你在新建工程时选的是设计类型而不是像 Word 保存成 .doc 或 .docx 那样选一个后缀。真正的差异藏在设计文件内部的“出生设置”里模板、层叠预置、约束系统、数据层次关系通通从这里开始分化。这一节我就把新建工程这一步拆开讲清楚。2.1 新建工程时的类型选择与模板初始化打开 Allegro X Advanced Package Designer走 File New 创建工程在创建向导里会看到设计类型或者应用模板的选项其中就有 SIP 和 MCM 两个分支。有些版本里还会写成 “Package / SiP” 和 “MCM / Hybrid” 这样的组合项本质是同一回事。选完类型之后工具会按模板初始化一堆默认参数这才是“文件差异”真正的源头。我试过用同一个 8mm x 8mm 基板分别建一个 SIP 工程和一个 MCM 工程肉眼可见的区别非常明显SIP 工程默认就把 cross-section 做成了带空腔的复杂叠层约束管理器里同时激活了 wirebond 和 flip-chip 两套互连规则还预留了 RDL 再布线层的定义MCM 工程则是标准的基板叠层规则集中在 substrate 布线、过孔和 thermal relief 上die symbol 可以先用简化的占位符代替。换句话说SIP 模板更像“我要在一个封装里造一个系统”MCM 模板更像“我要在一块高密度基板上把多颗芯片连起来”。需要注意不同版本的菜单名称不一定完全相同有的版本把模板藏在 “Application Mode” 里有的在一个叫 “Design Type” 的下拉框中。别死记菜单词关键是找到创建向导里让你选择“产品形态”的那一步。建错类型后面也能改但痛苦程度不亚于让一个 .brd 文件强行伪装成系统级封装所以我一般建议新手在新建时多花三十秒想清楚。2.2 数据模型与导入导出行为差异文件层面的第二个差异是数据模型。SIP 设计里层次嵌套更复杂die 可以有堆叠顺序、腔体位置、上下表面互连还要定义 die 和 package 外部引脚的映射关系。MCM 设计的结构相对扁平die 基本都放在基板表面数据模型更像“母板加元件”的结构跟 Allegro PCB Editor 的数据逻辑更接近。这个差异直接决定了你在导入网表、做约束检查、导出制造文件时的操作路径。举个实际例子。导入网表时SIP 设计最关键的是把 die 的 pad/bump 名字跟 package 的 net 一一对应只要映射关系出错后面 Bond Diagram 里全是 dangling而 MCM 设计更关注 substrate 内部网络的连通性die 的边缘 pad 只要在基板布线时引出来就行。导出 ODB 或 GDSII 时也一样SIP 要把多个 die、bump、bond wire、腔体这些额外对象映射到输出文件的不同层里MCM 的输出层级相对少。还有一点值得提如果你要把设计交付给下游 PCB 工程师SIP 封装通常先被当成一个“封装符号”放到板级设计里而 MCM 组件有时候直接被当成一块子板或模块嵌入 PCB。这种定位差异会在你导出封装 footprint 或模块模型时直接影响层叠和外形信息是否完整。为了看起来直观我整理了一个对比表可以作为日常选型的速查参考对比维度SIP 设计MCM 设计设计类型定位系统级封装强调功能完整多芯片模块强调基板互连新建模板侧重预置混合叠层、腔体、混合互连规则偏重基板布线密度与可靠性规则层次结构die 可堆叠存在腔体和层级封装芯片多在基板表面层次相对扁平主要互连方式可混合 wirebond flip-chip RDL以 wirebond 和平面互连为主与 PCB 工具的关系作为封装 footprint 嵌入板级设计可作为模块板或组件导入典型输出产品射频模组、传感器模组、电源模组多 die 高性能组件、微波组件这张表不是绝对正确的理论但足够帮你建立第一直觉SIP 更偏“系统”MCM 更偏“模块”。3. 核心设计流程差异die导入、基板定义与器件集成新建工程的类型选好之后真正的设计流程才开始分化。die 怎么导入、基板叠层怎么定义、wirebond 和 flip-chip 怎么混合处理在 SIP 和 MCM 里操作思路都不一样。这一节是整篇文章里实操含量最高的部分我尽量按一个具体设计场景来讲而不是堆概念。3.1 die symbol 的创建逻辑差异不管是 SIP 还是 MCM第一步都是给裸芯片建 symbol也就是把 die 的物理外形、pad 坐标、bump 坐标这些东西变成工具里能放置的组件。Allegro X Advanced Package Designer 里通常用 Die Wizard 来完成这个工作你可以从芯片厂拿到 GDSII、OASIS 或者 LEF 文件导入后自动生成 die 的轮廓和 IO 位置也可以手动建一个简化的矩形 symbol。区别在于SIP 设计里 die symbol 往往要承载更多信息。比如你要做 MEMS 加 ASIC 的 3D 堆叠die 的上下表面都有电气连接这个时候 Die Wizard 里就要开 3D 堆叠定义给 symbol 指定顶层和底层的金属、TSV 或不穿通孔还要设置 die attach 层方便后面在腔体里做堆叠。MCM 设计大多数情况下 die 是平放在基板表面的symbol 只需要定义正面 pad 和边缘方向工具层面的处理更像在 PCB 里放一个芯片封装。还有一个细节是单位。die 的 GDS 文件坐标几乎都是微米um级别而基板设计经常用毫米mm。新建工程和导入 die 时单位不一致会让整个 die 位置跑偏。我第一次做 SIP 时就吃过这个亏die 明明放在原点打开平面视图一看图形跑到十万八千里外检查半天才发现是文件单位没统一。这个坑在 SIP 和 MCM 流程里都会遇到但 SIP 流程因为有更多异构器件更容易被忽视。3.2 基板堆叠与物理结构差异基板是封装设计的骨架。SIP 和 MCM 在基板定义上最大的分水岭是“空腔”和“3D 结构”。SIP 设计里很常见的是 cavity也就是基板中间挖掉一块区域让芯片嵌进去整体厚度可以降低。Allegro X APD 里定义 cavity 时要指定挖空的层范围、深度和侧壁的金属化方式。如果你做的是跨腔体打线wirebond 的 bond wire 要从腔体底部跨到基板表面3D 的弧高和跨距都要单独设置。MCM 设计里这种结构很少见大部分时候就是一个平板基板叠层设计更接近传统 PCB一层走线、一层地、再一层走线反复堆叠。再看基板工艺SIP 里为了承载射频器件和无源器件嵌入经常要用 BT、ABF、LTCC 甚至玻璃基板层叠里可能有薄膜 RDL 层用来把 die 的高密度 IO 扇出到普通布线层。MCM 常见的是 BT 基板、陶瓷厚膜基板甚至金属基板支撑大电流和散热。这些工艺差异在工具里体现在 cross-section 编辑器中SIP 设计往往要定义很多材料参数和电磁属性方便后续做信号完整性分析MCM 设计则更在意铜厚、线宽线距的可靠性和 Thermal Relief 规则。我的建议是新建工程后第一件事就是打开 Setup Cross-section把物理叠层按代工厂提供的实际工艺手册建好不要用默认叠层凑合。因为后面无论布线、建 Bond Diagram、还是导仿真模型都以这个叠层为基准。3.3 布线、打线与混合互连方式封装设计里的“布线”跟 PCB 不完全一样尤其是 SIP。一个射频 SIP 模组里可能同时存在打线连接的基带 die、倒装的射频 die、嵌在基板里的电容电阻还有天线区域。Allegro X APD 支持 wirebond 和 flip-chip 混合设计这是 SIP 流程的核心价值。wirebond 打线时你要用 Bond Wire Editor 或 Bond Diagram 工具定义 bond finger 的位置、bond wire 的弧高、跨距和顺序。SIP 里打线经常跨腔体bond wire 的 Z 坐标必须跟 die attach 高度、腔体深度联动MCM 虽然也打线但基本在一个平面上理解起来简单得多。flip-chip 在 SIP 中更普遍die 倒装后 bump 直接贴到基板焊盘上关键是要定义 bump 映射关系和 underfill 区域。再复杂一点的 SIP 会在 die 上面做 RDL 扇出再用 bump 连到基板或下一层 die这就需要额外的 RDL 层和精灵布线规则。MCM 流程同样支持这些操作但工具并不会在一开始就给你全部激活。你可以在设计中途切换到混合模式但需要注意约束系统是否兼容。我自己踩过的坑是在 MCM 工程里硬做 3D die stack结果 Bond Diagram 的 Z 轴计算始终不对后来还是回到 SIP 模板重新建工程才正常。这让我彻底明白工具把 SIP 和 MCM 分开不是因为想给你添麻烦而是因为它们默认的物理假设就不一样。4. 应用场景解析什么时候选SIP什么时候选MCM工具流程怎么选最终还是要回到产品形态和工程需求。这一节我从实际应用出发讲清楚哪些场景应该走 SIP哪些场景应该走 MCM以及在成本和良率上要做的取舍。4.1 典型SIP场景集成系统功能的小型化SIP 最典型的应用是射频前端模组。手机里的 PA、滤波器、开关、低噪声放大器以前是分开摆在一小块 PCB 上现在经常集成到一颗 SIP 里体积小、互连短、损耗低。设计这种模组时无源器件常常直接嵌入基板或放在 die 旁边用 wirebond 和 flip-chip 混合互连Allegro X APD 的 SIP 流程天然适合这种需求。再比如传感器融合模组MEMS 加速度计加上 ASIC 处理芯片再加上一颗 MCU做成一个封装内部可能需要堆叠和腔体这也是 SIP 的主场。电源模块也是 SIP 的重灾区。驱动芯片、功率管、电感、电容集成在一个封装里可以大幅降低回路的寄生电感提升开关性能。我在实际项目中见过不少 PMIC 厂商把多颗 dies 和被动器件放进一个 BGA 封装里外面看是一颗芯片里面其实是一整个电源系统。如果你要做的产品对小型化、系统完整性、电磁屏蔽有很高要求优先考虑 SIP 流程。4.2 典型MCM场景追求高密度互连与可靠性MCM 的典型场景是多 die 高性能计算。现在 chiplet 概念很火多颗计算 die 和存储 die 封装在一块基板上减少主板面积和数据传输延迟本质就是 MCM。这种设计里基板布线密度极高die 之间的互连走线可能比 die 本身还要复杂信号完整性、热管理、机械应力都是重点。跟 SIP 的区别在于MCM 不一定要求“系统功能完整”更多是“把多颗成熟芯片放到一个组件里”。另一个典型场景是微波 T/R 组件和航空电子。陶瓷基板上集成多颗功放芯片、低噪放芯片、移相器重点考虑气密性、可靠性和散热。这种产品里几乎没有复杂的 3D 堆叠die 平铺在基板上用 wirebond 连接Cavity 也是常规的气密封装腔体而不是为了异构集成。MCM 流程在这类设计里更顺手因为它沿用了很多 PCB 级的设计习惯规则设置和可制造性检查更直接。如果你做的是工控和车规产品也倾向 MCM因为已知良好芯片KGD管理更简单返修维护空间更大。4.3 从设计成本与良率角度看取舍选 SIP 还是 MCM不完全看技术难度还要看成本和良率。SIP 把多颗 die 和一个完整系统封在一起只要其中一颗 die 有问题整个模组就可能报废。所以 SIP 对 KGD 的要求极高每一颗进入封装的 die 都必须经过测试测试成本会占比很大。另外SIP 内部结构复杂设计周期长电磁、热、应力仿真缺一不可。我见过不少团队只看到 SIP 的小型化优势忽略了 KGD 和测试成本最后良率被拖垮。MCM 在这个问题上相对宽松。因为 die 是平放在基板上的装配过程更容易控制有些情况下还可以做局部返修。所以如果系统功能复杂度不是瓶颈而是芯片本身有替换和升级需求MCM 往往更务实。反过来如果系统瓶颈在于 PCB 级互连损耗、体积、功耗那 SIPP 的价值就不可替代。应用方向更倾向关键原因射频前端模组SIP无源器件和有源器件异构集成互连短损耗低MEMS 传感器融合SIP需要 3D 堆叠和腔体封装多 die 高性能计算MCM基板布线密度高芯片可替换性好微波 T/R 组件MCM陶瓷基板工艺、气密性和可靠性要求高电源模块SIP降低寄生电感实现小尺寸车规 / 工控MCMKGD 管理方便返修空间大5. 实操记录从新建工程到导出GDS/ODB的关键步骤理论讲再多不如把流程走一遍。这一节我以一个 6 层 BT 基板、8mm x 8mm 的 SIP 设计为例记录从新建工程到最终导出的关键步骤。MCM 流程大部分操作类似我会在差异点单独标注。5.1 新建 SIP/MCM 工程的关键参数新建工程之前先跟基板厂和封装厂确认工艺参数。不要完全照抄我这里的数据但可以作为参考基板尺寸8mm x 8mm层叠S1/GND/S2/PWR/S3/GND核心层厚度 0.2mm总厚度约 0.5mm线宽/线距25um / 25um单端阻抗 50Ω差分阻抗 100Ω过孔激光盲孔 100um机械通孔 0.2mmBGA 焊球间距 0.4mm焊球直径 0.25mm在 Allegro X Advanced Package Designer 里的设置路径是File New选择 SIP 设计类型然后 Setup Cross-section 按照上述叠层顺序添加介质层和金属层再进入 Setup Constraints Physical / Spacing 设置线宽线距和过孔规则。如果是 MCM 工程这些步骤一样但模板中关于 thermal relief 和 reliability 规则的默认值可能会不同建议逐个检查不要全信默认。5.2 导入裸芯片与网表从芯片厂拿到 GDSII 或 LEF 后我用 Package Symbol 菜单里的 Die Wizard 生成 die symbol。这里提醒一句导入前确认所有文件单位统一为微米或毫米否则后续位置偏差会让人抓狂。symbol 生成后再导入网表把 die 的 pad 名、package 的引脚名和网络名对应起来。SIP 设计里这一步特别关键因为 die 可能既有正面 pad 又有 bump映射关系一乱后面布线和打线全乱。在 MCM 流程里网表导入的逻辑类似但 die 的 symbol 可以先用简化模型重点放在 substrate 内部网络的定义上。放置 die 时用 Placement 菜单里的 Place Die 功能指定 attach 层号、腔体位置和堆叠偏移。如果做 SIP 的 3D 堆叠还要定义 die 与 die 之间的间隔材料或 spacer。5.3 布线与检查输出布线时先做关键信号的阻抗连续设计尤其是射频线和高速差分线。SIP 设计里我经常用半自动布线配合手调RDL 区域用精灵布线扇出普通区域走常规走线。wirebond 部分用 Bond Wire Editor 生成 Bond Diagram确认 bond 顺序和跨距。首发信号检查重点看 die pad 间距、过孔叠盘、bond wire 最小跨距。输出时制造端一般要 GDSII 加装配图、Bond Diagram 和坐标文件仿真端要导出带 die placement 的网表文件供 Sigrity 做寄生提取和电源完整性分析。MCM 设计如果作为模块嵌入 PCB可能还需要单独导出一份模块 footprint 给板级工程师。这里的通用原则是给代工厂的料越全越好给仿真工具的数据越精确越好给 PCB 工程师的封装外形越简洁越好。6. 常见问题与排查技巧实录最后分享一些实际项目中遇到过的坑按照“现象—原因—排查思路”的格式整理。这些经验不是从手册里抄的是踩过坑之后一点点沉淀下来的。6.1 打开别人的设计文件类型不对怎么办有一次我拿到代工厂的 SIP 项目打开后 die 图形都在但 Bond Diagram 是空的所有网络都报 dangling。查了半天原因不是文件损坏而是对方从 PCB 流程导入网表时只画了 die symbol没有给 die pad 分配网络。解决方法是重新导入网表选择正确的 Die to Package 映射方式再检查 Package Symbol 窗口里每个 die 的 pin 列表是否都已经连上网络。这种问题在 MCM 工程里也会出现但概率低很多因为 MCM 的 die 数量少映射关系简单。6.2 SIP设计转PCB时层叠莫名丢失做 SIP 的工程师经常要把封装成品作为 footprint 放到 PCB 编辑器里。转过去后发现层叠信息丢失多数情况是因为导出 footprint 时只导出了铜皮层没有包含封装外形和焊球阵列。解决方法是导出时明确选择包含封装外形和 solder ball 的选项或者用 .bxl / .pkg 中转并检查 layer mapping 里是否定义了助焊层和阻焊层。对于 MCM 组件如果把它当成模块嵌入 PCB通常是作为子板导入而不是 footprint层叠信息就不容易丢。6.3 wirebond打线键合点偏移排查遇到过 bond wire 全部生成成功但打线图里 bond finger 永远偏离 chip pad 半个焊盘。最后发现是 die attach 高度没有同步到 bond wire 的 3D 坐标。die attach 胶厚度变化之后工具里 bond wire 的起落点也跟着变。检查顺序是打开 Bond Wire Editor看 wire 的 attach 点是否对应 die pad 中心然后在 die attribute 里确认 die attach 层厚度和位置如果是跨腔体封装再检查 cavity 深度有没有被记进 bond wire 的 Z 坐标。这个坑在 SIP 里特别常见因为 3D 堆叠和腔体让 Z 轴计算变得复杂。6.4 ODB导出到其他工具时文件大小异常用第三方工具打开 ODB 时发现文件大得离谱原因多半是封装设计中的参数化过孔、重复的 sub-drawing 没有被清理。导出前先在 Allegro 里做一次 Purge 或者清理 scratch objectsSIP 设计由于包含多个 die、bond wire 和 cavity 数据更容易碰到这个问题。小技巧是导出 ODB 时选择 minize 选项或手动控制数据层级如果一定要保留参数化信息就分两次导出一次给制造一次给仿真避免一个文件又大又难处理。最后说点个人体会。我刚用 Allegro X Advanced Package Designer 那会儿也纠结过 SIP 和 MCM 在文件层面到底差在哪甚至拿一个 MCM 工程强行按 SIP 流程往下走结果 Die Wizard 里多出来的 3D 堆叠选项绕得我头晕。踩过几次坑之后我的结论是别把这两个词当成文件格式去背把它们当成产品形态和设计流程的入口去理解。SIP 流程强调系统功能集成MCM 流程强调多芯片基板互连同一个工具里你构造的物理对象、约束规则、输出文件都会沿这两条线分化。真正决定用哪个流程的不是你手上资源猛不猛而是封装的产品要解决什么问题。下次新建工程看到 Design Type 下拉框时先想清楚产品是做射频模组、传感器融合还是多芯片高性能组件再点鼠标能省下后面一大半返工时间。
返回列表