ARTICLE DETAIL

资讯详情

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

PowerSI差分S参数提取与BBS模型生成:高速信号完整性验证实战

PowerSI差分S参数提取与BBS模型生成:高速信号完整性验证实战 1. 从一块10G差分板翻车说起S参数在SI验证里的分量1.1 差分信号真正的优势是共模抑制而不是“多一根线”去年我做了一块10Gbps的SerDes通道板回板测试时眼图一直打不开误码率居高不下。一开始怀疑是芯片配置问题后来用近场探头扫了一圈发现有一对差分走线在换层过孔附近有明显的能量辐射顺着链路往回查问题出在过孔反焊盘处的阻抗突变两根线的回流路径也被相邻地孔打散了。这段问题如果当时在投板前用S参数扫一遍十分钟就能暴露出来根本不用等到样机出来再对着示波器发愁。很多人觉得差分信号就是“两根线一起走”其实差分的核心价值在于接收端只认两根线的差值外部噪声同时耦合进来会被当成共模信号直接抵消。正因为这个共模抑制能力USB、PCIe、CAN、RS485这些高速或长距离接口才会不约而同采用差分结构。但代价是两根线之间的耦合对称性极其敏感——线宽线距、参考平面完整性、过孔残桩、换层位置任何一个环节不对称都会造成差模分量向共模分量转化最后表现为辐射超标或者眼图劣化。要抓住这些频率相关的现象静态量阻抗是不够的。阻抗测试只能看到测试点附近某个频段的等效情况而一条差分走线在整个传输带宽内的反射、损耗、串扰、模态转换必须用频域的S参数才能完整描述。S参数在整个信号完整性验证里相当于通用语言芯片厂商给IBIS模型里面要配封装S参数系统级链路仿真要把PCB走线、连接器、线缆的S参数串起来哪怕做TDR反推阻抗分布底层也是S参数经过傅里叶变换得到的。可以说SI验证的所有环节到最后都会落回S参数。PowerSI这类基于物理版图的提取工具在整个流程里承担的是“把真实互连变成数学描述”的角色。版图里每一段走线、每一个过孔、每一层平面的耦合都被场求解器折算成多端口的S参数。相比手工搭等效电路或者用2D截面估算这种提取方式的优势在于真实版图长什么样就仿真什么不需要人为简化过多细节差分过孔、缝隙跨越、平面谐振这些高频效应都能体现出来。1.2 为什么说S参数比“测阻抗”多看到一个维度阻抗测试一般用TDR时域反射仪或者用网分做单频点测量。它能告诉你“某一段的特征阻抗大概是多少”但给不出整条链路的频率响应。举个直观例子一条走线在1GHz时回波损耗可能很好到5GHz时因为某个过孔电容效应突然劣化静态阻抗测试根本发现不了。而S参数天生就是按频率扫描的每一个频点都能看到反射和传输情况。做差分信号完整性验证基本要求就是覆盖信号工作频带及谐波范围的S参数数据。从S参数里还能反推很多东西。比如根据SDD11可以换算出差分阻抗随频率的变化趋势虽然严格说是频域阻抗但已经能反映过孔换层、线宽变化带来的阻抗不连续。再比如通过逆傅里叶变换把S参数转成TDR曲线就能看到整条链路上哪个位置阻抗突变最大这对定位问题太有用了。后面我会在指标解读那节详细讲这些应用场景。2. PowerSI提取差分S参数前的核心设置2.1 叠层材料参数Dk、Df和铜箔粗糙度一个都不能省真正开始提取S参数之前最容易被跳过但又最影响结果的就是叠层和材料参数。PowerSI做场求解时介质层厚度、介电常数Dk、损耗角正切Df直接决定传输线的特征阻抗和插入损耗曲线。如果叠层厚度差个10%差分阻抗可能差出七八欧S参数结果也就失真了。这里特别提醒铜箔粗糙度。很多板厂的叠层表里只给Dk和Df不提铜箔粗糙度但高速信号在10GHz以上对铜箔表面粗糙度非常敏感。同样的走线光滑铜箔和标准HTE铜箔的插入损耗在高频段差距可以超过0.5dB每英寸。PowerSI里一般支持设置表面粗糙度模型实际项目中至少要把铜箔类型按板厂实际用料填进去哪怕取典型值也比默认“光滑”要靠谱得多。2.2 参考平面与回流路径确保地平面不是“马赛克”差分信号的返回电流并不完全只在差分对内部流动还有相当一部分走参考平面。如果在提取S参数时没有正确设置参考平面网络或者版图里地平面存在大面积挖空、分割槽仿真器看到的回流路径就和实际电路完全不一样提取出来的S参数自然失真。在PowerSI里一般需要指定一个或几个电源地网络作为参考。常见做法是把所有地网络和主要电源网络都设为参考网络让求解器在提取过程中自动考虑回流路径。如果只把某一块铺铜设成参考而这条差分线实际跨过了一个被切断的平面区域仿真结果就会出现“这条路根本不通”的情况和你拿万用表量地不通是一个道理。2.3 差分端口定义极性错了后面全白做差分S参数提取的核心操作是端口定义。所谓端口就是信号进入和离开仿真模型的“激励点”。在PowerSI里定义差分端口本质上是把两个单端端口组合成一个差分端口对一个为正、一个为负。操作上需要注意三点。第一正负极性必须和芯片引脚的实际逻辑一致发射端的正端接到差分对的正线接收端的正端也要对应接到对方的正线如果某一侧极性接反SDD21会直接塌下去看起来像链路断裂。第二端口位置要尽可能贴近实际芯片引脚焊盘不要留出一段未仿真的走线头否则会把多余的寄生电容算进去。第三差分对的两根线不要分别定义成两个独立的单端S参数再在外部做混合模式转换最好在工具里直接定义成差分端口组这样数据管理方便也不容易搞错极性。2.4 扫描频率范围和求解精度设置频率范围怎么取要看信号速率。经验公式是最大频率至少取到信号的一倍波特率再留出余量至2~3倍更好。比如10Gbps的NRZ信号波特率是10Gbaud基波频率5GHz但要让眼图和串扰结果可信S参数至少扫到20GHz最好到30GHz。频率上限太低看不到过孔和高次模式的影响下限则要从低频开始最好覆盖到几十kHz甚至直流附近方便后面做TDR变换和瞬态仿真时保持因果性。PowerSI里通常有快速扫描和自适应扫描等模式。快速扫描适合前期方案阶段快速迭代精度要求不高自适应扫描会在S参数变化剧烈的地方自动加密频点适合最终signoff验证。如果机器性能允许我一般直接用自适应扫描跑出来的曲线更平滑省得后面看到尖刺还要怀疑是网格问题。3. 跑通一条差分对从版图到S参数文件全流程3.1 实际操作步骤串联一次完整的差分S参数提取流程按下面的顺序做基本不会乱导入版图文件确认层叠信息完整铜箔、介质、阻焊这些参数都填好。检查网络列表把要提取的差分对找出来可以用网络名称过滤也可以直接高亮一对线。以“选择性提取”方式只保留目标差分对及其邻近耦合网络把无关的电源网络、低速信号全部屏蔽或移除。这样求解规模小不少仿真速度快很多而且结果更聚焦。创建差分端口。手动模式下在发送端和接收端各放一对正负端子组合成差分端口。如果链路有中间走线分支也要在分支点加端口。设置频率范围和扫描方式。运行提取。跑完后先看有没有警告特别是有没有“端口未连接到导电网络”或者“参考网络断连”这类错误。检查初步结果比如SDD21曲线是否平滑、SDD11是否在合理范围内。导出S参数文件格式可以是标准的Touchstone文件差分4端口一般存成.s4p。上面这串步骤看着不复杂但每一步都有细节。比如导入版图后第一件事不是急着选网络而是先把层叠厚度和材料参数核对一遍。我见过有人拿着默认的FR4参数去仿真10GHz信号Dk填的是3.0而不是实际的3.6阻抗全偏了后面所有结果都不可信。3.2 选择性提取和全板提取的取舍PowerSI可以整板提取也可以只提取一部分网络。全板提取的好处是完整考虑所有耦合和平面效应但计算量巨大跑一次可能要好几个小时而且结果文件动辄上GB对后续处理和阅读都是负担。选择性提取只保留目标信号和它周围的敏感区域仿真速度快一个数量级缺点是如果没有把关键耦合对象包进来比如相邻一对高速差分线会影响串扰就会漏掉这部分效应。对初学者我的建议是先做单对走线的选择性提取把流程和指标解读跑通再逐步扩大范围。做serdes通道时至少要把同层相邻的差分对一起放进提取范围否则串扰分析无从谈起。做电源完整性或全板谐振分析时才值得跑全板提取。3.3 频率点和带宽的选择逻辑有人喜欢直接拍一个频率范围比如“0到20GHz步进100MHz”。但更好的做法是根据信号的上升沿来估计有效带宽。一个简单近似是BW约等于0.35/TrTr是信号的上升时间。如果差分信号上升沿是35ps那么有效带宽大约10GHz再取2倍余量到20GHz就够了。这比随便拍脑袋要科学得多。扫描步进方面在关键频段可以适当加密。比如看回波损耗时谐振点的窄带凹陷在稀疏频点上很容易被漏掉自适应扫描就是为此设计的。如果只有手动等间距扫描我宁愿把频点设密一点哪怕多花点计算时间也不要在结果里看到莫名其妙的跳变才后悔。3.4 如何判断一次提取是否可靠拿到S参数结果不要急着导出去先做两个快速自检。一个是看SDD21在整个频段是否呈现单调衰减趋势如果出现异常上扬通常意味着模型存在寄生谐振或者端口设置有问题。另一个是看低频段SDD11是否趋近于0 dB即反射极小如果低频反射就很大多半是端口或者参考网络设置不对。另外PowerSI里一般会输出每次求解的误差估计或者提示某个频点不收敛。不要忽略这些警告高频段网格粗了会直接影响过孔区域的提取精度。遇到这种情况先加密该区域的网格再重跑而不是急着用现有文件。4. 把S参数变成BBS模型宽带SPICE的生成与应用4.1 BBS模型解决了S参数的哪个痛点为什么有了S参数还要生成BBS模型这是很多工程师的疑问。S参数本质是频域数据把它用到时域仿真工具里比如ADS里做瞬态眼图仿真就要做频域到频时域的转换也就是傅里叶反变换。这个过程中如果S参数在某个频点不光滑、存在非因果性或者无缘性瞬态仿真就会不收敛或者出现“仿真开始前自己震荡起来”这种让人抓狂的现象。BBS模型也就是宽带SPICE模型解决的问题正是这个。它不是直接丢一堆频点而是用一个由RLC元件和无源元器件组成的等效电路网表去拟合原始S参数行为。由于电路天然是因果和稳定的把它放进瞬态仿真器里不仅收敛性好仿真速度也比直接处理原始S参数快许多。做个类比S参数像是给了一堆“测量照片”BBS模型则是根据照片重建了一个“等效实体机构”。你在电路仿真里摆放这个机构拧起来的手感和真实器件更接近而且不会因为照片分辨率不够而卡壳。4.2 BBS模型的生成步骤在PowerSI相关的模型生成工具里从S参数生成BBS模型的操作一般包含这样几个环节把上一步导出的Touchstone S参数文件作为输入。设定目标带宽通常和S参数的带宽一致也可以按下游仿真需要设置。选择模型精度和阶数。阶数越高拟合精度越好但生成出来的网表越大仿真速度越慢。一般从默认阶数开始如果拟合误差大再逐步提高。执行拟合查看误差报告。重点检查SDD11和SDD21在通带内的拟合误差是否小于某个阈值比如1%。导出BBS模型文件常见的有.bbs格式或者可以直接复制的SPICE网表格式。需要提醒的是BBS模型生成时要注意端口顺序和S参数保持一致。如果4端口S参数对应的是TX正、TX负、RX正、RX负生成的BBS模型也必须按这个顺序接进电路仿真器否则仿真结果完全不对而且很难排查。4.3 把BBS模型接入整条SerDes链路有了BBS模型下游的链路仿真就顺理成章了。通常我们会把发送端芯片的IBIS模型、封装S参数、板上走线的BBS模型、连接器S参数、接收端封装和IBIS模型串联起来搭成一条完整的SerDes链路。链路仿真里可以跑眼图、抖动、误码率还能做参数扫描看看不同均衡设置下的裕量。BBS模型在这条链里承担“真实物理走线”的角色。相比直接放S参数元件BBS的收敛性更好跑批量参数扫描时尤其明显。之前我跑一个链路抖动仿真直接放S参数元件经常遇到“奇异点导致不收敛”换成分段BBS模型之后同样的仿真一遍跑通速度还快了近一倍。4.4 S参数和BBS模型的分工对比维度原始S参数BBS模型数据本质各频点复数值数组等效电路网表时域仿真收敛性较差受频点密度影响大较好天然无源稳定仿真速度高频点时较慢一般更快可编辑性只能整体替换可以局部调整电路参数适用场景频域指标分析、TDR反推系统级时域仿真、眼图抖动规划验证流程时通常频域分析用S参数时域系统仿真用BBS模型两者互补而不是互相替代。5. 实战复盘三个高频翻车点与完整排查链路5.1 翻车点一端口极性不一致SDD21出现“断崖”现象提取出来的SDD21在很低的频率就掉到负几十分贝看起来像链路断开了一样但用万用表量走线是通的。排查链路先检查差分端口极性。PowerSI里每个差分端口由正负两个端子组成如果发送端按正常极性定义接收端却反了那差模信号在接收端正好被抵消SDD21自然上不去。这个问题在手工创建端口时特别容易发生尤其是接收端信号序没看清芯片手册的时候。处理方式把接收端差分端口的两个端子交换重新仿真。如果SDD21恢复平滑下降就证明根源是极性。为了避免这类低级错误我现在的习惯是创建端口时就在网络图上把正负端子高亮成不同颜色并逐一核对不要等仿真完再回头找原因。5.2 翻车点二参考平面被分割返回电流绕远路现象SDD11在某个频段出现异常谐振尖峰同时SDD21也有波动。排查链路第一反应不是急着加密网格而是先看这条差分线的整条路径是否完整覆盖在同一参考平面上。打开版图查看平面层很可能是某块地平面被其他走线的反焊盘挖成一个不连通的“孤岛”返回电流只能绕到更远处回流相当于在信号路径上多了一段寄生电感谐振点就出现了。处理方式把被切断的平面区域重新连通或者确保过孔周围有足够的地孔缝合。改完平面后重新提取谐振消失。这个坑在多层板中非常普遍特别是BGA出线区域因为扇出密度高地平面经常被切割得七零八落。5.3 翻车点三频率上限不够眼图仿真“最后一段”失真现象频域指标看着还行但用BBS模型做10Gbps眼图仿真时眼图张开度明显偏小而且和实测对不上。排查链路检查S参数的频域范围。如果只扫到10GHz就停了而信号本身有效带宽已经到14GHz以上那么BBS模型在带宽外是外推出来的拟合精度没有保证眼图仿真时高频分量没有被正确建模结果自然偏保守。处理方式把S参数提取上限提高到信号波特率的2~3倍重新生成BBS模型。改完后眼图比之前更接近实测。从那以后我在设置频率范围时给自己定了一个规矩至少取波特率的2.5倍宁多勿少。5.4 过孔Stub和焊盘切除两条容易被忽略的支线除了上面三个典型问题还有一些看起来不起眼但影响不小的细节。差分过孔如果在高速层穿越到内层后还留下长长一段到背钻不彻底的残桩在10GHz以上会产生明显的谐振凹陷这对S参数来说相当于在链路上多了一个“小坑”。仿真前先确认过孔残桩长度能背钻就背钻。另一个是焊盘切除。有些内层走线穿过未连接层的焊盘时如果该焊盘没有做反焊盘处理金属残盘会形成额外电容造成阻抗不连续。PowerSI提取时会把版图上真实存在的东西都算进去所以如果想让仿真结果好看先得让版图本身干净。这个逻辑反过来也成立——如果S参数里看到莫名的高频谐振别急着怀疑软件先回去查版图多半是物理上有什么东西没处理干净。我现在做新项目只要叠层定下来第一件事就是把关键差分对单独拎出来按这套流程跑一遍完整验证形成标准操作。看着像是多花了半天时间但换来的却是后面省下几周调试时间。那次10Gbps翻车的板子后来我重新提取S参数、生成BBS模型在仿真里精准复现了现场故障点然后再对照版图修改一次改板就通过了。信号完整性这种事情等板子贴完芯片再慌成本就完全不一样了。
返回列表