ARTICLE DETAIL

资讯详情

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

Altium Designer差分对设计全攻略:规则设置与高效走线实战

Altium Designer差分对设计全攻略:规则设置与高效走线实战 用过Altium Designer画高速板子的朋友应该都遇到过这个场景USB、HDMI、DDR这类接口明明信号速率不高可一旦差分对没处理好要么板子信号质量差要么EMI测试过不了折腾死人。这里的AD我说的是Altium Designer不是网管嘴里那个域控别搞混了。差分对规则设置和高效走线是AD做高速PCB绕不开的核心技能。这篇文章我就把差分对从规则设置到实际走线的完整套路拆开讲包括底层原理、AD里的具体操作、以及我这些年踩过的坑。不管你是刚接触AD的新手还是已经画过几块板子的工程师这套思路都应该能帮你少走不少弯路。1. 差分对设计的底层逻辑与规则设置思路1.1 差分信号到底在传输什么差分信号的本质是用两根等幅、反相的信号线组成一对传输线接收端真正关心的是两根线上的电压差而不是对地电压。所谓差分对就是用这两根线构成的一条完整信号通路。为什么高速设计这么依赖差分两个原因最直接一是抗共模干扰外部噪声会同时叠加在两根线上相减之后自然抵消二是差分结构本身的电磁辐射要小得多因为两根线的电流方向相反空间中的场会互相抵消。所以差分对设计的核心目标不是“两根线拉得一样长”那么简单。真正要管住的事情有四件其一差分阻抗要连续不能忽大忽小其二对内两根线的长度要匹配避免相位差造成共模转换其三线与线之间的间距要恒定间距一变耦合系数就变阻抗就飘其四整条路径的参考平面要完整返回电流不能被切断。理解了这四件事再去AD里点那些规则配置你才知道每个数字背后在管什么。用个生活化的比方两条腿走路步幅一致、速度同步人就走得稳如果一条腿长一条腿短或者一条腿迈得忽快忽慢人就要崴脚。差分对内等长和等距就是让两条“腿”走同步。差分阻抗设计则是决定这两条腿踩在地面上的“力度”是否合适力度大了信号反射弹得厉害力度小了又传不远。1.2 AD里的差分对象与规则管理架构AD中差分对管理的核心是专门的对象体系。你在原理图里放置的网络只要按照特定后缀命名AD就能自动识别为一对差分。最常见的是_P和_N后缀比如USB_D_P与USB_D_N或者TX_P与TX_N。当然也可以用_、_-这样的后缀关键是在工程选项里统一定义好。在PCB编辑环境里差分对会以一个整体对象的形式存在。选中其中一根线另一根通常也能联动这拜AD的差分对对象机制所赐。规则管理方面AD有一套完整的优先级体系设计规则里同时存在针对具体差分对、针对网络类、针对所有网络的规则时会根据规则的优先级和范围来裁决。很多新手的问题就出在这里定义了差分对也写了规则可软件不认最后发现是规则作用范围根本没覆盖到那对网络上。还有一个认知误区必须澄清差分对不是“走线的时候同时拉两根线”就完事了。AD确实提供交互式差分对布线命令方便你同时拉两根线但真正约束两根线耦合关系的是规则、间距、线宽以及层叠结构。工具只负责让你画得爽规则才是让你画得对的前提。2. 差分对规则设置的完整实操2.1 在原理图阶段把差分对定义出来我建议所有差分对都在原理图阶段定义好不要等到PCB阶段手动添加。原理图阶段定义的好处是信息完整能从网表一直带到PCB而且在多人协作或者做DRC时不容易漏。方法很简单把差分对的两根网络分别命名为xxx_P和xxx_N放置NetLabel或者在网络属性里给网络添加Differential Pair标识在AD的菜单栏找到Design → Differential Pairs或右侧面板里的Differential Pairs Editor部分版本在PCB面板里打开编辑器点击Analyze让软件自动扫描扫描完成后所有符合后缀规则的网络都会列在左侧手动匹配左和右然后点Add建立差分对建立好的差分对会出现在Differential Pairs列表里后面布线规则直接引用它。实际操作中有些工程的命名并不规范两个网络可能叫HSP_DP和HSP_DMAD分析不出来。这种时候你可以手动选择两个网络右键Create Differential Pair From Selected Nets也能快速建立。但长期看我还是建议统一命名规范尤其当项目大、网络多的时候规范化能省大量时间。2.2 Differential Pairs Routing规则详解差分对建立后真正决定线宽线距的是规则设置。打开Design → Rules → Routing → Differential Pairs Routing这里有一堆参数很多人第一次看会懵。我逐个说清楚关键项参数含义说明Min Width最小线宽走线允许的最窄值受工艺和阻抗下限约束Max Width最大线宽走线允许的最宽值一般等于PreferredPreferred Width首选线宽正常情况下的目标线宽也是阻抗设计的基准值Min Gap最小线间距同一差分对内两根线之间的最小距离Max Gap最大线间距同上允许的最大值Preferred Gap首选间距目标间距和首选线宽一起决定差分阻抗Coupled Length耦合长度要求两根线平行耦合的最小长度一般不太纠结这些参数怎么定核心是阻抗。一个100Ω差分对的经典微带线参数可能是线宽5mil、间距7mil但这完全取决于你的板材、铜厚、介质厚度。我没有办法给你一个通用数字因为换一种叠层同样的线宽线距阻抗就变了。现实中我一般这样处理先确认叠层参数包括板材介电常数FR4一般是4.24.6、介质厚度、铜厚、阻焊厚度用阻抗计算工具Polar SI9000、AD自带的阻抗计算器或者在线计算器算出满足目标阻抗的初始线宽和间距把计算出的值回填到规则里同时留出工艺偏差的余量板材厂商给的叠层表必须核实不同厂家的实际介质厚度差异会影响阻抗这块不能偷懒。规则里还有一个容易被忽视的点Rule Priority规则优先级。假如你的板子上有多个差分对同时还有一类网络叫HIGH_SPEED两条规则可能同时命中同一个差分对。AD会按优先级从上往下匹配你可以拖拽调整优先级顺序。我见过有人把全局差分规则放在上面把特定差分对规则放在下面导致特定规则永远不生效DRC疯狂报错。正确做法是越具体、越特殊的规则优先级越高。2.3 等长规则与匹配容差设定差分对除了线宽线距还有一个必须设置的规则Design → Rules → Routing → Differential Pair Matching也就是等长匹配规则。这里要设置两个东西一是目标长度二是容差。目标长度怎么来看你的接口协议和数据手册。比如USB 2.0差分对内等长一般控制在5mil以内千兆以太网可能要求更严有的DDR接口甚至要求整体长度在一个特定窗口内。这些数字不是凭空想的是芯片原厂或协议规范写明的要求。AD会从最长的那一根线作为基准目标容差就是你允许的最大差距。实际项目中我发现很多工程师只设置对内等长P和N之间却忽略了对外等长不同差分对之间。USB 3.0的TX差分对和RX差分对之间、HDMI的四对差分之间往往也有时序要求。AD同样提供了匹配长度的范围设置你可以把所有需要等长的差分对都加进同一个Differential Pair Matching规则里然后设定一个公共的目标容差。走线完成后使用Length Tuning功能做整体调节配合Length面板可以实时查看长度状态。3. 高效差分对走线实战3.1 布线开始前值得花时间的准备工作差分对走线效率低多半是布局和扇出阶段埋下的雷。我把前期的准备工作当成高速走线的一半工作。具体要做三件事第一确认层叠与参考平面。差分对的参考平面必须完整而且最好是一整块地平面。如果信号走线下面被分割了返回电流就被迫绕路等效于在回流路径上挖了个坑阻抗不连续就来了。所以在布局阶段我要确保所有差分对经过的区域底层或邻近层有完整的地铜皮。把关键的差分对规划在靠近地平面上层换层的地方加好回流地孔。第二规划扇出。BGA或者连接器区域的扇出决定了差分对能不能“顺利走出去”。我曾在一个BGA芯片下面因为扇出方向不对差分对被周围过孔挤得只能绕远最后等长调起来极其痛苦。正确的做法是先给高速信号分配最优的出线层再安排过孔和引线方向把相邻的差分对出口留出足够的通道宽度。第三给等长调节预留空间。很多人忽视这一点导致走线完成后等长超标却找不到地方绕线。我的习惯是在关键差分对的路由区域旁边留出大约一个蛇形调节宽度的空白区DDR或HDMI这类接口尤其如此。预留空间不是浪费板面积是给自己留后路。3.2 交互式差分对布线怎么用才顺手AD的差分对布线命令入口是Interactive Differential Pair Routing默认快捷键是P I D。启动命令后鼠标靠近一对差分网络中的任一网络软件会自动识别整对差分并开始拉线。这个命令很好用但要用得顺手有几个细节切换走线层时AD默认会自动添加过孔。要确认过孔尺寸适合你的工艺且过孔旁边有没有足够的回流地孔。如果是2层板或4层板过孔换层带来的阻抗不连续比走线本身更值得关注。布线过程中按住Shift Ctrl 滚轮可以快速切层配合Shift R切换走线模式忽略障碍、推挤、绕行等我在有密集BGA区域时常用推挤模式效率会高很多。走线过程中随时用Tab键打开属性面板可以临时修改线宽和间距。但我建议最终规则确定后尽量不要临时改动不然DRC会有一堆报错。还有个小技巧同时拉着两根线的时候AD默认是保持你和目标焊盘之间连线成对的。遇到空间紧张的封装比如连接器引脚间距很密可能连等宽等距都做不好。这种情况我一般先把两引出线分开用单根线走到引脚的焊盘附近再用差分命令把两根线同时拉出去。宁可引脚段短一点不耦合也不要为了耦合在引脚处硬挤制造不必要的回路。3.3 等长调节手要稳心更要细走线完成后第一阶段的目标是让差分对顺利连通第二阶段才是做等长调节。我见过很多新手一上来就边走边调等长结果线还没通先绕了一堆蛇形最后改起来想死。我的做法是先把所有线走通、把规则跑完DRC确认没有短路断路再分批做等长。AD的等长调节命令是Interactive Length Tuning快捷键P I T默认提供几种调节样式Accordion手风琴、Trombone长号、Sawtooth锯齿等。我个人最常用的是Accordion占用的空间相对紧凑电流走向也比较顺。在这里可以设定目标长度和最大振幅软件会实时显示你拉出的长度是否符合要求。调节的细节我建议注意三点蛇形线的间距amplitude至少要满足3倍线宽不然相邻线段之间会产生额外耦合反而破坏信号质量蛇形线不要贴着焊盘、过孔或者封装体拐弯要给足够间距优先在阻抗已经比较稳定的区域做等长尽量不要在靠近连接器或芯片引脚的位置堆蛇形线那会让阻抗连续性问题更严重。在等长调节过程中我会同时打开PCB面板里的长度信息或者直接看状态栏的实时长度提示。AD 19以上版本都有不错的长度显示和DRC在线更新把规则容差设好后线走到合格长度时颜色或状态会变化。实际体验下来比当年盯着数字硬调快太多了。3.4 高速场景下的差分对细节强化差分对基础规则是对大多数中低速信号但真到PCIe、USB 3.x、10G以太网这类高速场景光靠线宽线距等长还不够还需要几个额外处理。第一过孔换层的回流路径。我通常会在每个差分对换层过孔旁边放置一对地孔也可以理解成给返回电流提供低阻抗通道。不要小看这个动作过孔换层时参考平面从顶层切换到底层返回电流有一段无法找到相邻平面必须通过地孔跳转。没有地孔回流路径会绕远相当于给信号路径串联了一段大电感。第二AC耦合电容的摆放。像PCIe这种需要AC耦合的应用电容一般放在发送端距离连接器不能太远而且电容下方的参考平面必须完整。还有个细节电容焊盘比较宽容易导致差分阻抗下降所以我习惯把差分线接近电容焊盘的位置适当收窄necking让走线宽度和焊盘宽度过渡平缓一些。第三背钻处理。如果用的是多层板连接器或BGA深孔段会产生一段不必要的过孔stub严重影响高速信号。条件允许时把关键高速差分对的过孔做背钻把没有用的过孔壁钻掉。AD里背钻主要用于一阶或二阶HDI设计普通FR4通孔板也可以做主要确认板厂工艺支持以及背钻的深度公差。第四包地与净空。对于比较敏感的高速差分对比如晶振附近的时钟差分旁边可以铺一圈地孔形成包地减少与其他信号的串扰。包地有一个讲究不要在不该接地的地方产生地环路要保证包地铜皮尽可能多点接地而不是悬空的一块孤岛地。包不包地取决于空间和信号隔离需求并非所有差分对都必须包地包错了反而增加麻烦。4. 一个完整案例HDMI接口差分对的设置与走线4.1 从原理图到规则的落地讲到这个我用一个具体的HDMI接口案例来说明整个流程。HDMI一共有四对差分信号三对TMDS数据Data2、Data1、Data0和一对时钟Clock差分阻抗要求100Ω对内等长容差常见要求5mil对与对之间尽量等长。在我最近的工程里用的是四层板顶层走差分线第二层是完整地平面板材为FR4介质厚度约0.1mm铜厚1oz。我先在原理图里把网络名统一加上后缀TMDS0_P/TMDS0_N、TMDS1_P/TMDS1_N、TMDS2_P/TMDS2_N、CLK_P/CLK_N。编译工程后打开PCB的Differential Pairs Editor点击Analyze自动识别四对网络出现在待选列表里。我将左右网络一一对应添加生成四组差分对。然后打开规则设置新建四条Differential Pairs Routing规则并在Where The Object Matches里分别选择对应的差分对。线宽线距我根据阻抗计算器跑出来的初值线宽5mil线距7mil。为什么是这个组合因为在当前叠层下5/7能贴近100Ω差分阻抗。然后我把Differential Pair Matching规则里加了四个差分对容差设成5mil考量了HDMI的时序余量。4.2 实际布线与调整过程画板的时候HDMI连接器在板边芯片在板中央。我先把BGA侧的扇出走好确保差分对出来的第一段线方向与BGA焊盘方向一致网络之间不交叉。然后启动Interactive Differential Pair Routing从连接器端拉线一路把四对差分整理到芯片方向。布线中我遇到一个典型问题时钟差分对要绕开DDR走线区域长度比数据对短了很多。于是我把时钟对先走完再根据DDR区域的实际障碍把三对数据线绕过去尽量缩短对间差距。最后统一用长度调节模式参照最长的一对数据线作为基准把时钟对和其他数据对逐步调到目标长度范围。等长调节的时候我特别注意蛇形线放置位置全部放在靠近芯片端的直线段远离连接器的座子因为座子附近空间很小绕线容易跟外壳地冲突。整个调节过程用了不到一小时DRC跑完所有差分对都通过长度匹配也达标。打样回来后实测眼图四对信号都符合预期眼图张开度良好。4.3 打样前的自查清单每次差分对相关设计完成后我都会过一遍自查清单这里分享出来差分对网络在原理图与PCB之间是否一一对应没有漏定义或重复定义差分对规则优先级是否正确没有被其他全局规则覆盖差分阻抗是否与叠层计算一致线宽线距取值是否在板厂工艺范围内对内等长、对外等长是否满足手册要求有没有为了等长把蛇形线放在太靠近引脚的位置参考平面是否完整差分路径有没有跨分割跨分割处是否做了回流地孔补偿过孔stub是否影响高速信号是否考虑背钻或换层优化丝印、元件体、铜皮和差分线之间是否有短路风险机械结构件是否压迫走线区域。这个清单我每次打样前必过一遍能拦住大多数低级错误。别嫌繁琐很多问题在实验室测出来才改成本高得多。5. 高频问题排查与避坑实录5.1 差分对建不上、规则不生效怎么办差分对建不上的情况十有八九是命名问题。检查一下两个网络后缀是否完全一致注意大小写USB_P和usb_n在AD里很可能被识别成两对工程选项里的差分对后缀设置是否包含了你的命名风格默认只认指定的几组如果原理图里没有编译工程PCB里扫不到新定义的网络先编译再扫描。规则不生效更常见。我遇到过几次明明设置了Differential Pairs Routing规则走线时线宽和间距却完全是默认值。原因通常是规则优先级不对全局默认规则把差分规则挤下去了规则的作用范围没有选中对应的差分对只选了网络导致整条路径没有被差分规则覆盖该版本的AD需要勾选Use Preferred Width和Use Preferred Gap作为默认行为如果不勾它只用所以规则范围内的值做参考布线命令不自动应用。解决办法很简单打开PCB Rules and Constraints Editor在对应的规则上右键选Go To Violations或者直接看左下角状态栏排查是哪个规则命中了当前操作。实在不行就把除了目标规则之外的所有路由规则临时禁用跑完再恢复。5.2 等长总是差一口气、DRC报错怪象等长调节最烦的是软件显示长度合格但DRC总报 length mismatch。这种情况很多不是AD算错了而是你把Differential Pair Matching规则的目标容差设成了0或者设置了过小。软件只要差1mil就会报错。我的建议是容差不要设成0至少留1~2mil因为你的线肯定存在1mil内的调整精度确认DRC规则里勾选的是差分对而不是普通网络长度规则两种规则的计算逻辑不同如果同一对差分内部两个网络的物理路径差异太大比如一个走顶层直线一个换了两次层绕了弯靠蛇形线救不了建议重新审视布局与扇出方向。另外有个DRC报错的常见怪象差分对走线明明没有太近PRRPair Routing Rule却报间距违规。这通常是某种局部Gap没有跟随规则造成的。你可以在规则里把Min Gap放大或者在走线属性里检查是不是某一段的Width/Gap被手动修改过没有跟随规则模板。5.3 几条值得记住的经验心得差分对设计做了这些年有一个体会越来越深工具只是放大器效率和正确性的根源在设计思路。AD再顺手该算的阻抗不算、该留的空间不留布线时就会不断返工。反过来前期花半小时把叠层、规则、扇出规划清楚后面走线是流水线作业。我个人的几条经验规则永远比手动操作可靠。能用规则约束的绝不用手去沿着某个方向硬拉AD是规则驱动设计你越把逻辑写进规则里修改起来越快。走线之前先看芯片手册和连接器手册。手册里对长度、容差、参考平面的要求才是规则的唯一来源别凭感觉拍脑袋。画差分对的那段时间别频繁在顶层和底层之间切。每次换层都要检查回流地孔和参考平面的连续性。一次换层可以接受反复换层会让阻抗控制变得极其困难。做完等长调节以后不要立刻打样。先全板跑一遍DRC再看一下每一对差分实际物理路径有时候软件算的长度合格但线形极度扭曲比如蛇形线紧贴着焊盘这类问题DRC检查不出来肉眼一下就能挑出来。最后再分享一个百试不爽的小技巧布线阶段把所有差分对相关网络用相同颜色高亮出来这样整板哪些区域是高速信号区一目了然布局绕线和检查都快很多。AD网络颜色管理在图层级就能设看似不起眼实际效率提升极大。
返回列表