ARTICLE DETAIL

资讯详情

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

ADS中TDR仿真保姆级教程:从原理到实操,快速定位PCB阻抗问题

ADS中TDR仿真保姆级教程:从原理到实操,快速定位PCB阻抗问题 做高速数字电路这些年TDR时域反射法是我最常用的排查手段之一。有一次PCB回板PCIe链路回环屡屡失败眼图惨不忍睹原理图检查了七八遍都没问题最后用TDR在仿真里一测定位到一段过孔区域阻抗从85Ω掉到了60Ω。就这一下问题直接锁定。今天这篇教程就把我在Keysight ADS里做TDR仿真的完整方法写出来包括新手最容易踩的坑和差分信号设置技巧。这套流程从新建工程到看到阻抗曲线三分钟足够。1. TDR是什么为什么它是高速硬件的“透视眼”1.1 三句话讲清TDR原理TDR本质上和雷达测距是同一个逻辑向传输线发射一个快速上升沿的阶跃信号然后盯住反射波。当传输线某处阻抗发生变化遇到阻抗不连续点一部分能量会反弹回来反弹回来的那部分电压和原始入射电压的比值就是反射系数。反射系数Gamma的计算公式是Gamma (Zx - Z0) / (Zx Z0)其中Z0是系统参考阻抗通常是50Ω或100Ω差分Zx是待测点的阻抗。Gamma等于0意味着阻抗匹配、没有反射Gamma等于1说明该点开路Gamma等于-1说明该点短路。TDR设备的显示逻辑也很有用当你在观测点看到稳定的电压后可以反推该处阻抗。对50Ω系统来说反射后观测电压Vobs与进步沿电压Vstep基本满足Zx Z0 * (Vobs / Vinc) / (2 - Vobs / Vinc)这里Vinc是入射电压。别急着背公式后面实操部分我会带你把电压波形换算成阻抗曲线到那时候自然就理解了。现在只要记住一个核心TDR看的就是“电压随时间变化的波形”而这个波形直接映射了“阻抗随位置变化的曲线”。1.2 为什么高速数字和射频都离不开TDRTDR的应用场景比很多人以为的要广。PCB上某段走线宽度突变、过孔反焊盘设计不合理、连接器内部金手指接触长度不一致、线缆的压接点松动——这些东西都会在TDR波形上硬生生地留下“台阶”。对于PCIe、USB 3.x、DDR这类高速接口哪怕只有几毫米的阻抗失配都可能造成反射、抖动和眼图恶化。用ADS做TDR仿真还有一个非常现实的好处它不需要等实物打样。PCB在投板之前原理图阶段就可以先把走线模型拉出来仿真一遍提前拦截阻抗问题。这比板子回来再测、再改版要省太多钱和时间。所以我不光建议做硬件调试的人学PCB设计工程师更应该掌握因为你画完走线后顺手做一次TDR验证比评审时被高频问题追问要舒服得多。2. ADS里做TDR的两条技术路线先懂原理再动手2.1 路线一瞬态仿真法和真实TDR仪器工作原理一致直接做Transient瞬态仿真就是最贴近真实TDR仪器工作方式的路线。它的原理是用一个上升沿极快的阶跃源向待测网络发射阶跃信号然后在源端观察入射波加反射波的叠加电压。这里有一个非常关键的细节阶跃源必须串联一个等于系统参考阻抗比如50Ω的内阻。为什么要这样做因为真实TDR仪器的输出阻抗是50Ω这个内阻承担了两个作用——第一它和传输线构成分压关系使得入射电压是源电压的一半例如源开度1V入射到50Ω传输线上就是0.5V第二它可以吸收反射波避免多次反射干扰波形。瞬态仿真法最大的优点是直观。你可以直接在原理图上看到每个节点的电压波形甚至能观察到波在传输线上传播的过程。缺点是当网络结构复杂时仿真时间会变长而且如果阶跃源的上升时间设置不合理分辨不出细微的阻抗变化。2.2 路线二S参数反变换法测通道S11更高效第二种路线是先用S参数仿真算出S11反射系数再做时域变换得到TDR曲线。这个思路的背后是傅里叶变换的原理频域的反射系数经过逆傅里叶变换后就变成时域的反射响应。具体的操作方式是在ADS里建立S参数仿真得到S11随频率变化的曲线然后在数据显示窗口使用TDR转换函数ADS会自动把频域数据变换成时域反射波形。S参数反变换法最适合已经有S参数模型的场景比如你手里有连接器厂商给的S4P文件或者已经用电磁场仿真导出了某个过孔模型的S参数。这种情况下你不需要重新搭建瞬态仿真环境直接做频域到实域的变换就行速度非常快几分钟就能跑完覆盖整个工作频段的TDR分析。但对于链路中阻抗突变的位置解析瞬态法更直观S参数法对数据后处理的要求更高。2.3 两种方法怎么选对比项瞬态仿真法S参数反变换法上手难度低元件库直接拖拽中需要了解变换函数仿真速度中等取决于时间步长快尤其对复杂链路直观性非常直观原理清楚需要理解频域到时域的映射适用场景新手入门、简单网络验证已有S参数模型、复杂链路快速评估对阶跃上升沿的分辨率直接受Rise参数影响受频带Fmax影响我个人的建议是如果你是第一次做TDR仿真先用瞬态法把原理彻底吃透因为你在AD里看到的每一个电压台阶都能对应到真实TDR仪器屏幕上的一个阶梯等你对波形和阻抗的对应关系熟练了再切换到S参数法提速。3. 保姆级实操3分钟跑通单端TDR仿真3.1 准备工作新建工程和原理图设计打开ADS后先新建一个Workspace名字随意比如“TDR_Tutorial”。然后File中选择New Design创建一个Schematic命名为“TDR_Single_Ended”。在开始放元件之前建议先把原理图视图缩放到合适大小把网格吸附打开。这些基础操作虽然不起眼但在后面对齐节点时能省不少功夫。3.2 搭建阶跃源传输线负载的原理图现在我们开始搭建电路拓扑。整个系统从源端到负载依次是阶跃源、源电阻、理想传输线、待测负载。如果你在ADS元件库中找不到某个器件直接用Search功能搜索关键词这个技巧比一层一层翻库快得多。需要放置的元件和参数如下表元件名库路径或搜索关键词关键参数V_StepSources-Time Domain或搜索V_StepVlow0VVhigh1VRise25psDelay100psR搜索R或Basic库R50Ω源内阻TLINPTLines-Ideal或搜索TLINPZ050ΩLeff50mmF1GHzR_Load搜索RR75Ω制造一个不匹配TransientSimulation-TransientStopTime2nsMaxTimeStep1ps这里有几个参数要重点解释。Rise25ps的意思是阶跃源从0V升到1V需要25ps。上升沿越陡TDR能够分辨的阻抗不连续点就越小因为空间分辨率大约等于上升时间乘以传播速度再除以二。25ps对应的分辨率大概是1~2mm对绝大多数PCB走线分析已经足够。TLINP是理想物理传输线模型直接用Z0和实际物理长度Leff建模不需要设置复杂的衬底参数。F1GHz是传输线的参考频率理想模型用它来计算电气长度这个值不影响TDR波形的时间基准但必须填写。接线顺序是V_Step正端接到R50Ω的一端R的另一端接TLINP的一端TLINP的另一端接R_Load75Ω到地。注意观察点放在R和TLINP之间的节点上也就是源电阻与传输线的连接点。真实TDR仪器就是从这个位置测量电压的。在ADS原理图上给这个节点加一个Wire Label方便后面在数据显示窗口选择。3.3 一分钟看结果从电压波形反推阻抗变化设置好所有参数后点击Simulate运行仿真。结果出来后在数据显示窗口选中观察节点的电压波形。我按上面参数跑出来的波形大致是这样的t0到100ps期间没有信号Delay时间段源尚未开启100ps到125ps之间电压从0快速上升到约0.5V这是入射电压——源电压1V被50Ω内阻和50Ω传输线分压得到0.5V之后电压维持0.5V一段时间大约在0.7ns左右电压出现第二次上升最终稳定在0.6V左右。为什么会有第二次上升因为阶跃信号沿传输线到达末端负载时遇到了75Ω而不是50Ω。反射系数Gamma(75-50)/(7550)0.2反射波电压入射波x0.20.1V。反射波回到源端后叠加在入射电压上所以观测电压从0.5V升到0.6V。看到这个波形后你可以用前面提到的阻抗换算公式把每个稳定平台电压换算成对应位置的阻抗。先用入射平台0.5V作为Vinc用第一段稳定电压0.5V反推Z50*(0.5/0.5)/(2-0.5/0.5)50Ω对应传输线特性阻抗。用第二段稳定电压0.6V反推Z50*(0.6/0.5)/(2-0.6/0.5)75Ω正好对应末端负载阻抗。这就是TDR最核心的判别逻辑电压平台越高说明该处阻抗越大。3.4 进阶用开路/短路/匹配负载验证仿真配置我看很多新人第一次跑TDR波形出来又乱又奇怪根本原因是对自己的仿真环境没有信心。建议你搭建好原理图后先做三组对照实验把末端负载分别换成开路、短路、50Ω匹配电阻。开路的反射系数是1反射波和入射波同相叠加源端最终电压是1V短路的反射系数是-1反射波和入射波反相抵消源端最终电压是0V50Ω匹配时反射系数是0源端电压始终维持0.5V。如果你能看到这三种清晰的区别说明你的仿真环境、源设置、观测节点全部正确再去做复杂模型就有底了。4. 差分信号TDR仿真这些设置技巧才是重点4.1 差分TDR和单端TDR到底差在哪高速接口绝大多数用的是差分信号比如PCIe、USB、以太网、DDR的部分时钟。差分TDR测量的是差分阻抗Zdiff而不是两根线各自的单端阻抗。这里有一个非常重要的关系式Zdiff 2 * Zodd也就是说如果一对差分线的目标差分阻抗是100Ω那么每根线在差分激励下的奇模阻抗Zodd就是50Ω。反过来如果你已经有一对线知道它们的单端特性阻抗都是50Ω但差分阻抗未必是100Ω因为耦合效应会改变奇模阻抗。很多人在这里会绕晕。我打一个生活化的比方一对差分线就像手拉手并排走的两个人差分阻抗是两个人作为一个整体前进的“难度”奇模是其中一个人在这种摆动下感受到的“难度”而单端阻抗是两个人离得很远时的“难度”。两者相关但数值不同。差分TDR和单端TDR还有一个重要区别激励方式。单端TDR用单端阶跃源差分TDR需要一对极性相反的阶跃信号分别打在正端和负端。如果你只给正端一个阶跃而负端不动看到的结果既不是差分阻抗也不是单端阻抗而是混合了奇模和偶模的响应很难解释。4.2 差分TDR原理图搭建步骤正负两个阶跃源这样配在ADS里搭建差分TDR原理图和单端比起来只是多了一路对称电路。新建一个Schematic命名为“TDR_Differential”。核心思路是正端P接一个0到0.5V的阶跃源负端N接一个0到-0.5V的阶跃源这样等效于在两线之间施加了一个1V的差分阶跃信号。注意这里不是正端1V、负端0V因为那样的非平衡激励会引入共模分量使TDR结果偏离真实的差分阻抗。两个阶跃源的参数要保持完全对称特别是Delay和Rise要一致。如果Delay差了几个皮秒虽然肉眼几乎看不见但在TDR曲线上会表现为共模偏移严重时阻抗值会整体偏移几个欧姆。原理图拓扑如下正端阶跃源V1的端接到串阻R150ΩR1另一端接耦合传输线的P端负端阶跃源V2的-端接到串阻R250Ω的对应方向R2另一端接耦合传输线的N端。耦合传输线的远端接负载例如P端到地接43.75ΩN端到地接43.75Ω这样单端对地是43.75Ω差分开路等效是87.5Ω或者直接用差分电阻元件连接P、N两端。如果你只想看100Ω差分负载就接一个100Ω电阻跨接在P和N之间。4.3 耦合线模型怎么选从理想耦合线到场求解器对于差分TDR仿真最关键的是传输线模型必须能反映两根线之间的耦合效应。用两条彼此独立的单端TLINP来建模是不行的那样会忽略奇偶模差差分阻抗计算会有偏差。最简单的耦合线模型是CTLINP这是理想耦合传输线在TLines-Ideal库里可以找到。CTLINP的关键参数是Z0e偶模阻抗和Z0o奇模阻抗以及Leff物理长度。Z0e和Z0o不是任意的它们由差分阻抗、共模阻抗和耦合系数共同决定。举例来说如果目标差分阻抗Zdiff100Ω那么ZoddZdiff/250Ω如果要求共模阻抗Zcommon25Ω那么Zeven2Zcommon50Ω。这样Z0e和Z0o都等于50Ω相当于零耦合。但实际PCB上两根线之间有耦合时Zodd会低于单端阻抗Zeven会高于单端阻抗所以你可以设Z0o47Ω、Z0e68Ω这样Zdiff24794ΩZcommon34Ω比较接近真实板子。如果要做更贴近实际情况的仿真可以用MCLIN耦合微带线模型它需要介质基板参数介电常数Er、介质厚度H、铜厚T、损耗角正切Tand以及线宽W、线距S。计算线宽线距时你可以手动迭代也可以用ADS自带的LineCalc阻抗计算器反算。再进一步如果涉及过孔、连接器、焊盘等非均匀结构就得用Momentum电磁仿真或者导入第三方电磁仿真工具的结果那时候的计算量会大不少但精度也是最高的。4.4 差分阻抗曲线的判读与优化技巧差分TDR仿真完成后在数据显示窗口观测P端节点的电压并做差分处理或者直接用S参数法得到TDR曲线。判读时要注意这样几个特征如果差分阻抗曲线在某个位置突然下降说明该处两线间距变小或者线宽变宽导致奇模阻抗降低如果曲线上升说明该处线间距变大或者参考地平面出现镂空。曲线上的第一个小凸起或凹陷往往来自驱动端的封装和串联电阻寄生中间平缓区域才是走线的真实阻抗末端的变化来自负载和端接。我在实际项目里优化差分阻抗时遵循一个很简单的原则先看目标值是多少再看曲线偏离多少最后往回查是哪一段走线造成的。比如USB 3.0要求90Ω差分阻抗曲线在中间段稳定在92Ω末端出现一个向下尖峰最可能的原因是连接器焊盘处的stub太长而不是走线宽度问题。这种情况下你改线宽意义不大应该调整焊盘处的挖空和过孔反焊盘。5. 常见问题与避坑实录5.1 问题速查表波形不对先看这张表我整理了新手在ADS TDR仿真中遇到最多的问题和对应解法做成一张速查表。遇到波形异常时不要急着动元件参数先逐项排查。现象可能原因解决办法源端电压直接就是1V忘记串联50Ω源内阻或源内阻为0在阶跃源与传输线之间串一个50Ω电阻看不到反射台阶上升时间太长或观察窗口太短将Rise降到25ps以下延长StopTime并增大传输线长度波形上毛刺很多最大时间步长设置过大将MaxTimeStep降到1ps甚至0.5ps差分波形出现明显共模分量正负阶跃源的Delay或Rise不对称仔细核对两个V_Step的参数确保完全一致阻抗换算结果和目标差很多耦合线模型Z0e、Z0o设置不匹配真实板子用LineCalc或场求解器提取准确的奇偶模阻抗仿真速度极慢时间步长太小或扫频范围过大在保证分辨率的前提下提高时间步长或者改用S参数法开路负载看到电压不到1V传输线损耗或源上升时间过慢检查TLINP的损耗参数用理想模型先验证5.2 决定TDR分辨率的三个关键因素TDR能分辨多短的阻抗不连续取决于三个地方上升时间、最高频率和时间步长。上升时间越短频带越宽空间分辨率越高。具体的空间分辨率近似可以这样算空间分辨率 上升时间 x 传播速度 / 2我在FR4板材常用2mm走线宽度下估算25ps上升沿对应的传播速度大约1.5e8 m/s有效介电常数约4所以分辨率大约是1.9mm。这意味着一个2mm长的过孔stub可以在TDR曲线上留下明显的痕迹。如果你的信号速率极高、需要看亚毫米级的阻抗不连续就得把上升时间压到10ps以下。时间步长的影响容易被忽略。很多新手把仿真跑完了才发现波形失真原因是最大时间步长设置得比信号上升沿长太多导致波形被插值平滑。经验做法是MaxTimeStep不要超过阶跃源Rise参数的五分之一。比如Rise25psMaxTimeStep设1ps就非常稳。5.3 关于ADS版本与仿真速度的实操体会ADS的版本迭代对TDR仿真体验影响很大。旧版本里做TDR变换需要手写公式或者借助IFFT函数再处理取实部新手很容易在数据处理阶段就卡住。新版本2020以后在数据显示窗口内置了TDR转换选项选中S参数结果后直接插入TDR曲线即可省去了手动傅里叶变换这一步。如果你还在用老版本的ADS我建议先升级到新版省下大量折腾移植函数的时间。如果你的电脑配置一般尽量用S参数反变换法而不是瞬态法做复杂链路的TDR分析因为瞬态法在时间步长很小的前提下仿真耗时可能是S参数法的几十倍。我做过一个包含四段走线加两个过孔的模型瞬态法跑完整段要二十多分钟S参数法加TDR转换不到三分钟就出结果。5.4 一个容易忽略的细节参考地与端口阻抗最后一个提醒是关于参考地和端口阻抗的。ADS里各种传输线模型默认参考地是理想的但在差分仿真中耦合线模型的两条线必须共享同一个参考地不能分别接入两个不同的地网络。我之前见过有人为了让原理图看起来“干净”把两根线的地标成两个不同的Ground符号结果仿真结果莫名其妙过孔处阻抗严重失配查了半天才发现是两个地节点在物理上没有连通。端口阻抗也要和系统阻抗严格匹配。S参数仿真时端口的参考阻抗默认50Ω但如果你给端口单独设置了其他阻抗TDR变换后显示的阻抗基准就会变化反推得到的阻抗绝对值也会偏差。处理办法是在端口设置中统一保持50Ω等数据出来后再用数学公式换算成差分阻抗。我做TDR仿真踩过最深的坑就是忘掉源内阻第一次跑出来的波形从头到尾平在1V我盯着屏幕看了半天还以为是负载匹配完全正确后来才反应过来是源的内阻没设置入射波压根没有被分压。从那以后我给自己定了一条固定流程先确认源内阻等于系统阻抗再确认上升时间足够小最后才看波形。这套流程陪我从PCIe、DDR一路排查到USB从来没有失手过。希望这篇保姆级教程也能让刚上手的你少走这些弯路。
返回列表