ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

AD20差分对等长布线实战:从原理图定义到蛇形绕线全流程

2026/10/6 11:58:22 拓冰建站 浏览量
AD20差分对等长布线实战:从原理图定义到蛇形绕线全流程 1. 差分对等长布线到底在解决什么问题1.1 从一根线到一对线差分信号的基本认知刚接触AD20的朋友看到“差分对”三个字容易发怵觉得这是高速电路才需要关心的东西。其实把概念拆开看就很简单差分信号就是用两根线一起传一个信号一根走正相一根走反相。接收端不看单根线对地的电压而是看两根线之间的电压差。这个设计的好处很直接——外界干扰同时耦合到两根线上接收端一相减干扰就被抵消掉了。所以差分传输天生抗共模干扰这也是USB、HDMI、CAN、以太网这些接口都采用差分方式的原因。那“等长”又是什么意思理想情况下正相和反相两根线上的信号应该同时到达接收端。如果一根线比另一根长信号到达时间就有先后差异这个时间差会导致差分信号的眼图变差严重时接收端直接判错。等长布线的核心目标就是把这对线的长度差控制在一个允许范围内让两个信号尽可能同时到达。在AD20里差分对不是画完线再手动去量的而是从原理图阶段就要定义好。这一点很多人容易忽略——你在原理图里没有把网络标成差分对到了PCB里就得手动去配对费时费力还容易出错。所以整个流程的起点其实在原理图。1.2 什么时候必须做等长什么时候可以放过不是所有差分对都需要严格等长。我见过不少新手画个低速的RS485也要纠结等长其实没必要。判断标准主要看信号的上升时间和走线延迟的关系。经验上当信号的上升时间小于走线延迟的两倍时等长就开始变得重要了。具体到常见接口USB2.0全速模式对等长要求相对宽松一般控制在几个毫米以内问题不大USB3.0、HDMI、PCIe这些高速接口就严格得多通常要求长度差在0.1mm到0.5mm之间具体看协议规范。DDR的差分时钟对也是重点照顾对象。而像CAN、RS485这类低速差分长度差控制在几毫米甚至十几毫米通常都能正常工作。注意等长要求不是拍脑袋定的优先查你所用接口的协议规范或者芯片手册里的layout guide那里写的才是权威值。没有规范可查时再按上升时间经验公式估算。1.3 AD20在这件事上的能力边界AD20提供了差分对定义、交互式差分布线、等长调节这几项核心功能。它的差分布线器可以让你像画单线一样画差分对自动保持两根线的间距等长调节则通过添加蛇形绕线来补偿长度差。但AD20不会自动帮你决定哪里该绕、绕多少这些还是得靠人来判断。工具是辅助设计意图得你自己清楚。另外要说明的是AD20的等长调节分两种一种是差分对内部的等长P和N之间另一种是差分对之间的等长比如一组数据线之间。这两者的规则设置和操作方式不太一样后面会分别讲。2. 原理图阶段就要做好的差分对定义2.1 用网络标号命名规范来标识差分对AD20识别差分对最直接的方式就是看网络名称。默认规则是网络名以“_P”和“_N”结尾或者“”“-”结尾AD就会自动把它们识别为一对差分信号。比如你给两根线分别标上“USB_DP”和“USB_DN”AD在PCB里就能自动配对。但这里有个坑命名必须成对且规范。我遇到过有人写成“USB_D”“USB_D-”AD也能识别但如果你一会儿用“/-”一会儿用“_P/_N”就容易乱。建议整个项目统一一种命名风格要么全用“_P/_N”要么全用“/-”别混着来。还有一种情况是网络名里带了其他后缀比如“USB_DP_1”和“USB_DN_1”AD默认规则可能识别不了。这时候就需要手动在规则里添加差分对或者修改命名规则的正则表达式。我个人的习惯是尽量用最标准的“_P/_N”后缀省得后面折腾。2.2 在原理图中添加差分对标识除了靠命名自动识别AD20也支持在原理图里显式标注差分对。操作路径是在原理图界面选中两根网络右键找到“Place”菜单下的“Directives”里面有个“Differential Pair”指令。放上去之后这两根线就被明确标记为一对差分信号。这个操作的好处是即使你的命名不太规范AD也能通过这个标识正确识别。而且这个标识会随原理图同步到PCB不会丢失。我一般会在命名规范的基础上再加一层这个标识双保险。提示原理图里的差分对标识放置后记得检查一下是否覆盖到了正确的网络。放错位置的话PCB里配对就会出问题。2.3 编译检查与网络同步原理图画完别急着更新PCB。先做一次工程编译看看Messages面板有没有报错。常见的差分对相关问题包括只定义了一根线没有配对的另一根、命名冲突、网络未连接等。这些问题在原理图阶段解决比到了PCB再回头改要省事得多。编译通过后通过“Design”菜单下的“Update PCB Document”把网络和差分对信息同步到PCB。同步完成后在PCB界面的“Differential Pairs Editor”里应该能看到你定义的所有差分对。如果这里看不到说明前面的定义有问题得回去检查。3. PCB规则设定差分对参数怎么填3.1 创建差分对类并分配网络打开PCB界面从“Design”菜单进入“Classes”在“Differential Pair Classes”里新建一个类比如叫“USB_DP_DM”。然后把对应的差分对添加进去。这一步的意义在于后面设置规则时可以针对这个类统一配置不用一对一对地设。如果你项目里差分对不多也可以不建类直接在规则里针对单个差分对设置。但项目稍微大一点建类就是必须的否则规则管理会非常混乱。3.2 差分对间距规则Primary Gap怎么定在“Design”菜单下打开“Rules”找到“Differential Pairs Routing”这一项。里面最关键的是“Primary Gap”也就是差分对两根线之间的间距。这个值怎么定取决于你的叠层和阻抗要求。举个例子假设你用四层板顶层到内层的介质厚度是0.2mm介电常数4.2想实现90欧姆的差分阻抗。用常见的阻抗计算工具比如Saturn PCB Toolkit或者嘉立创的阻抗计算器反推线宽0.15mm、间距0.2mm左右能接近90欧姆。具体数值一定要用工具算不要凭感觉填。参数典型值说明线宽0.15mm根据阻抗和叠层计算间距0.2mm即Primary Gap目标阻抗90欧姆USB2.0常见要求介质厚度0.2mm取决于叠层设计填规则的时候Primary Gap就填你算出来的间距值。AD在差分布线时会自动保持这个间距。3.3 线宽规则与最大长度差设定线宽在“Routing”下的“Width”规则里设置针对差分对类指定最小、最大、优选线宽。优选线宽就是你正常布线时用的宽度。长度差规则在“Differential Pairs Routing”里有个“Max Uncoupled Length”和“Max Length Mismatch”之类的选项不同版本措辞略有差异。Max Length Mismatch就是允许的最大长度差。比如USB2.0可以设5mmUSB3.0设0.5mm。这个值设好之后AD会在你布线时实时提示是否超标。注意规则里的长度差限制是给DRC检查用的不是自动帮你绕等长。你布完线还得手动或半自动地做等长调节。3.4 规则优先级与冲突处理AD的规则系统是按优先级匹配的。如果你同时建了全局规则和针对差分对类的规则类规则的优先级要高于全局规则否则不生效。在Rules界面里每个规则都有Priority值数字越小优先级越高。我一般把差分对相关规则的优先级设得比通用规则高。另外如果你发现规则设了但布线时没生效先检查是不是被更高优先级的规则覆盖了。这是新手常踩的坑。4. 交互式差分布线实操4.1 启动差分布线命令在PCB界面从“Place”菜单找到“Interactive Differential Pair Routing”或者用快捷键P然后按I再按D不同版本快捷键可能不同以你实际菜单为准。启动后鼠标会变成十字光标提示你选择要布线的差分对。点击差分对中的任意一根线AD会自动把两根线一起带着走。这时候你移动鼠标两根线会保持规则里设定的间距同步延伸。这个体验比手动画两根线再对齐要高效太多。4.2 布线过程中的间距保持与过孔处理差分布线时AD会尽量保持Primary Gap。但遇到需要打过孔换层的情况两根线需要各自打一个过孔。这时候要注意过孔的位置和间距尽量让两根线的过孔对称放置避免引入额外的长度差。我通常的做法是在换层位置先放两个过孔间距和线间距一致然后让差分线分别连到过孔上。AD20在差分布线模式下按数字键“3”可以放置过孔并自动切换到另一层前提是层对已经设置好。层对在“Layer Stack Manager”里配置。提示过孔本身会引入寄生电容和电感高速差分对换层时尽量少打过孔。如果必须换层过孔附近的参考平面要完整不要跨分割。4.3 遇到障碍物时的推挤与绕行差分布线过程中遇到焊盘、其他走线等障碍物时AD默认会尝试推挤或者绕行。推挤模式在“Interactive Routing”的设置里可以调。我一般把差分布线设为“Hug and Push”或者“Walkaround”模式具体看项目密度。高密度板子上差分对绕障碍物时容易导致两根线长度不一致。这时候不要慌先布通后面再用等长调节来补偿。AD的等长调节功能可以自动在指定区域添加蛇形线。4.4 布线完成后的DRC检查布完差分对跑一次DRC。重点看几个报错差分对间距违规、长度差超标、未布线网络。如果长度差超标DRC会明确告诉你差了多少哪一对超了。根据提示去对应的差分对上做等长调节。DRC报告里的信息要仔细读它会指出具体的网络名和违规数值。不要看到一堆红叉就头大一条一条解决就行。5. 等长调节蛇形绕线的正确打开方式5.1 差分对内部等长的操作步骤差分对内部等长就是让P和N两根线长度一致。AD20提供了“Interactive Diff Pair Length Tuning”功能。操作路径是“Route”菜单下找到“Interactive Diff Pair Length Tuning”或者用快捷键。启动后鼠标移到需要调节的差分对上AD会显示当前长度和长度差。你点击一下然后拖动鼠标AD会自动在走线上添加蛇形绕线来增加较短那根线的长度。绕线的幅度、间距可以在调节过程中用快捷键调整。我常用的快捷键按“1”和“2”调整绕线幅度按“3”和“4”调整绕线间距按“Tab”键可以精确输入目标长度。这些快捷键在调节过程中屏幕下方会有提示多试几次就熟了。5.2 蛇形绕线的参数选择与信号完整性考量蛇形绕线不是随便绕的绕不好反而会引入信号完整性问题。几个关键参数绕线幅度即蛇形线凸起的高度。幅度太小绕同样长度需要更多弯折增加损耗幅度太大占用空间多还可能耦合到旁边信号。一般取线间距的3到5倍比较合适。绕线间距相邻蛇形线段之间的距离。这个值不能太小否则线段之间会产生耦合改变差分阻抗。经验上至少取3倍线宽。绕线区域尽量选在差分对末端或者空间充裕的地方绕不要在靠近接收端的地方绕避免引入反射。注意蛇形绕线会增加走线损耗和寄生参数高速信号能少绕就少绕。如果长度差本来就在允许范围内不要为了“完美等长”而强行绕线。5.3 差分对之间的等长处理除了P和N之间要等长一组差分对之间有时也需要等长比如DDR的数据组。这种等长调节在AD20里可以通过“Interactive Length Tuning”对单根线操作也可以对整个差分对操作。操作思路是先确定一组里最长的那对线然后其他对都以它为基准做等长。AD的等长调节工具可以显示当前网络长度和目标长度你根据差值来绕。这个过程比较繁琐建议用“Accordion”模式手风琴式绕线效率更高。5.4 等长结果的验证方法绕完之后怎么验证两个办法一是跑DRC看长度差是否在规则允许范围内二是在“PCB”面板里选中差分对查看实际长度。AD会显示每根线的总长度和长度差。我习惯两个都做。DRC确认规则层面没问题面板确认实际数值。有时候DRC过了但实际长度差接近临界值这种我会再微调一下留点余量。6. 常见问题与排查技巧实录6.1 差分对在PCB里识别不出来怎么办最常见的原因是原理图命名不规范或者没有添加差分对标识。排查步骤先在原理图里检查网络名是否成对且符合规则然后在PCB的“Differential Pairs Editor”里看有没有这对线如果没有手动添加或者回去改原理图。还有一种情况是网络名里包含了特殊字符或者空格AD识别不了。把网络名改成纯字母数字加下划线的格式通常能解决。6.2 布线时间距忽大忽小是什么原因这通常是规则冲突导致的。检查一下是不是有多个规则同时匹配到了这对差分对优先级高的规则覆盖了你的差分间距设置。另外如果差分对经过了不同层每层的规则可能不一样也会导致间距变化。解决办法在Rules里把差分对规则的优先级调到最高并且确认每一层的规则都设置正确。6.3 等长绕线后DRC仍然报长度差超标可能的原因有几个一是绕线没有真正增加长度比如绕线被DRC忽略了二是规则里的长度差限制设得太小实际做不到三是绕线区域选得不对AD没有把绕线算进去。排查方法在PCB面板里看实际长度数值确认绕线是否生效。如果绕线生效了但还超标说明绕得不够继续绕。如果规则设得太苛刻适当放宽到合理值。6.4 差分对过孔换层后的长度补偿过孔换层会引入额外的长度差因为两个过孔的位置不可能完全对称。补偿方法是在换层后对较短的那根线做等长调节。AD20在差分布线时如果启用了“Allow Via Stitching”之类的选项会自动尝试补偿但效果有限还是需要手动微调。我的经验是换层后先量一下两根线的长度差然后决定在哪一侧绕线补偿。补偿量不用太精确控制在规则允许范围内即可。6.5 常见问题速查表问题现象可能原因解决方向差分对识别不出命名不规范/无标识改网络名或加差分对标识布线时间距不对规则冲突/优先级问题调整规则优先级等长后仍报错绕线未生效/规则太严检查实际长度/放宽规则过孔后长度差大过孔不对称手动补偿较短一侧DRC报未布线差分对只布了一根补全另一根线7. 几个容易被忽略的实操细节7.1 参考平面的完整性差分对走线下方的参考平面必须完整不能有分割或者开槽。如果差分对跨越了平面分割回流路径会被打断差分阻抗会突变信号完整性直接崩掉。这一点在多层板设计里尤其重要布差分对之前先规划好平面。我一般会在布局阶段就把差分对经过区域的平面确认好避免布完线才发现跨分割那时候改起来就麻烦了。7.2 差分对与其他信号的间距差分对虽然抗干扰能力强但本身也会向外辐射。差分对与其他信号之间要保持足够的间距一般至少3倍线宽。如果是高速差分对间距还要加大。AD的规则里可以设置“Clearance”规则来约束这个间距。另外差分对之间也要保持间距避免相互耦合。特别是多对差分信号并行走线时对与对之间的距离要控制好。7.3 测试点的添加与影响调试阶段可能需要在差分对上加测试点。测试点会引入额外的寄生电容影响差分阻抗。如果必须加尽量选小封装的测试点并且对称地加在P和N上保持长度一致。我通常会在设计初期就规划好测试点的位置避免后期临时加导致等长被破坏。7.4 从原理图到PCB的完整检查清单原理图网络命名是否规范且成对差分对标识是否已添加工程编译是否无错误PCB中差分对是否已正确识别差分对规则是否设置且优先级正确布线间距是否符合阻抗要求长度差是否在允许范围内参考平面是否完整DRC是否全部通过这份清单我每次做差分对设计都会过一遍能挡掉大部分低级错误。8. 我个人的一些经验体会差分对等长这件事工具能帮你的是一部分判断还是得靠自己。AD20的交互式布线和等长调节确实好用但前提是你规则设对了、原理图定义清楚了。我见过太多人一上来就画线画完发现差分对没配对又回去改原理图来回折腾。另一个体会是不要迷信“绝对等长”。实际工程里长度差控制在一个合理范围内就行过度追求零误差反而可能引入其他问题。蛇形绕线绕多了损耗和耦合都会增加得不偿失。最后说一个实用技巧AD20里可以用“PCB”面板配合“Nets”视图快速查看所有差分对的长度和长度差比一个个去量快得多。这个面板在调试阶段特别有用建议养成习惯。差分对布线是个熟练活画得多了自然就有感觉。规则设好、流程走对、细节注意到剩下的就是多练。