3. PCB数据导入与预处理
SIwave 的仿真精度并不只取决于求解器设置,更取决于导入的 PCB 数据是否“干净、完整、可映射”。导入阶段的目标可以概括为一句话:把 EDA 工具中的物理版图,转换成 SIwave 能正确识别的导体几何 + 层叠介质 + 网络连接 + 器件模型四要素。本节围绕支持格式、层叠映射、网络与器件识别,以及导入常见错误的修复方法展开。
一、支持格式与选择原则
SIwave 通过 ANSYS Electronics Desktop 的导入接口读取多种 PCB 数据格式,工程中常用的有:
- ODB++:跨工具的中性格式,包含层叠、网络、器件、钻孔与铜箔信息,是 SIwave 最推荐的交换格式之一,兼容性好、信息损失小。
- IPC-2581:新一代开放格式,语义比 Gerber 更完整,适合需要保留网络与层叠语义的场合。
- Allegro(.brd):Cadence 原生格式,可直接导入,但需注意版本匹配与 SIwave 支持的 Allegro 版本范围。
- Altium(.PcbDoc):Altium Designer 原生格式,导入时对层叠与器件属性的解析依赖导出设置。
- Gerber + 钻孔文件:仅含几何,不含网络与器件语义,导入后需手工补网络,一般不作为首选。
选择原则是:优先使用能同时携带层叠、网络、器件信息的格式。若原始设计来自 Allegro 或 Altium,优先直接导入原生格式;若跨工具协作或原生格式版本不兼容,则导出 ODB++ 或 IPC-2581。Gerber 只在没有其他数据源时使用。
二、层叠映射:导入成败的关键
层叠映射决定 SIwave 如何把版图中的铜层、介质层、阻焊层与叠层结构对应起来。导入时 SIwave 会读取文件中的层名,并尝试自动匹配到内部的信号层、电源/地平面层、介质层。常见问题包括:层名不规范(如“L1”“Top”“SIG1”混用)、介质厚度缺失、铜厚未定义、负片层与正片层识别错误。
实际操作中,导入后应打开 Layer Stackup 面板逐层核对:
- 确认每个信号层、平面层的顺序与物理叠层一致;
- 核对介质厚度(如 3.5 mil、4 mil)与铜厚(如 1 oz = 1.37 mil);
- 检查是否有层被误判为“未使用”或“忽略”;
- 对负片平面层,确认其被识别为平面而非信号层。
若自动映射错误,可手工指定层类型与厚度。层叠映射一旦错误,后续的阻抗、串扰与电源噪声结果都会失真,因此这一步必须逐层确认。
三、网络与器件识别
网络识别决定 SIwave 能否正确建立电气连接。导入后应检查:网络数量是否与原始设计一致、电源/地网络是否被正确识别、差分对是否成对、是否有网络被合并或丢失。器件识别则关注器件是否被正确放置、引脚是否与网络连接、器件模型(IBIS、SPICE、S 参数)是否已关联。
对于高速信号,建议在导入后立即建立网络分类:把差分对、时钟、电源、地、低速控制信号分组,便于后续设置端口与扫描。器件方面,若某些器件未识别,通常是封装信息缺失或器件属性未导出,需要在原始工具中补全后重新导出。
四、导入常见错误与修复方法
以下是工程中最常见的几类导入问题及处理思路:
| 现象 | 可能原因 | 修复方法 |
|---|---|---|
| 层叠缺失或层数不对 | 导出时未包含叠层信息 | 在原始工具中导出完整叠层,或手工在 SIwave 中补建 |
| 网络全部丢失 | 使用 Gerber 导入 | 改用 ODB++/IPC-2581,或手工重建网络 |
| 平面层被识别为信号层 | 负片层语义未传递 | 在 Layer Stackup 中手工改为平面层 |
| 器件引脚未连接 | 封装或引脚映射缺失 | 检查器件属性,补全封装后重新导入 |
| 铜箔出现碎片/孤岛 | 几何精度或单位不一致 | 统一单位,清理孤岛铜,必要时修复几何 |
| 导入报错“unsupported version” | 原生格式版本过高 | 导出为 ODB++ 或降低版本后重试 |
五、导入流程与判断依据
把上述内容串起来,导入与预处理可以按以下顺序推进:选择格式 → 导入 → 核对层叠 → 核对网络 → 核对器件 → 清理几何 → 保存工程。每一步都有明确的判断依据:层叠看层数与厚度是否与设计一致;网络看数量与命名是否完整;器件看引脚与网络是否对应;几何看是否有碎片、重叠或缺失铜箔。
下面用一张图概括导入与预处理的数据流与关键检查点:
导入与预处理不是一次性的“点一下按钮”,而是一个需要逐项核对、必要时反复修正的过程。把层叠、网络、器件、几何四件事确认清楚,后续的端口设置、扫描与结果判读才有可靠基础。