ARTICLE DETAIL

资讯详情

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

Cadence Sigrity Power SI实战:PCB S参数提取与信号完整性仿真指南

Cadence Sigrity Power SI实战:PCB S参数提取与信号完整性仿真指南 1. 项目概述S参数提取在SI仿真里的分量做高速信号设计的朋友对Cadence Sigrity这套工具应该不陌生。尤其是Power SI这个模块它专门干一件事——在PCB上把特定网络的频域特性算出来输出成S参数模型供后续系统级仿真或者规则检查使用。我最早接触Power SI是给一块DDR4的内存条做预研当时项目卡在一个很尴尬的位置原理图已经评审完PCB也没太多改动空间但SI工程师跟RF工程师对“这根走线到底能不能扛住3200MT/s”完全没有共识。后来我花了一个周末把整条DQ网络用Power SI跑了S参数提取又配合Sigrity自家的TDR工具做了阻抗连续性验证才把争论落在具体数据上。这篇文章就围绕“Cadence Sigrity Power SI实战”这条主线把从导入PCB到完成S参数提取的完整流程拆开讲。适合的读者有两类一类是大中型硬件团队里刚接手SI仿真工作的新工程师学校学过电磁场但没在工具里完整跑过一遍流程另一类是layout工程师想在投板前自己快速验证关键信号不依赖专门的仿真组。文章不会堆理论公式重点讲实际操作中怎么设置、怎么避坑、怎么看结果以及哪些环节最容易出“看起来能跑但结果不对”的假象。在开工之前先明确一个基本问题为什么一定是S参数因为PCB上所有无源网络走线、过孔、连接器在高速信号下都是分布参数系统电压电流随时空变化不是简单的电阻电容模型能描述的。S参数把每个端口上入射波和反射波的关系用矩阵表达既包含幅频特性又包含相频特性是一条网络在全频段内行为的最小完备描述。你拿到一个4端口S参数直接就能算插损、回损、串扰、模式转换而这些指标恰好决定了你的信号能不能过眼图、能不能满足协议模板。Power SI在Sigrity整个工具链里承担的角色就是把这些几何信息变成数学描述算是链接“版图”和“行为级仿真”的桥梁。2. 内容整体设计与方案选型2.1 为什么选Power SI而不是ADS或者HFSS市面上能做S参数提取的工具有不少ANSYS HFSS做任意三维结构精度确实高ADS也在射频领域扎根很深但放在PCB级高速数字仿真的场景里Power SI有两个明显优势。第一数据链路最短。Power SI和Cadence的Allegro是同一家公司生态内的产品导入PCB时可以直接使用Allegro的数据库格式叠层、走线、过孔、焊盘、网络名全部原样保留不需要中间转换格式。我见过从PADS转过来的板子过孔反焊盘信息丢失、铜皮网络被拆分、盲埋孔叠层错位光清理这些就耗了大半天。而Allegro转过来基本不用修连铜皮上的挖空区域都能识别。第二电热协同和电源完整性天然集成。Power SI虽然是“SI”的名头但它和Sigrity OptimizePI、Power DC属于同一个仿真套件做信号完整性的同时可以顺手把PDN阻抗也看了。这个“顺手”在高密度板卡上非常实用很多时候DDR跑不稳不仅仅是走线质量差而是电源轨在开关频率附近出现高阻抗峰耦合进了信号网络。你用Power SI提取信号线S参数的时候能在同一套结构上关联出平面谐振和过孔Stub效应这在SI/PI联合分析时省了反复同步模型的痛苦。不过Power SI也不是万能药。对于板边连接器、线缆这类全三维结构它的求解器在网格剖分上的精细度不如HFSS对于某些特殊材料比如铁氧体磁珠或高频板材材料库缺参数你需要手动填DK和DF。所以完整项目里Power SI常和三维场工具搭配使用PCB段用Power SI提取连接器和线缆用HFSS或者CST提取最后在Sigrity的SystemSI里拼成完整通道——这也是行业里比较主流的工作流。2.2 仿真前必须想清楚的三个问题很多刚学Power SI的人习惯性地把流程做成“导入PCB-选择网络-点仿真-看结果”但这样做的结果往往是“仿真跑完了结果不敢用”。按我的经验在点击任何按钮之前先追问自己三个问题。问题一你要仿真的频率范围是多少这直接决定了网格剖分的密度和仿真要跑多久。如果你只关心100MHz到10GHz那网格尺寸以1mm量级就够如果要把信号质量和EMI一并评估打算一直看到40GHz那网格就要加密到0.5mm以下功耗和时长都会成倍增加。我见过一个同事为了省时间通信用SerDes明明要到25GHz他只跑到10GHz就交报告结果第5次谐波附近的重合完全没体现后来系统联调时误码率超标才回头补仿真浪费了整整一周。问题二哪些网络需要纳入仿真范围S参数提取不是“板上所有线都提”而是带着问题上路的。你要分析的是DDR4的地址线那选DQ/DQS网络加上配套的VTT参考层就够了要分析PCIe Gen4的差分对那就要连同参考地平面、相邻信号线一起选上因为远端串扰才是限制因素。网络选多了仿真时间指数级上升选少了结果又失真所以这里面有个工程判断。问题三板卡上的无源器件怎么处理在Power SI里提取S参数时原则上只保留无源结构——走线、过孔、平面、焊盘。串联电阻、电容、磁珠这类器件你可以选择在仿真时去掉用短路替代或者保留其S参数模型。实际情况里我需要根据频率决定比如端接电阻在几百MHz以下是透明的用短路替代没问题但在GHz以上电阻的寄生电感和分布电容会影响谐振点必须用厂商提供的S参数模型。这块在后面实操步骤里会再展开。3. 核心细节解析与实操要点3.1 从Allegro到Power SI的导入与叠层检查在Allegro中打开一块已完成铺铜和走线的PCB点击File-Export-Signal Integrity可以直接导出Sigrity格式。注意这里不要用ODB或者第三方转换虽然Power SI也支持但有时候会因为层叠映射问题导致铜箔厚度识别错误。导出前建议先跑一遍Allegro的Database Check菜单Tools-Database Check把悬挂走线、断铜、重复网络这类基础问题清掉否则Power SI里报错时你还要回头改图。导入后第一件事是核对叠层。Power SI会读入你的Cross Section配置但单站点的板厂预制叠层不一定和最终文件一致所以哪怕Cadence自己导出来的也要逐项确认。需要检查的选项包括每层铜箔厚度、介质材料类型、介质厚度、DK值、DF值以及最容易被忽略的阻焊层参数。你可能觉得阻焊层影响不大但在高频段特别是超过10GHz时阻焊材料的损耗对插损的贡献能占到总损耗的5%-10%对眼图的垂直张开度有明显影响。我习惯用表格把叠层信息列出来逐层比对层名类型材料厚度(mil)DKDF是否走线层备注TOP走线FR4-IT180A1.23.90.009是高速信号PREPREG介质FR43.53.70.012否-GND02平面铜1.2--否完整参考地CORE03介质FR44.04.20.014否-........................如果你对材料的DK/DF拿不准我建议宁可多花时间查厂商手册也不要默认值硬跑。曾经有个板子的TOF项目FR4材料用默认DK4.4还是厂商实测DK4.0在8GHz下波长差将近3%最终体现在时序裕量上就是好的版图和差版图之间的差距。3.2 网络选择与Checklist自检流程叠层确认后进入Power SI主界面此时需要做的第一件事不是急着选网络而是构建求解域。这里“求解域”不太准更贴切的说法是“仿真范围”。我的流程是先Hide所有非信号层只显示我们要用的信号层和邻近参考平面层。然后选中目标网络例如DDR的DQ0把它的走线、过孔、焊盘全部高亮再扩展选择相邻两个网络通常是旁边的DQ1”和DQS因为这能捕获串扰耦合路径。接下来逐个点击菜单Analysis-Matrix Scriptor或者用工具栏的Check按钮Power SI会自动检查有没有孤岛、悬空走线、未连接过孔以及参考平面是否连续。最经典的坑是一条高速走线跨过了电源平面分割槽但你在仿真时把电源平面层的所有shape都保留了下来Power SI会自动把跨分割的信号线理解成“参考路径被切断”结果S参数上出现一个异常谐振峰。事后排查发现走线在跨平面缺口的地方绕了一个小弯虽然没有违反自己的DRC规则但在高速仿真里这就是一条天线。做完这些检查还要手动确认要给每个端口指定地参考。Power SI里每个端口Port必须有一对正负参考正端挂在信号网络上负端挂在地网比如GND网络。如果某个端口的地参考选错了比如挂到了电源轨上不但S参数结果不对还会导致仿真器在求解端口阻抗时出现负值或无穷大直接报错。3.3 器件模型与端口设置的细节门道选择完网络后需要把板上影响信号的器件逐个导入。具体说包括串联电阻、串联电容、逻辑芯片的封装模型、连接器的S参数模型等。对一般项目最少需要处理三类器件端接电阻、退耦电容、过孔和连接器。先说端接电阻。DDR4的地址线通常在末端有双向端接这些电阻在仿真时可以等效成50欧姆或特定阻值到参考电压VTT。在Power SI中你可以把它们保留为物理形状用RLC集总模型也可以直接从网络里“移除”并用端口替代。我的习惯是如果是串联匹配电阻直接保留为R值如果是上拉的ODT网络则在提取端口后外部用Model Integrity工具单独加。再说退耦电容。这部分容易被忽略。有时候网络本身没问题但参考平面上的高阻抗来自某个位置解耦电容配置不佳导致PDN谐振耦合进信号网络。仿真时如果你不选这些电容Power SI默认把电容焊盘当成开路结果会和实际情况偏差很大。所以一个稳妥的做法是提取信号S参数时把邻近电源网络的去耦电容一并纳入提取范围但设置时让它们不影响信号网络或者通过网络排除功能排除掉。最后是过孔。现代高速板卡几乎没有“纯直线”的走线信号必定打过孔换层。过孔的残桩stub在高速下会产生严重的谐振损耗。Power SI里面对过孔的处理方式通常是依据实际叠层和在Allegro里的钻孔属性自动建模但有一个关键选项叫“Enable plated-through hole model detail”。这个选项要打开否则过孔的寄生电容、电感都没法精确建模在10GHz以上差别巨大。还有一种情况是过孔内部有背钻或者盲埋孔Power SI导出时如果识别错了会把盲孔当通孔那仿真频点根本对不上所以每次导入后我都会用3D视图模式下旋转看一遍过孔形态是否符合版图。端口设置这块要提醒一个小细节Power SI在做S参数提取时会为每个网络创建2个端口起点和终点差分对自动成对。但如果你的信号走线在中间经过一个双向连接器或走线拐弯后在pad上分叉Power SI可能无法自动判断应该放几个端口。我的做法是在“Model Setup”里手动添加/删除端口对照原理图逐一确认每个端口确实对应一个真实器件引脚。如果你在这一步偷懒结果就是你拿到的S矩阵维度不对放到SystemSI里和收发器模型对接时S参数矩阵一边是4端口一边是6端口只能回头重新提取白白浪费时间。4. 实操过程与核心环节实现4.1 从PCB导入到S参数输出的完整流程为了让第一次接触Power SI的同学有一个完整的项目级概念我把从拿到PCB到输出S参数的全过程列成一个可以直接套用的顺序清单在Allegro里执行Tools-Export-Signal Integrity选择输出路径和项目名。在Power SI中打开导出的seg文件确认叠层信息、铜厚、材料参数。清理冗余对象隐藏与仿真无关的层、网络。创建求解模型使用菜单Extract-Run Power SI Simulation。在弹出的设置面板中选择求解器类型默认是3D Full-wave或2D3D拉伸求解视网络复杂度而定。选定要包含的过孔模型精度、材料频率相关性选项、求解范围起始频率和截止频率。选择要输出的S参数矩阵类型单端S、混合模式S或单端混模模式。运行求解并查看“仿真状态”窗口排查警告和错误。结果输出到DataManager面板右击选择Export Touchstone生成.sNp文件。这当中不少人会卡在第7步到底输出单端S参数还是混合模式S参数如果后续接到SystemSI里做差分仿真我建议直接导出Mixed Mode S参数。这能直接看到差分插损SDD21、差分回损SDD11、共模插损SCC21、模式转换SCD21省得自己再通过公式换算。如果你的终端报价审查或者EFA要求看单端原始数据再额外导一份单端Touchstone反正Power SI导出文件不大不差这一步。4.2 走线提取的参数计算在这个项目里如何判断仿真区间确定频率范围是需要计算一下的不能随手指一个“10Hz-10GHz”。从工程角度信号的傅里叶展开中有效能量集中在基频和第3次谐波而判断链路质量通常需要看到第5次谐波以上。以一个PCIe Gen3通道来说码率是8GT/s基频对应跳变速率大约是4GHz因为PCIe用NRZ码率的一半是单次跳变对应的频率我们至少应该看到20GHz才能覆盖第5次谐波。如果你做的是56G PAM4信号带宽的核心区在14GHz那24GHz一下的数据基本都不够用。我做DDR4 3200的S参数提取时设的典型范围是10MHz到20GHz扫频点约800到1600点频率间隔选在10MHz附近。因为DDR和NAND协议里关心的是频域包络和谐振位置点太密仿真时间翻倍点太疏又会漏掉高Q值的谐振峰。Point count一旦设置好Power SI内部会自动做插值和多频点并行求解不用太担心计算资源的问题。频点和扫点范围确定了还需要确认仿真的终止条件。这个在Power SI里体现为收敛阈值和最大迭代次数。我通常把收敛容差设在0.001最大迭代40次这对一般板卡足够。如果你发现在某些频点总是报“Sparameter has non-physical values”往往是隔很远的地方有一个小铜片没有分配网络导致求解器在边界处理上出现奇异值回头把那些孤立铜皮清掉就好。4.3 一个实际案例DDR4 DQS差分对的S参数提取我拿一个自己实际做过的DDR4项目来演示当时是一块8层板DQS走线在内层第4层参考平面上方为第2层地平面、下方为第5层电源平面。DQS信号走的是差分对相互间距为8mil线宽4mil内部走线总长约1200mil末端有一个VTT端接电阻。先在Allegro导出并导入Power SI后叠层和材料参数很快确认。在Power SI中我们选择DQS_P和DQS_N两条网络同时勾选相邻两条DQ线以捕捉串扰。所有无源器件端接先移除仅通过设置Port阻值50欧姆来提供匹配参考。通过Model Setup为两条差分线创建两个Port对正负端参考点分别设置到RX引脚端和TX芯片端。然后设置求解范围10MHz到20GHz扫点1280个点保存输出结果为混合模式S参数。由于DQS是差分信号我需要检查的重点是差分插损SDD21因为DQS对读时序中的DQS信号边沿质量影响极大。仿真运行大概15分钟后结果出来了在9GHz附近看到SDD21出现了一个 -3.5dB的“陷阱”状凹陷而其他频段都在 -1dB以内。这个9GHz的“陷阱”恰好对应到DQS差分线跨过电源平面分割的地方。查看物理版图后确认DQS在换层时经过了一组过孔这个过孔组的残桩长度约为14mil而9GHz下四分之一波长约31mil残桩长度虽未达到谐振半波长但加上焊盘电容已经引起了耗散。这就是一个非常典型的“你画图时DRC不报错但SI仿真就是能看到”的情况。我尝试在配置里把过孔残桩长度设为零进行对比仿真结果9GHz处的SDD21凹陷消失回损也明显改善。所以问题最终定位到过孔背钻工艺不足上。后续和PCB厂商协调使用背钻工艺换掉了这部分过孔的残桩仿真再次验证后SDD21在全频段都在 -1.2dB以上满足协议要求。4.4 优化方案的优先级与实施效果从这个案例出发把S参数提取过程中观察到的异常和优化优先级整理如下。优先级通常是我在工作流中实际执行顺序不是理论上的“按什么顺序最优”先看参考平面连续性如果信号换层附近没有完整回流路径这是头号恶化项任何其他优化都绕不开。再看过孔残桩背钻成本不高但对高速信号改善显著尤其对10GHz以上频段。然后看串扰耦合差分对间距和邻近信号间距既然影响S参数中的耦合项如果串扰指标没达标优先调整布线距离。之后才是板材Dk/Df差异和端接优化。最后才考虑菊花链拓扑调整或中间增加buffer。这种优先级排序在工程上很实用因为你给layout提意见时总要有所取舍一上来就让人家把整块板重新布线是不现实的。从“可见改动-收益比”来看优化参考平面和过孔残桩往往是最划算的。5. 常见问题与排查技巧实录5.1 报错“Non-physical S parameter”与网格问题排查做S参数提取时最常看到的报错就是“Non-physical S parameter”或“scattering parameter inconsistent”。我说下最近一次真机排障的过程。起因是帮同事仿真一条PCIe Gen4通道结果每次跑到11.6GHz左右就报这个错和其他频段的结果对不上。一开始怀疑是端口阻抗设置问题后来对比了端口阻抗波形发现311.8GHz附近的功率损耗有异常峰值但物理上这个网络没有任何共振物体。后来检查到Power SI里一个隐藏的“来源”一块铺铜原来是做散热的悬空未连接任何网络而且这块铜正好和信号线相距很近形成了很强的寄生耦合。我把这块孤立铜皮从仿真里移除后报错消失结果也回归正常。所以遇到这种“说不清”的报错第一步不要怀疑算法先查是不是模型里有未定义网络、悬空铜皮、过孔残桩。把Physics视图打开把所有“NoNet”或者“孤岛”高亮出来逐个删掉重跑十个问题里至少能解决六个。5.2 结果与实测差异大时的定位思路另一种常见情况是仿真S参数和网络分析仪实测对不上。这种偏差不一定意味着仿真错误常见原因是你的S参数提取范围里没有包含“板外的东西”。举个例子测量时你用的是SMA连接器和同轴电缆接到VNA的但仿真模型里只包含PCB走线没有SMA的S参数也没有测试引线的影响。两者的S11绝对对不上。一个实用的做法是仿真模型增加SMA模型可以直接从连接器厂商下载S参数模型同时把测试电缆的去嵌结果作为对比基准。Power SI的DataManager里支持把.Touchstone文件和仿真结果放在同一张图里对比你可以直接在界面中叠加看。如果你测的和仿真的都已经包括了SMA但依然偏差超过0.5dB那就把注意力放到材料损耗和铜箔表面粗糙度上。高频下铜箔表面粗糙度对插损影响巨大。Power SI里面可以设置“Copper Roughness”模型例如Hammerstad模型包如果你板子是标准HTG铜箔表面粗糙度一般在2-4微米高速材料则更小。我建议在仿真里打开粗糙度建模因为不打开的话插损结果在高频段会“乐观”的离谱导致你高估了链路能力。5.3 TDR仿真常见“不收敛”现象的快速解决方法热搜词里大家一直在问“sigrity怎么仿真tdr”其实TDR仿真是在PowerSI/SystemSI里做时域反射但本质上依赖S参数的傅里叶反变换所以S参数提取的合理性直接决定了TDR的结果。常见“不收敛”或“波形振铃”的原因主要有三个一是S参数矩阵覆盖频段太窄反变换之后时域阶跃响应被截断了——解决方法是扩展仿真截止频率让能量衰减到足够小。 二是矩阵端口数不对例如你选的网络包含4个Port但其中两个Port没被正确参考导致矩阵存在秩亏——解决方法是重新审查端口参考。 三是频率采样点太稀疏导致时域反变换出现吉布斯效应。我建议在扫点时适当加密频率点特别是在高频段附近。做TDR时还有一个小技巧不要从头到尾看整条项链的波形而是在S参数提取时把目标网络切分成多段或者利用Power SI里的“time domain reflectometry”工具直接查看逐段阻抗这样定位阻抗不连续点特别快。一个8000mil长的网络我通常按200-300mil一段去检查哪个位置阻抗突变超过10%就重点看那个区域的走线宽度变化、参考层跨层点以及过孔密度。5.4 Cadence环境与License常见“坑”速查表在实际操作中Power SI跑不起来或跑一半出错的概率也不低多数和Cadence环境配置有关。我整理了一份自查清单现象最可能原因处理办法启动报错找不到license特性Cadence License Manager未启动或License过期重新启动License Manager确认Sigrity相关feature是否勾选导入Allegro导出文件失败PCB文件路径包含中文或特殊字符将文件放到纯英文路径下再重新导出仿真跑到一半崩溃退出内存不足减小求解带宽或用“Region”划分子区域仿真打开工程后图形无法显示显卡兼容问题启动时选择“Compatibility Mode”报错“model undefined”库路径未指向模型文件目录在setup -library path中补充路径这些环境问题说大不大但处理起来占时间尤其项目工期紧的时候大家的心态容易崩。我一般的习惯是一台工作机固定装好统一版本所有项目文件统一放一个目录一年做一次16.6-S087到115补丁的升级验证这样能减少大量潜在的版本兼容问题。6. 关于全流程设计的几点个人体会S参数提取这个项目看着只是CAD工具中的一个仿真步骤但真正执行起来你会发现它其实是SI工程师的“磨刀”环节。磨得好不好直接影响后面所有链路仿真的可信度。我在实际项目里吃了不少亏最深的感触有三条。第一网格不是越密越好而是“在关注频段下精度够用才算好”。Power SI默认的网格肯定能跑出“结果”但你没跟VNA实测对比之前永远不知道它偏了多少。我建议每做一个新的叠层或板材方案头几次仿真务必拿快速样品板去测一下S参数校准工具里的材料库参数和粗糙度模型之后再用同一套库去跑其他设计效率才上得来。第二网络的取舍要卡在和原理图工程师逐个对过。同一个网络在版图里可能连接几十个pin但真正决定高频性能的只有收发端的两个pin其他中间pin比如测试点、led指示灯驱动管脚都要根据其在拓扑里的位置决定是否建模。这件事不能交给Power SI全自动因为自动选择往往会加入过多非关键pin导致矩阵门数爆炸仿真慢得没法用。第三S参数结果本身不是终点与协议指标结合才是。拿到一个很好看或者很难看的S参数并不直接等于“可以量产”或“必须改版”你得把它扔到SystemSI里加载收发器IBIS模型跑眼图和BER再看。有一次我看到差分插损在12GHz时只有-2dB直觉觉得还行结果在SystemSI里跑了50G PAM4眼图后眼宽才0.4UI水平闭合严重才发现是共模噪声过大导致的模式转换在捣乱。所以现在我每次做完整流程都会把S参数直接接到拓扑仿真里再验证一轮。最后再分享一个实用技巧在Power SI中做完S参数提取后把结果导出保存成标准化命名格式例如PCB型号_信号名_版本号.s4p。配合一个Excel记录表格把每次仿真时的叠层、材料、端口数、网格设置、内存和仿真时间都记录清楚。坚持两三个项目后你会发现自己对板卡的“高频行为预测能力”会上一个很大的台阶也更容易说服layout同事配合修改。信号完整性优化从来不是“一招定胜负”而是不断建模、仿真、验证、修正的循环。Power SI作为这个循环里最常用的一环把S参数提取做好等于给整条链路打下了可信的基础。希望这篇文章能帮你在第一次做S参数提取时就避开那些我踩过的坑。
返回列表