ARTICLE DETAIL

资讯详情

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

PADS差分对布线实战:从阻抗控制到等长调整的避坑指南

PADS差分对布线实战:从阻抗控制到等长调整的避坑指南 1. 差分对在PADS里到底是怎么一回事很多人第一次在PADS里画差分对都是被等长两个字带偏的。以为把两根线拉得一样长就万事大吉结果板子打回来一测眼图糊成一团信号该振还是振。问题出在哪出在大家把差分对当成了两根单端线来处理而差分信号的本质是两根线之间的耦合关系不是两根线各自的绝对长度。差分信号传输的核心逻辑是接收端只关心两根线之间的电压差V 减去 V-共模噪声同时叠加在两根线上的干扰会被差分放大器抑制掉。这个抑制能力取决于两个东西——两根线的对称性和它们之间的耦合紧密度。对称性包括长度对称、阻抗对称、参考平面连续耦合紧密度则取决于线间距和走线方式。你在PADS里如果只盯着长度数字看把间距拉得忽大忽小耦合就断了差分阻抗跟着乱跳反射和串扰全来了。PADS不管是Layout还是Router对差分对的支持其实挺完整的但它的逻辑和Allegro、Altium不太一样。PADS的思路是你先在原理图或网表里定义好差分对用和-后缀或者手动指定然后在Layout里通过Differential Pair功能来统一布线和等长调整。它的优势是操作直接、上手快劣势是很多默认设置对高速信号并不友好需要你手动改一堆参数。这就是为什么很多人觉得PADS画差分对总是不稳——不是软件不行是默认配置在坑你。这篇文章适合谁看如果你正在用PADS画USB、HDMI、PCIe、MIPI、以太网这类高速接口的差分对或者你画完板子发现信号质量不达标、眼图闭合、误码率高那这篇内容就是给你写的。我会从差分对的底层逻辑讲起把PADS里那些容易踩的坑一个个拆开包括规则设置、布线技巧、过孔处理、参考平面、等长调整最后给一套可以直接抄的检查清单。不扯虚的全是实操。2. 差分阻抗不是算出来的是控出来的2.1 阻抗计算只是起点叠层和线宽才是决定因素很多人拿到差分对的第一反应是打开嘉立创的阻抗计算神器或者Polar SI9000输入线宽、间距、介质厚度算出差分阻抗是100欧姆然后就觉得万事大吉了。但实际板厂做出来的阻抗偏差可能有±10%甚至更多。为什么因为你的计算模型和板厂的实际叠层、铜厚、介质材料、蚀刻补偿之间是有差距的。差分阻抗的公式简化来看是这样的差分阻抗 ≈ 2 × 单端阻抗 × (1 - 耦合系数)。单端阻抗取决于线宽、介质厚度、铜厚和介电常数耦合系数取决于线间距和介质厚度。你在PADS里能控制的是线宽和间距但介质厚度和介电常数是叠层决定的。所以正确的流程是先跟板厂确认叠层拿到实际的介质厚度和介电常数再反推线宽和间距。我一般会这样做跟板厂要一份他们常用叠层的阻抗表上面会写清楚不同线宽/间距组合对应的差分阻抗值。比如常见的四层板JLC7628叠层介质厚度约0.2mm介电常数4.6左右要控100欧姆差分阻抗线宽大概5mil、间距7mil左右具体数值以板厂确认为准。拿到这个数值后在PADS的规则里把线宽和间距锁死布线时严格按这个来。注意不要自己拍脑袋定线宽和间距也不要完全信任软件默认值。PADS默认的差分对线宽间距通常是给低速信号用的直接拿来跑高速信号大概率出问题。2.2 PADS里差分对规则的正确设置姿势在PADS Layout里设置差分对规则路径是Setup → Design Rules → Differential Pairs。这里有几个关键参数需要你手动改Min Width / Recommended Width / Max Width这三个值要跟你的阻抗计算结果一致。比如算出线宽5mil那三个值都填5mil不要给范围否则PADS会在布线时随机选一个值导致阻抗不一致。Min Gap / Recommended Gap / Max Gap同理间距也要锁死。比如7mil就填7mil。Min Length / Max Length这是差分对的长度约束后面讲等长时会细说。Tolerance等长容差一般设为5mil到10mil具体看信号速率。速率越高容差越小。设置完之后还要在Net Classes里把差分对所属的网络类指定好确保规则能正确应用。很多人规则设了但没生效就是因为网络类没对上。还有一个容易忽略的点PADS的差分对规则是分层的。Default规则、Net Class规则、Individual Net规则优先级从低到高。如果你在Default里设了线宽6mil在Net Class里设了5mil那最终生效的是5mil。但如果你在Individual Net里又设了别的值那就会覆盖Net Class。所以设完规则后一定要用Verify Design跑一遍看看实际布线是否符合预期。2.3 过孔对差分阻抗的破坏比你想象的大差分对换层的时候过孔会引入阻抗不连续。一个过孔大概会带来0.5nH到1nH的电感对于上升沿很快的信号比如USB 3.0的上升沿可能只有几十皮秒这个电感会造成明显的反射。更麻烦的是如果差分对的两根线过孔位置不对称比如一个过孔离信号入口近、另一个远那两根线的延迟就会不一致差分 skew 就出来了。在PADS里处理差分过孔有几个实操要点两根线的过孔要对称放置最好紧挨着间距和线间距保持一致。过孔周围要加地过孔给回流电流提供低阻抗路径。地过孔离信号过孔越近越好一般建议在信号过孔周围打2到4个地过孔。换层后参考平面要连续。如果从Top层换到Inner Layer 2那Inner Layer 1必须是完整的地平面不能有分割。如果参考平面不连续回流路径断了信号质量会急剧恶化。过孔焊盘尺寸要控制。过孔焊盘越大寄生电容越大阻抗越低。一般高速差分过孔的焊盘直径比钻孔直径大8到10mil就够了不要为了好加工放太大。我见过很多板子差分对走线部分控得很好一到过孔就崩了。所以你在PADS里布完差分对后一定要重点检查过孔区域用3D视图或者截面视图看看参考平面是否连续。3. PADS差分对布线从能连上到连得好3.1 差分对布线的正确启动方式在PADS Router里布差分对最忌讳的就是一根一根拉。正确的做法是先用Differential Pair功能选中整个差分对然后统一布线。具体操作是在Router里右键选择Select Differential Pair或者用快捷键选中差分对然后点击Route Differential Pair按钮PADS会自动把两根线一起拉出来。但这里有个坑PADS默认的差分对布线模式是Symmetric对称模式也就是两根线始终保持相同的间距和长度。这个模式在直线段没问题但一到拐弯或者绕障PADS可能会为了保持对称而做出很奇怪的走线比如突然拉开间距或者绕一个大圈。这时候你需要切换到Asymmetric模式允许两根线在局部有不同的路径但最终要保证等长。我的经验是直线段和简单拐弯用Symmetric复杂绕障用Asymmetric绕完之后手动调整等长。不要指望PADS自动帮你搞定一切它的自动等长算法在复杂场景下经常抽风。3.2 间距一致性比长度一致性更重要很多人把等长当成差分对的第一优先级其实间距一致性才是。为什么因为差分阻抗主要取决于线间距和线宽。如果你为了等长把某一段的间距拉大了那一段的差分阻抗就会升高反射就来了。反射造成的信号失真比长度差造成的skew更致命。在PADS里保持间距一致有几个技巧用Differential Pair规则锁死间距布线时不要手动去改。拐弯时用45度角或者圆弧不要用90度直角。直角会导致线宽突变阻抗不连续。绕障时尽量两根线一起绕不要一根绕一根直。如果必须分开绕绕完之后要把间距调回来。避免在差分对中间打过孔或者放测试点这些都会破坏间距一致性。我一般会在布线完成后用PADS的Measure工具逐段检查间距确保没有意外变化。如果发现某段间距不对用Slide功能把线推回去不要用MoveMove会破坏走线的平滑性。3.3 等长调整的时机和方法等长调整的时机很关键。我的建议是先布完所有差分对再统一做等长。不要布一根调一根因为后面的走线可能会影响前面的长度。统一调整的好处是你可以全局优化找到最短的绕线方案。在PADS里做等长常用的方法是蛇形绕线Serpentine。具体操作是选中需要调整的那根线用Add Accordion功能PADS会自动生成蛇形绕线。但自动生成的蛇形往往不够优化你需要手动调整几个参数Amplitude蛇形的高度一般建议至少3倍线宽太小了耦合效应会变强太大了占空间。Gap蛇形之间的间距一般建议至少4倍线宽避免相邻蛇形之间的串扰。Segment Length每段蛇形的长度尽量保持一致避免阻抗突变。还有一个更精细的方法用Trombone模式也就是只在需要补长的那一段做蛇形其他部分保持直线。这样对阻抗的影响最小。PADS Router里可以通过Delay Tuning功能来实现你可以指定目标长度和容差PADS会自动帮你绕。注意蛇形绕线不要放在差分对的起始段或者结束段最好放在中间位置。起始段和结束段对信号质量最敏感绕线会引入额外的反射。3.4 参考平面和回流路径的检查差分对的回流路径和单端线不一样。单端线的回流电流走最近的参考平面差分对的回流电流主要走两根线之间的耦合路径但参考平面仍然会影响阻抗。如果参考平面不连续比如被分割了或者有槽孔差分阻抗就会突变。在PADS里检查参考平面我一般用这几个方法打开平面层视图看看差分对下方有没有分割线或者槽孔。用3D视图检查换层区域的参考平面是否连续。跑DRCPADS的DRC可以检查参考平面不连续的问题但需要你在规则里开启相关选项。如果发现参考平面不连续解决方案有两个一是调整走线路径避开不连续区域二是在不连续区域附近加缝合电容或者地过孔给回流电流提供旁路。缝合电容一般用0.1uF或者0.01uF放在信号过孔附近越近越好。4. 那些让你信号不稳的隐藏坑4.1 差分对定义错误从源头就错了很多人差分对信号不稳根源不在布线而在差分对定义。PADS里定义差分对有两种方式一种是在原理图里用和-后缀自动识别另一种是在Layout里手动指定。自动识别看起来方便但经常出错。比如你的网络名是USB_DP和USB_DMPADS可能识别不出来因为它默认只认和-。这时候你需要手动在Differential Pairs里添加指定USB_DP为PositiveUSB_DM为Negative。如果指定反了差分对的极性就错了信号直接废掉。还有一个更隐蔽的坑差分对的网络名里包含了其他字符。比如USB_DP_1和USB_DM_1PADS可能会把_1当成网络名的一部分导致识别失败。这时候你需要用Wildcard或者Regular Expression来匹配或者在原理图里就把网络名改干净。我一般建议在原理图阶段就把差分对的命名规范定好用统一的_P和_N后缀比如USB_P和USB_N避免用、-、DP、DM这些容易混淆的命名。然后在Layout里手动确认一遍确保差分对定义正确。4.2 层间切换时的参考平面陷阱差分对换层时参考平面也跟着换。如果从Top层换到Bottom层参考平面从Inner Layer 1换到了Inner Layer 2这两个平面的电位可能不一样回流路径就断了。更糟糕的是如果Inner Layer 1和Inner Layer 2都是地平面但它们在物理上是分开的回流电流需要跨过分割线就会形成一个大环路辐射和串扰都来了。在PADS里处理这个问题我的做法是尽量让差分对在同一层走完减少换层次数。如果必须换层尽量换到相邻的层参考平面变化最小。换层时在过孔附近加地过孔把两个参考平面连接起来给回流电流提供低阻抗路径。如果参考平面是电源平面要在换层区域加缝合电容把电源平面和地平面连接起来给回流电流提供旁路。我见过一个案例一个USB 3.0的差分对从Top层换到Inner Layer 2参考平面从地平面换到了电源平面结果眼图完全闭合。后来在换层区域加了两个0.1uF的缝合电容眼图就打开了。所以换层区域的参考平面处理绝对不能马虎。4.3 测试点和调试接口的破坏性很多板子为了调试方便会在差分对上加测试点或者调试接口。这些测试点看起来不起眼但对高速信号的影响很大。一个测试点会引入额外的电容大概0.5pF到1pF造成阻抗不连续反射就来了。如果测试点的位置不对称还会造成skew。在PADS里加测试点我的建议是测试点尽量小焊盘直径不要超过线宽的2倍。测试点要对称放置两根线的测试点位置和距离要一致。测试点尽量放在差分对的末端不要放在中间。末端对信号质量的影响最小。如果不需要调试尽量不要加测试点。很多板子加了测试点从来没用过反而把信号质量搞坏了。还有一个常见的坑调试接口的引脚定义和差分对极性不匹配。比如你的差分对是USB_P和USB_N但调试接口的引脚定义是反的插上去信号就废了。所以在设计调试接口时一定要确认引脚定义和差分对极性一致。4.4 PADS软件本身的坑版本差异和默认设置PADS不同版本之间的行为差异挺大的。比如PADS VX2.7和VX2.12在差分对布线算法上就有区别VX2.12的自动等长更智能但有时候会过度优化把走线绕得很奇怪。PADS 9.5的差分对功能比较基础很多高级功能没有。还有一个坑是默认设置。PADS安装后的默认差分对规则是给低速信号用的线宽间距都很宽松。如果你不手动改直接拿来跑高速信号大概率出问题。我一般会在新建工程后第一时间去Setup → Design Rules里把差分对规则改掉然后再开始布线。另外PADS的Grid设置也会影响差分对布线。如果Grid太大差分对走线会不平滑间距会跳变。我一般会把Grid设成1mil或者0.5mil保证走线精度。但Grid太小又会导致布线速度变慢所以需要根据实际情况权衡。5. 一套可以直接抄的差分对检查清单5.1 布线前的准备工作在开始布差分对之前先把这几件事做了确认叠层和阻抗跟板厂要叠层参数用阻抗计算工具算出线宽和间距记录下来。定义差分对在原理图或Layout里正确定义差分对确认极性正确。设置规则在PADS里设置差分对规则线宽、间距、等长容差都锁死。规划走线路径在Layout里先规划好差分对的走线路径避开参考平面不连续区域和干扰源。确认测试点和调试接口如果必须加测试点确认位置和尺寸合理。5.2 布线中的关键检查点布线过程中每完成一对差分对就检查这几项检查项标准检查方法线宽一致性与阻抗计算结果一致偏差不超过±10%Measure工具逐段测量间距一致性与阻抗计算结果一致偏差不超过±10%Measure工具逐段测量等长容差在规则设定的Tolerance范围内PADS的Length Monitor过孔对称性两根线的过孔位置对称周围有地过孔3D视图检查参考平面连续性换层区域参考平面连续无分割平面层视图检查拐弯角度45度角或圆弧无90度直角目视检查蛇形绕线参数Amplitude≥3倍线宽Gap≥4倍线宽目视检查Measure5.3 布线后的验证和调试布完所有差分对后做这几件事跑DRC用PADS的Verify Design跑一遍检查所有规则是否满足。跑Length Monitor检查所有差分对的等长是否在容差范围内。导出Gerber导出Gerber后用CAM工具再检查一遍线宽间距。做信号完整性仿真如果条件允许用HyperLynx或者SIwave做一下仿真看看眼图和阻抗曲线。打样测试板子打回来后用TDR或者VNA测一下差分阻抗确认跟设计值一致。我一般会在打样前做一次完整的检查把上面这些项都过一遍。虽然麻烦但比板子打回来发现信号不稳再改要划算得多。毕竟改板的时间和成本远比检查的时间成本高。5.4 常见问题速查表问题现象可能原因解决方案眼图闭合阻抗不连续、参考平面不连续检查过孔和换层区域加地过孔或缝合电容误码率高等长超差、skew过大重新调整等长确保在容差范围内串扰严重间距太小、蛇形绕线太密增大间距调整蛇形参数反射明显线宽突变、测试点影响检查线宽一致性移除不必要的测试点差分阻抗偏差大叠层参数不对、线宽间距不对跟板厂确认叠层重新计算线宽间距6. 我在实际项目里踩过的几个真实坑第一个坑是差分对极性搞反。有一次画一个HDMI接口差分对定义的时候把TMDS_D0和TMDS_D0-搞反了板子打回来发现图像颜色不对查了半天才发现是极性反了。后来我在原理图里加了一个检查步骤所有差分对的极性都要人工确认一遍再也不敢偷懒了。第二个坑是参考平面分割。有一次画一个四层板Inner Layer 1是地平面Inner Layer 2是电源平面。差分对从Top层换到Bottom层的时候参考平面从地平面换到了电源平面结果信号质量一塌糊涂。后来在换层区域加了两个缝合电容问题就解决了。从那以后我每次换层都会检查参考平面是否连续。第三个坑是PADS自动等长抽风。有一次用PADS的自动等长功能它把差分对绕成了一个很奇怪的形状蛇形绕线的高度和间距都不对结果阻抗突变信号反射严重。后来我改成手动调整用Trombone模式只在需要补长的地方绕问题就没了。所以自动功能可以用但一定要人工检查。第四个坑是测试点不对称。有一次为了调试方便在差分对上加了两个测试点但位置不对称一个在线的中间一个在末端。结果两根线的延迟不一致skew超标。后来把测试点都移到末端并且对称放置问题就解决了。这些坑看起来都是小问题但在高速信号里小问题就是大问题。差分对的设计和布线本质上是一个细节管理的过程。每一个细节都可能影响最终信号质量所以宁可多花时间检查也不要抱着侥幸心理。7. 关于PADS差分对最后再分享几个实用技巧第一个技巧用PADS的Script功能批量检查差分对。PADS支持VBScript和JavaScript你可以写一个脚本自动检查所有差分对的线宽、间距、等长输出一份报告。这样比手动检查快得多也不容易漏。网上有一些现成的脚本你可以拿来改改就能用。第二个技巧用Excel管理差分对参数。我一般会建一个Excel表格列出所有差分对的名称、线宽、间距、目标阻抗、等长容差、实际长度、偏差值。布线的时候对着表格检查一目了然。这个表格还可以给板厂做参考确保他们按你的要求做阻抗控制。第三个技巧善用PADS的Reuse功能。如果你有多个相同的差分对比如多个USB接口或者多个HDMI通道可以布好一对之后用Reuse功能复制到其他位置。这样能保证所有差分对的走线方式一致减少人为差异。第四个技巧定期备份。PADS有时候会崩溃尤其是在处理复杂差分对的时候。我一般会设置自动备份每隔10分钟保存一次。另外在关键节点比如布完所有差分对、做完等长调整手动备份一次避免意外丢失工作。第五个技巧多看板厂的反馈。板厂在做阻抗控制的时候会给你一份阻抗测试报告。这份报告很有价值可以告诉你实际做出来的阻抗跟设计值的偏差。如果偏差大下次就要调整线宽间距。我一般会把每次的测试报告存档积累多了就能摸清板厂的工艺能力后续设计更有把握。差分对的设计没有捷径就是理解原理、遵守规则、注重细节、反复验证。PADS只是一个工具工具用得好不好取决于你对信号完整性的理解有多深。希望这些经验能帮你少踩几个坑一次把板子画好。
返回列表