ARTICLE DETAIL

资讯详情

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

Cadence Sigrity TDR仿真实战:高速PCB阻抗不连续定位与信号完整性分析

Cadence Sigrity TDR仿真实战:高速PCB阻抗不连续定位与信号完整性分析 先说个真实经历。去年做一个DDR4项目的调试板厂反馈走线阻抗测试全部通过结果板子回来之后DDR读写训练怎么都过不了。后来我把控制器到颗粒这条链路在Cadence Sigrity里跑了TDR仿真才发现问题根本不在走线宽度而是Fanout区域换层过孔的反焊盘偏小整条链路的容性不连续给DDR波形带来了明显劣化。回过头再看这种问题是普通阻抗测试条根本发现不了的只有时域反射分析能直观定位到具体位置。这篇文章就围绕Cadence Sigrity TDR仿真这件事展开从反射原理、软件实操、波形解读到仿真和实测偏差把我这些年做高速PCB信号分析的整套思路和踩坑记录整理出来适合刚接触信号完整性仿真的硬件工程师也适合那些已经会跑仿真但不知道怎么解读曲线、不知道怎么定位问题的朋友。1. 为什么高速PCB非要盯阻抗不连续TDR的用武之地很多人在PCB Layout阶段最关心的就是线宽、线距、阻抗控制觉得只要走线特性阻抗按照50欧姆或者100欧姆差分设计信号就没问题。实际上高速信号链路里不可能每一段都均匀一致过孔、连接器、焊盘、扇出走线、跨分割区域这些地方的阻抗必然和传输线不一样。信号跑到这些位置就像水流遇到底部突然变浅的河段一部分能量被反射回来轻则振铃毛刺重则误码。1.1 一个能直接看到的场景DDR地址线掉入过孔坑以一个DDR4地址信号为例。目标单端阻抗40欧姆控制器BGA扇出后走线要换到内层经过一个背钻过孔再通过连接器到达内存颗粒。表面上看每条走线的线宽都算过阻抗串阻也选得合理但信号在整个链路里经历的阻抗不会是平的一条直线。TDR仿真就是把一条随时间变化的阻抗曲线直接画给你看哪里掉了哪里翘了一目了然。时域反射计的原理并不复杂。它向被测链路发射一个上升沿很陡的阶跃脉冲当脉冲遇到阻抗不连续处就会产生反射波反射波返回源端的时间和幅度分别对应不连续的位置和阻抗偏差。Cadence Sigrity里的TDR分析正是把这个过程在仿真环境里跑一遍输入不是示波器而是靠电磁场仿真提取出的链路模型。1.2 TDR能干什么、不能干什么TDR最大的价值在于定位。它能把“链路阻抗是不是50欧姆”这个问题细化成“具体哪一段不是50欧姆、偏差有多大、属于容性还是感性”。这对PCB调试非常有帮助到底是连接器选型有问题还是过孔反焊盘没挖够还是换层附近缺了回流地孔波形一测便知。但TDR也有边界。它本质是宽频带时域测量对链路的频域损耗、串扰耦合、电源噪声这类问题无能为力。一个长距离走线的插入损耗过大在TDR曲线上可能只是末端回波幅度略低不会直接告诉你损耗到底多大。所以TDR通常和S参数仿真配合使用一个管阻抗和不连续一个管带宽和损耗两个维度同时判断才能完整评估一条高速链路。1.3 和VNA扫频相比TDR赢在哪、弱在哪信号完整性领域还有一类常用手段是矢量网络分析仪VNA测S参数。VNA从频域角度给出回波损耗、插入损耗数据精度很高但频域曲线读起来相对抽象。TDR从时域角度给出直观的阻抗剖面是工程上定位物理缺陷最顺手的方式。对比项TDR时域反射VNA扫频输出形式阻抗随距离/时间的变化曲线S参数随频率的曲线最擅长的场景定位阻抗不连续、检查过孔和连接器、测线缆测插入损耗、回波损耗、通道带宽评估直观程度高哪里有问题直接看凹陷或凸起中要靠经验判断频点对应的问题原理基础阶跃脉冲反射系数正弦扫频传输网络参数实际工作中两者是互补关系。我在Sigrity里的习惯是先用TDR找出链路中阻抗不连续的位置再根据位置去调整版图细节最后再用S参数验证整体通道的损耗预算是否满足协议要求。如果上来就直接看S参数在整条链路的回波损耗曲线上很多时候很难分辨出问题物理上出在哪个位置。2. 反射的物理过程看懂TDR波形之前先背熟这条反射系数如果只是想点几个按钮跑出一张TDR图那确实用不到太多公式。但如果想把波形读明白反射系数这个概念躲不开。好消息是它并不复杂一个初中物理水平的数学运算就能搞定。2.1 从阶跃脉冲到回波当一个幅值为Vin的阶跃脉冲沿特性阻抗为Z0的传输线传播遇到一个阻抗为ZL的负载反射波幅度Vrefl可以表示为Vrefl Vin × (ZL - Z0) / (ZL Z0)这里(ZL - Z0) / (ZL Z0)就是反射系数Γ。当ZL Z0时反射系数为0没有反射TDR曲线平坦当ZL Z0时反射系数为正波形的电压升高曲线向上凸起当ZL Z0时反射系数为负波形电压降低曲线向下凹陷。反过来TDR仪器在源端测量到的其实是入射波和反射波的叠加电压Vmeas Vin Vrefl。有了这个测量值就可以反推出被测点的阻抗ZL Z0 × (Vin Vrefl) / (Vin - Vrefl)Sigrity的TDR后处理干的就是这件事把时域电压波形逐点转换成阻抗剖面曲线。2.2 容性不连续和感性不连续在波形上的两张脸PCB里最常见的两类不连续就是集中电容和集中电感。过孔焊盘、连接器引脚、BGA扇出焊盘大多是容性不连续在TDR波形上表现为一个向下的凹陷通常伴随着一个短促的负尖峰加缓慢恢复。走线瓶颈、颈部变窄、回流路径被切断造成电流环路面积增大大多是感性不连续表现为向上的凸起。不连续类型TDR波形特征常见物理位置集中电容下凹凹陷越深、宽度越大电容越大过孔焊盘、连接器引脚、器件焊盘集中电感上凸凸起越大、宽度越大电感越大颈部变窄、回流路径绕行、连接器引脚残端传输线分支(stub)台阶状起伏随频率出现震荡过孔残桩、未背钻直通孔参考平面断裂大幅阻抗升高波形明显上翘跨分割线、槽孔附近第一次看TDR曲线时最容易犯的错是把所有突起或凹陷都当成严重问题。实际上只要阻抗偏差在允许范围内比如±10%并且不连续区域的物理长度远小于信号上升沿的等效长度它对信号质量的影响是有限的。盲目把所有毛刺都修平反而可能牺牲布线密度和层叠利用率。2.3 时间轴变距离轴分辨率怎么算TDR波形横坐标是时间但工程师更习惯看距离。把时间换成距离需要知道信号在介质中的传播速度。PCB里常用FR4的等效介电常数Dk在3.8到4.5之间信号传播速度约等于光速除以Dk的平方根大致在0.15mm/ps量级。空间分辨率则取决于入射脉冲的上升时间tr和传播速度v经验公式是空间分辨率 v × tr / 2除以2是因为脉冲往返要经过两倍距离。如果阶跃脉冲上升沿是35ps在FR4介质中分辨率约为2.6mm。这意味着两个相距小于2.6mm的不连续点在TDR曲线上会融合成一个模糊的起伏无法分开。想分辨更短的不连续就得用更快的上升沿但上升沿太快又会激发出一些高频寄生模式让波形变得复杂难读。这块会在后面实操部分详细展开。2.4 为什么差分链路要测Zdiff而不是逐根单端差分对的TDR分析和单端不完全相同。差分信号传播有奇模和偶模两个基本模态差分阻抗Zdiff等于两根线奇模阻抗之和即Zdiff 2 × Zodd。当差分对内部两根线状态完全对称时信号能量全部在奇模中传播TDR显示的是差分阻抗。如果两根线之间的间距发生变化或者其中一根线换层时过孔位置不对称耦合度就会改变一部分能量会转化到共模模态。从TDR差分波形上如果看到阻抗出现异常起伏同时共模分量上升基本可以判断差分对内部出现了不对称。这时候只盯着差分阻抗曲线还不够要把共模曲线一起调出来看。在Sigrity里设置差分TDR时通常要同时观察Zdiff和Zcomm两组曲线。很多刚入门的工程师只导出差分阻抗结果波形看起来一切正常实际两口之间的偏移已经在默默破坏信号质量。3. Sigrity TDR仿真实操从PCB到阻抗曲线的四条完整步骤现在进入正题。下面这套流程我在多个项目里跑过尽量写得具体一些照着操作基本能跑出自己的第一张TDR阻抗曲线。需要说明的是Cadence Sigrity不同版本菜单名称和位置会有差异我以功能为主线来描述菜单名仅供参考。3.1 准备阶段叠层材料、S参数模型、端口选择TDR仿真质量很大程度上取决于进入仿真环节之前的东西。第一件事是叠层和材料参数。在Allegro里检查走线所在层的介质厚度、铜箔厚度、Dk和Df值。FR4的Dk不是固定值不同厂家的板材差异不小如果是高速材料比如Megtron6Dk更可能低到3.4左右。这些参数直接影响仿真中信号传播速度和阻抗基准。叠层都不准后面跑出来的TDR曲线再漂亮也没有参考意义。第二件事是模型准备。在Sigrity里有两种常见路径一种是直接读取Allegro的.brd版图文件配合PowerSI做电磁场提取得到S参数后再做TDR分析另一种是使用已有的链路模型比如从芯片厂商拿到的封装模型、连接器厂商提供的S参数模型这些可以直接导入SystemSI中和PCB走线的S参数拼接成完整链路。第三件事是端口设置。单端链路在目标走线的两端各建一个端口端口阻抗设成目标系统阻抗比如50欧姆。差分链路需要定义差分端口对端口阻抗设成100欧姆。这一步容易出错的地方是把差分对的两根线分别建成了两个单端端口这样得到的就不是差分阻抗而是共模状态下的两条线各自的特性结果看着完全不对。3.2 路径一用PowerSI提取S参数再做时域反射分析第一步导入PCB版图。Allegro导出的.brd文件可以直接被Sigrity打开也可以先在Allegro里清理一下不必要的铜皮、标注和辅助线减少电磁场仿真的网格量。第二步在PowerSI中为网络建立仿真配置。选择需要分析的信号网络如果是内层走线确保参考平面分配正确。这里特别容易踩坑换层走线在不同层上的参考平面不一样如果软件自动分配不够准确结果误差会很大。第三步设置频率扫描范围。以35ps上升沿为例对应的信号带宽大约10GHz但TDR要对不连续细节做时域变换建议S参数频率上限至少取信号等效带宽的3倍也就是30GHz以上。频率太低TDR曲线上高频不连续的细节会被严重平滑掉。起始频率从直流或几MHz开始对数频率扫描方式效果更好。第四步运行仿真拿到S参数。然后将该S参数模型加载到TDR分析工具里。大部分Sigrity版本里都有时域反射分析功能直接把S参数模型作为四端口或两端口器件加载在激励端口设置理想的阶跃源上升时间填写35ps或50ps运行瞬态仿真后就可以输出Z-profile曲线。3.3 路径二SystemSI直接对完整链路做整链路时域验证如果你手头不仅有PCB走线模型还有芯片IBIS模型、连接器S参数模型想直接看整条链路的时域响应用SystemSI更顺。操作上把发射机模型、PCB走线模型、连接器模型、接收机模型按顺序在原理图里串联起来然后在发射机处加一个阶跃或脉冲激励源设置上升沿参数。SystemSI会基于DML分布式模型实时提取PCB模块的时域响应不需要先额外跑一次PowerSI频域提取。这个方式比较大的优势是灵活可以快速调整链路任意一段做对比验证。不过要注意SystemSI直接跑TDR对计算资源要求不低如果PCB模型网络数量很大建议先用PowerSI把无源网络提取成S参数模型再放进SystemSI做瞬态分析。两种路径并不冲突我在实际项目中通常是先用PowerSI快速检查单段走线的阻抗细节再用SystemSI做整链路仿真确认最终的信号质量。3.4 激励参数和设备35ps、50ps、观察窗口怎么定TDR结果和激励源的上升沿强相关。35ps是比较通用的选择在FR4介质中大约能分辨2.6mm间隔的不连续足以识别绝大多数过孔和连接器问题。50ps更接近很多低速接口实际驱动器的边沿看到的阻抗剖面更平滑适合从整体角度评估链路。如果关注的是PCIe Gen4/Gen5这类极高速链路则建议用25ps甚至更快的激励否则太短的残桩和谐振结构在波形上会显示不出来导致漏判。观察窗口同样重要。设置太短可能连远端反射或链路上的开路回波还没回来就结束了设置太长波形上包含了大量末端反射回波又会干扰对中间段不连续的判断。我的习惯是先粗算一下链路物理长度对应的往返时延把窗口设成这个时延的1.5到2倍。例如一段200mm的FR4走线对应单向时延约1.3ns往返约2.6ns观察窗口设为5ns比较合适。窗口内的回波足够完整又不会让末端反射回波叠加掩盖中间细节。后面再看具体需要微调。4. 一条真实DDR4地址线的TDR曲线逐段拆给你看光知道流程还不够真正难的是把仿真跑出来的Z-profile曲线读明白。下面用一个实际案例来拆解。为了保护项目信息拓扑做了简化但问题核心和优化思路完全一样。4.1 案例背景与拓扑结构链路是一条DDR4单端地址信号目标阻抗40欧姆。拓扑是控制器BGA引脚出发表层走线一小段后打过孔换到L3内层内层走线约80mm中间经过一个板对板连接器然后再过孔换回表层接到内存颗粒。关键疑点是DDR训练不稳定普通阻抗测试条显示各段出厂阻抗都在40欧姆左右但整链路实际表现不理想。Sigrity中对该链路做TDR仿真激励源上升沿设为35ps观察窗口设为6ns输出Z-profile曲线。4.2 波形上的每一段起伏都有原因从TDR源端开始我把曲线按物理位置大致切成几段来看。第一段从激励源到BGA扇出区附近曲线基本平坦维持在40欧姆上下说明这段走线设计良好阻抗参考平面也稳定。第二段进入BGA换层过孔区域后曲线出现一个明显的下凹最低点掉到约33欧姆宽度比较窄呈典型的容性特征。结合版图检查发现该过孔反焊盘尺寸偏小过孔焊盘和参考平面之间的寄生电容偏大。对40欧姆链路来说掉到33欧姆意味着反射系数约为-0.096虽然幅度不大但在DDR4高负载条件下多个地址线叠加影响就会被放大。第三段内层走线中段曲线回升到40欧姆附近并保持平稳基本符合预期。第四段靠近连接器的地方曲线先是有一小段上凸阻抗升到46欧姆左右然后紧接着又出现一个小幅下凹。上凸是连接器引脚区域局部阻抗偏高的表现说明连接器端口的回流路径或引脚结构存在感性不连续。下凹则对应连接器焊盘电容。第五段连接器之后的内层走线基本平稳但在换回表层的第二个过孔位置又出现一个约36欧姆的下凹幅度比BGA区略小。末端接近内存颗粒焊盘位置曲线小幅上翘到42欧姆左右然后有一段大大的上扬那是整条链路到达开路末端后的全反射。4.3 容性凹陷、感性凸起、stub毛刺的量化判断判断凹陷或凸起是否值得处理不能只看波形形状要结合反射系数量化。比如波形在某处从40欧姆跌到33欧姆反射系数(33-40)/(3340)-0.096反射能量约0.9%。看起来不大但如果该不连续点的物理长度正好落在信号边沿的敏感带宽内多次反射叠加眼图恶化会很明显。我在实际项目里总结了一个粗略判断标准对于DDR这类并行总线链路中单点阻抗偏差超过±15%且物理长度超过上升沿对应的空间长度就值得优化对于SerDes这类串行链路单点阻抗偏差容忍度更低超过±10%就要重视因为反射对抖动的影响比误码率更敏感。stub毛刺是过孔残桩的典型表现。TDR曲线上一个未背钻的过孔直通孔段会显示成一个小台阶随后波形还会残留一些震荡尾巴。这是因为残桩相当于一段开路短截线会在特定频率形成谐振。如果看到这类特征建议在后端做背钻或者调整布线层避开过孔残桩。Sigrity里也可以直接扫描残桩长度变化对TDR波形的敏感程度确定要不要把背钻工艺写进PCB加工要求。4.4 围绕不连续做优化一次成功的阻抗拉平实验定位到问题点之后我在版图上做了三项修改第一把BGA扇出区和内存颗粒端的换层过孔反焊盘尺寸从默认的孔径6mil扩大到孔径12mil减小寄生电容。第二在连接器前后各增加一对回流地过孔紧贴信号换层过孔放置缩短信号回流的绕行路径抑制感性凸起。第三对过孔残桩进行了背钻处理将未使用的直通段钻掉消除短截线谐振。修改后重新提取模型并跑TDR原来33欧姆的凹陷回升到了38.5欧姆左右连接器区域的46欧姆凸起回落到42欧姆以内整条链路的阻抗偏差控制在了±5%以内。随后在SystemSI里重跑DDR信号仿真眼图高度和抖动都明显改善板卡回板后DDR训练稳定通过。这个案例里最有价值的地方不是“改了三处”而是TDR曲线精确告诉了你改哪里、改多少。如果当初只靠猜测光是排查几十条地址线就会浪费大量时间。5. 仿真和实测对不上的五种典型原因我踩过的那些坑仿真做得多了一定会遇到“仿真波形和示波器实测波形对不上”的情况。下面这几种原因是我在实际项目中反复遇到的基本上占到对不上的九成以上。5.1 S参数带宽不足时域波形被“削”掉了这是最常见的一个坑。PowerSI提取S参数时频率上限设得不够高比如只设到10GHz时域TDR的上升沿细节会被插值算法平滑。表面上看曲线很干净实际把一个只有几皮秒宽度的短反射给抹掉了。后来我把上限提高到30GHz之前那个连接器处的容性凹陷立刻清晰可见。建议在提取S参数时把频率上限至少设置成能够覆盖激励源等效带宽的3倍。5.2 回流路径和地孔模型不全Sigrity的电磁场仿真是处理版图导电铜皮的如果版图上地过孔缺失、参考平面切割仿真会“如实”呈现出来。问题在于有些工程师在设计阶段漏加地过孔仿真结果很差误以为板子质量不行其实恰恰暴露了版图问题。反过来如果仿真模型里把电源平面当成理想参考平面而实际PCB上电源平面被其他大电流走线切割得乱七八糟仿真又会偏乐观。我的经验是仿真TDR之前先花十分钟目视检查一下信号换层位置附近有没有回流地孔电源平面在关键链路正下方是否连续。5.3 叠层材料参数凭印象填Dk值对仿真结果的影响非常敏感。FR4的Dk在实际板材中从3.8到4.5都有可能不同频率下Dk还有频散效应。如果仿真时随手填了一个Dk4.2但实际PCB板材在1GHz时Dk实测是4.0那整条TDR曲线的时间轴和阻抗都会系统性偏移对位置判断造成误导。最稳妥的办法是让板厂提供该项目的实测板材参数至少也要使用之前同厂商同系列板材的经验值不要想当然。5.4 端口位置、夹具和去嵌的差异仿真模型里端口通常直接定义在被测链路两端等同于理想探针接触在焊盘上。但实测时探头本身、同轴线缆、夹具焊盘都会引入额外的寄生电容和电感这部分在TDR曲线上会叠加在起始端让前段波形看起来和仿真差异很大。如果要做精确的实测对比需要用2x thru校准结构做去嵌把夹具和探针的影响从测量结果中剥离。仿真和实测之间的合理误差通常在几欧姆以内超过10欧姆基本要考虑是不是去嵌没做好或者仿真模型里缺少了夹具/连接器模型。5.5 上升沿设定的两难激励源上升沿设得太快会激发出过孔残桩、封装引脚甚至走线拐角的寄生模式TDR曲线上毛刺很多误以为到处都是问题。设得太慢又会导致空间分辨率不足把相邻较近的几个不连续糊成一个宽凹陷定位不准确。我的一般做法是先扫描几组上升沿比如25ps、35ps、50ps各跑一次对比观察。如果某个规律性起伏在三组波形中都稳定存在说明是真实不连续如果只在25ps下出现大概率是微小寄生效应优先级可以降低。5.6 一点点多年后的经验沉淀踩过不少坑之后我现在做TDR仿真有个固定习惯先做一个短链校准仿真。取一段已知设计良好的短线从相同叠层和材料参数下跑出来的TDR曲线作为基准再拿它和目标链路对比。这个校准步骤看似多花一点时间但能快速暴露材料参数设置、端口定义、网格精度等系统性问题避免把错误参数带到后续所有链路分析里。另外TDR仿真我用得最多的时间点有三个PCB设计完成后的签核阶段、调试阶段定位问题时、以及改版前验证优化方案时。设计阶段就把TDR跑通能省掉后面大量的改板迭代。有条件的话建议把公司常用叠层结构整理成一个基准库包含材料参数、线宽线距对应的阻抗以及典型过孔配置的TDR特征。这套基准库到位之后新项目评估阻抗风险的速度会快很多。真正用好Sigrity TDR仿真最核心的并不是记住哪个菜单点哪里而是理解反射物理过程之后懂得从波形里读出物理结构。曲线只是表象背后的电容、电感、残桩、回流路径才是信号质量的决定因素。这套方法一旦熟练掌握了你再回去看那些摸不着头脑的信号完整性问题会发现绝大多数都能用一条TDR曲线讲得明明白白。
返回列表