1. 为什么要把 Clarity 3D Solver 和 Sigrity 串起来用做高速数字设计或者封装基板仿真的朋友大概率都遇到过这种尴尬花了大半天时间在 Clarity 3D Solver 里跑完一个复杂过孔结构的全波提取拿到一份 S 参数文件结果发现下一步要做通道级 TDR 或者眼图分析时还得手动把数据导来导去端口顺序对不上、参考阻抗不统一、频率采样点还得重新插值。这种割裂感就是工具链没打通带来的典型痛点。Clarity 3D Solver 是专门做三维全波电磁场求解的擅长处理任意形状的过孔、连接器、封装走线这类结构基于有限元法把 Maxwell 方程解出来得到宽频带的 S 参数模型。而 Sigrity 系列工具比如 PowerSI、SystemSI、Speedit更偏向于系统级的信号完整性、电源完整性分析能快速做通道仿真、TDR 阻抗曲线、眼图模板裕量评估。两者定位不同但天然互补Clarity 负责把“局部精细结构”的电磁行为算准Sigrity 负责把“整条链路”的系统性能评出来。把这两个工具串成一条流水线核心价值在于三点。第一减少人工搬运数据带来的错误端口映射、参考阻抗、频率范围这些参数在传递过程中最容易出岔子。第二提升迭代效率改一个过孔反焊盘尺寸不用重新搭一遍仿真环境直接更新模型重新跑就行。第三让结果可追溯每一步用了什么设置、什么版本、什么材料参数都能在工程里留痕方便后面复盘。这套流程适合谁呢如果你是从事故障分析、封装设计、高速通道评估的工程师手头有 Clarity 和 Sigrity 的 license但一直各用各的那这篇内容就是给你准备的。如果你刚接触这两个工具想了解它们怎么配合也能从里面找到可复现的步骤和参数设置思路。2. 工具链协同的整体思路与文件流转设计2.1 两种协同模式的选择逻辑Clarity 和 Sigrity 的配合从数据流向上看有两种模式。第一种是“Clarity 先提取Sigrity 后分析”这是最常见的做法。你在 Clarity 里把封装过孔、BGA 球栅阵列、连接器这些三维结构建成模型跑全波提取得到 Touchstone 格式的 S 参数然后把 S 参数导入 Sigrity 的通道仿真环境和 PCB 走线、无源器件模型串起来做系统级分析。第二种是“Sigrity 先做预布局Clarity 做精细验证”比如你在 PowerSI 里快速扫一遍阻抗轮廓发现某个区域有问题再把那块结构单独拿到 Clarity 里做精细建模确认是不是过孔 stub 或者参考平面开槽引起的。两种模式没有绝对优劣取决于你当前的设计阶段。预布局阶段用第二种速度快能快速定位问题区域签核阶段用第一种精度高能给出可信的通道性能数据。我个人的习惯是前期用 Sigrity 做快速扫描把可疑区域圈出来后期用 Clarity 做精细提取再把结果回灌到 Sigrity 做最终评估。2.2 文件格式与接口的约定Clarity 输出的 S 参数通常是 Touchstone 格式版本有 1.0 和 2.0 之分。1.0 只支持单端或者差分端口频率点按行排列2.0 支持更多端口数还能带噪声参数。Sigrity 对两种版本都支持但如果你后面要做混合模式分析比如差分转共模建议用 2.0 格式端口定义更清晰。端口阻抗这块要特别注意。Clarity 里默认是 50 欧姆单端差分端口可以设成 100 欧姆或者 85 欧姆。导出的时候Touchstone 文件头里的参考阻抗必须和 Sigrity 里设置的端口阻抗一致否则 TDR 曲线会整体偏移。我见过有人导出来是 50 欧姆导入 Sigrity 后忘了改结果 TDR 显示 45 欧姆查了半天以为是过孔阻抗偏低其实是参考阻抗没对齐。频率范围也要匹配。Clarity 扫频通常从 DC 或者低频开始比如 10 MHz 到 40 GHz。Sigrity 做通道仿真时如果只关心到 20 GHz那导入的 S 参数可以截断但截断会导致时域波形出现振铃。稳妥的做法是保留全频段让 Sigrity 自己决定插值范围。2.3 工程目录结构的规划工具链协同最怕文件散落各处时间一长自己都找不到哪个版本对应哪次仿真。我习惯在项目根目录下建几个固定文件夹01_clarity_model放 Clarity 的工程文件和材料库02_sparam_export放导出的 Touchstone 文件按日期或者版本号命名03_sigrity_project放 Sigrity 的工程04_report放最终的分析报告和截图。每次迭代文件夹里只保留最新版本旧版本归档到archive子目录。这样做的好处是当你需要回溯“上周三那版过孔模型”时能快速定位。而且如果团队协作别人接手你的工程一看目录结构就知道数据流是怎么走的。3. Clarity 3D Solver 侧的关键设置与提取实操3.1 三维模型的简化与网格划分策略Clarity 做全波提取模型简化程度直接决定仿真时间和精度。过孔结构里焊盘、反焊盘、走线这些细节要保留但封装基板外面的空气腔可以适当缩小只要保证辐射边界离结构足够远就行。经验值是辐射边界到最近金属边缘的距离不小于最高频率对应波长的四分之一。比如最高 40 GHz自由空间波长约 7.5 毫米四分之一就是 1.875 毫米取 2 毫米以上比较稳妥。网格划分是另一个关键点。Clarity 用的是自适应网格但初始网格太粗会导致收敛慢太细又浪费内存。我的做法是先在过孔中心区域设置局部加密网格尺寸取介质厚度的五分之一到十分之一。比如介质厚度 100 微米网格取 10 到 20 微米。然后让求解器自适应迭代通常三到四轮就能收敛到 2% 以内的误差。材料参数不能随便填。FR4 的介电常数在 1 GHz 时约 4.3到 10 GHz 可能降到 4.0 左右损耗角正切从 0.02 变到 0.015。如果你只填一个固定值高频段的相位会有偏差。Clarity 支持宽频带材料模型可以导入 Djordjevic 模型或者用户自定义的频变曲线。我一般从板材供应商那里拿到宽频带参数直接导入省得后面反复调。3.2 端口设置与激励方式的选择端口设置是 Clarity 里最容易出错的地方。单端端口要指定信号导体和参考导体差分端口要指定正负两端。过孔结构通常用波端口因为波端口能直接算 S 参数而且端口阻抗可以设成任意值。集总端口适合低频但高频下寄生参数会影响精度。端口位置也有讲究。波端口要放在传输线或者过孔的均匀段离不连续结构至少一个介质厚度的距离。如果端口太靠近过孔焊盘高次模还没衰减完S 参数会有纹波。我通常把端口放在过孔 stub 末端往外延伸 200 微米的位置确保只传播 TEM 模。激励方式选宽带脉冲还是扫频取决于你要什么结果。宽带脉冲一次就能覆盖整个频段适合做时域反射分析扫频精度高适合做窄带匹配。Clarity 默认用扫频如果你后面要在 Sigrity 里做 TDR建议用扫频频率步进设成 10 MHz 或者更小保证时域分辨率。3.3 求解器参数调优与收敛判断Clarity 的求解器参数里迭代次数和残差阈值是两个核心。默认迭代 10 次残差 0.01对于大多数过孔结构够用。但如果你的模型有很细的缝隙或者高介电常数对比可能需要放宽到 15 次残差 0.005。判断收敛不能只看残差还要看 S 参数的幅度和相位是不是稳定了。我习惯在求解过程中打开收敛曲线如果连续两次迭代的 S21 幅度变化小于 0.1 dB相位变化小于 1 度就可以认为收敛了。内存分配也要注意。Clarity 支持分布式求解如果你机器内存不够可以设置成多核并行但核数不是越多越好。经验是核数等于物理核心数的一半到三分之二时效率最高因为网格划分和矩阵求解之间有串行部分。比如 32 核的机器设 20 到 24 核比较合适。3.4 导出 Touchstone 文件的注意事项导出的时候端口顺序要和 Sigrity 里的定义一致。Clarity 默认按端口编号顺序导出但如果你在 Sigrity 里重新排列了端口导入后要手动映射。我通常会在 Clarity 里就把端口命名成有意义的标签比如TX_P、TX_N、RX_P、RX_N导出时保留标签Sigrity 导入后能自动识别。频率点也要检查。Clarity 扫频可能从 10 MHz 开始但 Touchstone 文件里如果包含 DC 点有些工具会报错。稳妥的做法是从 10 MHz 或者 1 MHz 开始避开 DC。另外如果频率点不是等间隔的Sigrity 导入后可能会重新插值导致时域波形轻微失真。建议在 Clarity 里就设成等间隔扫频步进根据最高频率来定比如 40 GHz 用 10 MHz 步进4000 个点文件大小可控。4. Sigrity 侧的模型导入与系统级仿真配置4.1 S 参数模型的导入与端口映射Sigrity 导入 Touchstone 文件通常走 SystemSI 或者 Speedit 的通道仿真流程。导入后第一件事是检查端口映射。如果 Clarity 导出的端口标签和 Sigrity 里的网络名对不上需要手动绑定。比如 Clarity 里叫TX_PSigrity 里网络叫U1_A1你得在端口映射表里把这两个对应起来。参考阻抗也要确认。Sigrity 默认 50 欧姆如果你 Clarity 里用的是 100 欧姆差分导入后要在差分端口设置里改成 100 欧姆。有些版本的 Sigrity 会自动读取 Touchstone 文件头里的阻抗但我不完全依赖这个手动核对一遍更放心。4.2 通道拓扑的搭建与无源器件模型通道拓扑就是把 S 参数模型、PCB 走线模型、无源器件模型串起来。PCB 走线可以用 Sigrity 的传输线模型输入线宽、介质厚度、介电常数工具会自动算出特征阻抗和延迟。无源器件比如电容、电感可以用理想模型也可以用厂商提供的 S 参数模型。如果做电源完整性分析还要加上 VRM 模型和去耦电容网络。拓扑搭建时要注意节点连接。S 参数模型的端口要和走线模型的节点对齐否则会出现悬空节点。我习惯在搭建完后用 Sigrity 的拓扑检查功能扫一遍看看有没有未连接的端口或者阻抗不连续的地方。4.3 激励设置与仿真类型选择Sigrity 支持多种激励比如阶跃信号、伪随机码流、正弦扫频。做 TDR 分析用阶跃信号上升时间根据你的信号速率来定。比如 10 Gbps 的信号上升时间约 35 皮秒TDR 阶跃上升时间可以设成 20 皮秒这样能分辨出更细的阻抗变化。做眼图分析用伪随机码流码型长度根据协议来定比如 PCIe 用 PRBS7 或者 PRBS31。码流长度越长仿真时间越久但眼图统计特性越准。我一般先用短码流快速跑一遍看看大致趋势再用长码流做最终签核。仿真类型选频域还是时域取决于你要什么结果。TDR 和眼图是时域S 参数和阻抗曲线是频域。Sigrity 可以一次仿真同时输出两种结果但时域仿真对 S 参数的频率范围要求更高通常要保留到信号带宽的五倍以上。4.4 仿真参数与收敛设置Sigrity 的时域仿真步长要小于最小上升时间的十分之一。比如上升时间 20 皮秒步长取 2 皮秒或者更小。仿真总时间要覆盖整个码流长度加上通道延迟。通道延迟可以从 S 参数的相位斜率估算或者用 Sigrity 的传输线模型直接算出来。收敛设置里误码率目标通常设 1e-12 或者 1e-15取决于协议要求。仿真时间不够的话眼图会不完整误码率统计不准。我一般先跑一个短码流看看眼图大致形状再根据需要的误码率反推码流长度。比如要 1e-12 的误码率至少需要 1e12 个比特实际仿真中会用外推算法但码流长度也不能太短通常 1e6 到 1e7 个比特比较稳妥。5. 结果分析与常见问题排查5.1 TDR 阻抗曲线的解读与问题定位TDR 曲线是判断阻抗连续性的直观工具。理想情况下50 欧姆传输线的 TDR 应该是一条平直的 50 欧姆线。如果出现过冲或者下冲说明有感性或者容性不连续。过孔 stub 通常表现为容性TDR 会先下降再上升参考平面开槽表现为感性TDR 会先上升再下降。解读 TDR 时要注意时间轴和距离轴的对应关系。Sigrity 可以自动把时间转换成距离但传播速度要用实际的有效介电常数来算。比如 FR4 的有效介电常数约 3.5传播速度约 1.6e8 米每秒1 毫米对应约 6.25 皮秒。如果你用 3.0 来算距离会偏大。常见问题里TDR 整体偏移最常见的原因是参考阻抗不匹配。如果 TDR 显示 45 欧姆而不是 50 欧姆先检查 Clarity 导出时的参考阻抗和 Sigrity 导入后的设置是不是一致。另一个常见问题是 TDR 曲线有周期性纹波这通常是 S 参数频率范围不够或者频率步进太大导致的可以尝试在 Clarity 里加密频率点重新提取。5.2 眼图裕量与通道性能评估眼图分析看几个关键指标眼高、眼宽、抖动、误码率。眼高不够通常是损耗太大或者阻抗不匹配引起的反射太强。眼宽不够可能是抖动太大包括随机抖动和确定性抖动。确定性抖动又分数据相关抖动和周期性抖动数据相关抖动通常和码型有关周期性抖动可能来自电源噪声或者时钟串扰。评估通道性能时要把眼图和模板对比。比如 PCIe 4.0 的模板要求眼高至少 25 毫伏眼宽至少 0.3 UI。如果裕量不够可以尝试优化过孔设计比如减小 stub 长度、调整反焊盘尺寸、增加回流过孔。每次优化后重新跑 Clarity 提取再导入 Sigrity 看眼图变化形成迭代闭环。5.3 常见报错与排查速查表问题现象可能原因排查方法TDR 整体偏移参考阻抗不一致检查 Clarity 导出阻抗和 Sigrity 端口设置TDR 有周期性纹波频率范围不够或步进太大加密频率点扩展高频段眼图闭合损耗太大或反射太强检查 S21 幅度优化过孔 stub仿真报错“端口未连接”拓扑节点未对齐用拓扑检查功能扫描仿真时间过长码流太长或步长太小先用短码流预估再跑长码流S 参数导入后相位异常端口顺序错乱核对端口标签和映射表5.4 实操心得与避坑技巧第一个坑是材料参数。很多人直接用 FR4 的默认值结果高频段相位偏差很大。我的做法是从板材供应商那里要宽频带参数或者用传输线实测反推。实测反推的方法是做一条已知长度的传输线测 S21 相位反算有效介电常数再拟合出频变曲线。第二个坑是端口位置。波端口离不连续结构太近高次模没衰减完S 参数会有纹波。我通常把端口放在均匀段离最近的不连续结构至少一个介质厚度。如果结构很紧凑可以适当延长均匀段或者用集总端口加去嵌。第三个坑是网格收敛。有些人看到残差到了 0.01 就停了但 S 参数还没稳定。我的做法是同时看残差和 S 参数变化两者都稳定了才停。如果残差降不下去可能是网格太粗或者材料参数有突变需要局部加密或者检查材料设置。第四个坑是版本兼容。Clarity 和 Sigrity 的版本最好匹配比如 Clarity 2023 配 Sigrity 2023。如果版本差太多Touchstone 格式或者端口定义可能有变化导入后容易出问题。我一般会在项目开始前确认两个工具的版本必要时升级或者降级。6. 迭代优化与工程化建议6.1 参数化建模与批量仿真如果要做多组参数扫描比如过孔反焊盘直径从 0.5 毫米到 0.8 毫米手动改模型太慢。Clarity 支持参数化建模可以把反焊盘直径设成变量批量生成不同模型。导出 S 参数时文件名带上变量值比如via_antipad_0p5.s2p、via_antipad_0p6.s2p方便后面在 Sigrity 里批量导入对比。Sigrity 也支持批量仿真可以写脚本自动导入不同 S 参数文件跑完眼图后把结果汇总成表格。我通常用 Python 脚本调用 Sigrity 的命令行接口自动完成导入、仿真、导出报告的全流程。这样一晚上能跑几十组参数第二天直接看结果。6.2 结果归档与版本管理每次迭代的结果要归档包括 Clarity 工程、导出的 S 参数、Sigrity 工程、仿真报告。我习惯用日期加版本号命名比如20250115_v1、20250116_v2。归档时把关键设置截图保存比如 Clarity 的网格设置、端口设置Sigrity 的拓扑连接、激励设置。这样后面复盘时能快速还原当时的仿真条件。版本管理可以用 Git但 S 参数文件通常很大不适合直接放 Git。我的做法是工程文件和小文本放 GitS 参数文件放共享盘Git 里只记录文件路径和校验和。这样既能追溯版本又不会把仓库撑爆。6.3 团队协作与流程标准化如果团队多人协作最好把流程标准化。比如规定 Clarity 导出时端口命名规则、频率范围、参考阻抗Sigrity 导入时的端口映射表、仿真模板。我见过团队因为命名不统一A 导出的 S 参数 B 导入后端口全错查了一天才发现是标签对不上。标准化的另一个好处是新人能快速上手。把流程写成文档配上截图和参数表新人照着做就能跑通。我通常会把常见问题和解决方法也写进去比如 TDR 偏移怎么查、眼图闭合怎么优化这样新人遇到问题能先自己排查不用每次都问。6.4 性能优化与计算资源分配Clarity 的全波提取很吃内存一个复杂的过孔阵列可能要用几十 GB 内存。如果机器内存不够可以分块提取把大结构拆成几个小结构分别提取后再在 Sigrity 里串起来。分块的时候要注意端口定义块与块之间的接口要一致否则串起来后 S 参数不连续。Sigrity 的时域仿真也很吃 CPU长码流仿真可能跑几个小时。如果有多核机器可以开并行但核数不是越多越好。经验是核数等于物理核心数的一半到三分之二时效率最高。另外仿真时关掉其他占资源的程序避免内存交换。计算资源分配上我通常把 Clarity 和 Sigrity 分开跑不要同时跑否则内存和 CPU 抢资源两个都慢。如果必须同时跑给 Clarity 分配更多内存因为全波提取对内存更敏感。7. 一个完整的过孔优化案例复盘7.1 案例背景与初始仿真之前做过一个 25 Gbps 背板过孔的优化项目。初始设计里过孔 stub 长度 1.5 毫米反焊盘直径 0.6 毫米差分阻抗目标 100 欧姆。在 Clarity 里建好模型扫频 10 MHz 到 40 GHz导出 S 参数。导入 Sigrity 后跑 TDR发现阻抗在过孔区域降到 85 欧姆眼图眼高只有 15 毫伏裕量不够。7.2 问题定位与参数扫描用 TDR 定位阻抗下降的位置对应过孔 stub。初步判断是 stub 太长容性效应太强。在 Clarity 里做参数扫描stub 长度从 1.5 毫米减到 0.5 毫米反焊盘直径从 0.6 毫米加到 0.8 毫米组合出九组模型。每组导出 S 参数在 Sigrity 里跑 TDR 和眼图结果汇总成表格。组别Stub 长度反焊盘直径TDR 阻抗眼高11.5 mm0.6 mm85 Ω15 mV21.0 mm0.6 mm90 Ω18 mV30.5 mm0.6 mm95 Ω22 mV41.5 mm0.8 mm88 Ω17 mV51.0 mm0.8 mm93 Ω20 mV60.5 mm0.8 mm98 Ω25 mV71.5 mm1.0 mm90 Ω18 mV81.0 mm1.0 mm95 Ω22 mV90.5 mm1.0 mm100 Ω28 mV从表格看第 9 组效果最好stub 0.5 毫米反焊盘 1.0 毫米TDR 阻抗刚好 100 欧姆眼高 28 毫伏满足模板要求。7.3 最终方案与验证选定第 9 组参数后重新在 Clarity 里建精细模型网格加密材料用宽频带参数扫频步进 5 MHz导出 S 参数。导入 Sigrity 后跑长码流仿真码流长度 1e7误码率目标 1e-12。最终眼高 27 毫伏眼宽 0.35 UI误码率 1e-13满足协议要求。这个案例里Clarity 和 Sigrity 的协同起了关键作用。如果只用 Sigrity 的传输线模型过孔的容性效应算不准TDR 和眼图会有偏差。如果只用 Clarity没有系统级的通道仿真也评估不了眼图裕量。两者串起来才能既保证精度又保证效率。7.4 案例中的经验教训第一个教训是参数扫描不要一次扫太多组否则数据量太大分析起来费劲。我一般先扫三到五组找到趋势后再细化。第二个教训是TDR 阻抗和眼高不是线性关系阻抗匹配了眼高不一定够还要看损耗和抖动。第三个教训是最终方案要用精细模型验证参数扫描时的粗模型只能用来找趋势不能直接签核。8. 工具链协同的扩展应用8.1 从过孔扩展到连接器和封装这套流程不只适用于过孔连接器和封装基板也能用。连接器的三维结构更复杂Clarity 建模时要注意端口的定义通常用同轴端口或者波端口。封装基板上的走线和过孔阵列可以分块提取再在 Sigrity 里串起来。关键是保持端口定义一致块与块之间的接口要匹配。8.2 电源完整性分析中的协同电源完整性分析里Clarity 可以提取电源平面和过孔的阻抗特性导出 S 参数。Sigrity 的 PowerSI 或者 OptimizePI 可以导入这些 S 参数做电源分配网络的阻抗扫描和去耦电容优化。协同的关键是频率范围要覆盖到目标频段比如 1 MHz 到 1 GHz端口定义要区分电源和地。8.3 与热仿真和结构仿真的联动如果要做电热联合仿真Clarity 提取的 S 参数可以导入 Sigrity 做损耗分析算出功耗分布再把功耗导入热仿真工具做温度场分析。温度变化又会影响材料参数反过来影响 S 参数形成迭代。这套流程比较复杂但能给出更真实的系统性能评估。9. 写在最后的一些个人体会这套流程我用了两年多踩过的坑不少但收获也很大。最大的体会是工具链协同不是简单地把两个工具连起来而是要理解每个工具的能力边界知道什么该在 Clarity 里做什么该在 Sigrity 里做。Clarity 的强项是三维全波提取精度高但速度慢Sigrity 的强项是系统级仿真速度快但需要准确的模型输入。两者配合才能既快又准。另一个体会是参数设置要留痕。每次仿真的材料参数、网格设置、端口定义、频率范围都要记录下来。后面复盘时能快速还原当时的条件避免重复劳动。我习惯用 Excel 表格记录每次仿真的关键参数配上截图归档到项目文件夹里。最后分享一个小技巧如果 Clarity 提取的 S 参数在 Sigrity 里导入后 TDR 有异常先检查端口顺序和参考阻抗这两个是最常见的错误来源。如果这两个都没问题再检查频率范围和步进看看是不是插值引起的失真。大部分问题都能通过这三步排查出来。