2. SIwave工作环境与协同仿真流程

SIwave 的协同仿真并不是“打开一个工程、点一下运行”这么简单。它涉及三类对象——芯片(Die/裸片)、封装(Package)、PCB 板——以及它们之间通过焊球、BGA 球栅阵列、走线、过孔和参考平面建立的电气连接。理解 SIwave 的工作环境,本质上是要搞清楚:这些对象在软件里以什么形式存在、它们之间靠什么数据格式交换信息、以及一次完整的协同仿真要按什么顺序推进。

界面布局:三个功能区决定你的操作路径

SIwave 的界面可以概括为“左侧工程树 + 中部三维视图 + 右侧/底部属性与结果面板”的布局。左侧工程树(Project Tree)是协同仿真的指挥中心,它按层级组织:最上层是工程(.siw 文件),下面挂载各个设计(Design),每个设计里又包含层叠结构(Layer Stackup)、网络(Nets)、元件(Components)、焊球/引脚(Pins/Balls)以及仿真配置(Simulation)。中部三维视图用于查看叠层、平面、走线和器件布局,支持旋转、剖切和层间切换。右侧属性面板则显示当前选中对象的参数,例如选中一条网络可以看到它的走线长度、层分布和端接元件。

对协同仿真而言,最需要关注的是工程树中的“Links”或“Component”节点。芯片和封装通常以 IBIS、SPICE 或 Touchstone 模型的形式挂接到对应元件上,PCB 则作为主设计承载封装和芯片的物理位置。理解这个层级关系,才能知道模型该挂在哪里、仿真该从哪一层发起。

工程管理与数据交换格式

SIwave 工程管理的核心是“一个工程对应一个 PCB 设计,封装和芯片作为子模型或外部模型接入”。实际工程中常见的做法是:PCB 设计从 Allegro、Expedition 或 ODB++ 导入,封装从芯片厂商提供的 .mcm 或 .brd 导入,芯片模型则通过 IBIS/IBIS-AMI 或 SPICE 网表挂接。数据交换格式决定了协同仿真的精度和可行性,下表列出常用格式及其适用场景。

数据格式 典型来源 在协同仿真中的作用
ODB++ / .brd PCB 布局工具 导入 PCB 叠层、走线、平面和器件位置
IBIS / IBIS-AMI 芯片厂商 描述芯片 I/O 缓冲器的非线性行为,用于信号完整性分析
SPICE 网表 芯片/封装设计 描述封装内 RLC 网络或芯片内部等效电路
Touchstone (.sNp) 封装/连接器厂商 以 S 参数形式描述封装或互连的频域特性
.siw / .aedt SIwave 自身 保存工程配置、仿真设置和结果

需要特别注意的是,IBIS 模型描述的是芯片引脚处的电压-电流关系,它必须与封装的 RLC 网络和 PCB 走线级联后才能得到完整的通道响应。如果封装模型只有 S 参数而没有直流路径,低频段的电源完整性分析就会失真。因此,数据格式的选择要与分析目标匹配:信号完整性优先用 IBIS + S 参数,电源完整性优先用 SPICE + 平面模型。

芯片-封装-板协同仿真的基本步骤

一次完整的协同仿真通常按以下顺序推进,每一步都有明确的输入和判断依据。

  1. 导入 PCB 设计并检查叠层。确认层数、介质厚度、铜厚和材料参数(Dk/Df)与实际情况一致。如果叠层错误,后续所有阻抗和损耗计算都会偏离。
  2. 导入封装模型并建立连接。将封装作为元件挂接到 PCB 上的对应位置,检查焊球编号与 PCB 焊盘是否一一对应。常见问题是球号映射错位,导致仿真结果出现莫名其妙的开路或短路。
  3. 挂接芯片模型。在封装对应的 Die 端挂接 IBIS 或 SPICE 模型,设置电源域和信号方向。此时工程树中应能看到“Die—Package—PCB”三级链路完整。
  4. 设置仿真配置。选择分析类型(SI/PI/EMI),设置频率范围、扫频步长和激励源。例如信号完整性分析可设置 0.1 GHz~10 GHz,电源完整性可设置 10 MHz~1 GHz。
  5. 运行仿真并检查收敛性。观察求解器日志中的收敛信息和内存占用。如果网格划分过密,求解时间会急剧增加;如果过疏,高频结果不可信。
  6. 查看结果并判断是否达标。在结果面板中查看 S 参数、眼图、阻抗曲线或电源噪声。判断依据是设计规范,例如插入损耗在 5 GHz 处是否优于 -3 dB,或电源阻抗在目标频段是否低于目标阻抗。
协同仿真的关键不是“跑通”,而是“跑对”。每一步的输入都必须可追溯:叠层来自 PCB 厂、封装模型来自芯片厂商、IBIS 版本要与芯片批次匹配。任何一处用错版本,结果都不可信。

协同仿真数据流与信号链示意

下面的 SVG 展示了芯片、封装、PCB 三级对象之间的数据流和信号链关系。图中左侧是模型来源,中部是 SIwave 工程中的挂接关系,右侧是仿真输出。箭头方向表示数据传递和信号传播方向,颜色区分不同对象类型。

芯片-封装-板协同仿真数据流与信号链 模型来源 芯片厂商 IBIS / SPICE 封装设计 .mcm / S参数 PCB 布局 ODB++ / .brd 叠层参数 Dk / Df / 铜厚 SIwave 工程(.siw) Die 模型挂接 IBIS 缓冲器 + 电源域设置 Package 网络 焊球映射 + RLC/S参数级联 PCB 走线与平面 传输线 + 参考平面 + 过孔 仿真配置 频率范围 / 激励 / 网格 仿真输出 S 参数 插入/回波损耗 眼图 抖动 / 裕量 阻抗曲线 Z(f) 扫描 电源噪声 PDN 阻抗 信号传播方向:Die → Package → PCB → 接收端

从图中可以看出,协同仿真的数据流是单向汇聚的:芯片模型、封装模型、PCB 设计和叠层参数分别从不同来源进入 SIwave 工程,在工程内部完成三级挂接和级联,最终输出 S 参数、眼图、阻抗曲线和电源噪声等结果。信号链的传播方向则是从 Die 出发,经过 Package 的焊球和内部走线,再进入 PCB 的传输线和过孔,最终到达接收端。理解这个方向性,才能在结果异常时快速定位问题出在哪一级。

常见误区:把封装模型直接当成理想连接,忽略焊球电感和封装内走线损耗。在 5 GHz 以上,封装焊球的寄生电感可能达到几十 pH,足以让眼图裕量下降 20% 以上。协同仿真的价值恰恰在于把这些“中间环节”显式建模出来。

最后需要强调,SIwave 的协同仿真流程不是线性的“导入—运行—看结果”,而是一个迭代过程。如果眼图裕量不足,可能需要回到封装模型调整焊球分配,或者回到 PCB 调整走线阻抗和参考平面。每一次迭代都要保证数据格式和版本的一致性,否则仿真结果无法复现,也就失去了指导设计的意义。