
做差分对走线这几年我在AD20上踩过的坑比画过的板子还多。很多工程师觉得差分对布线就是把两根线并肩拉出去等长一调就完事真拿到板子回来测试眼图直接裂开。这篇就专门讲Altium Designer 20从原理图到PCB的完整差分对处理流程哪些地方容易出错、哪些参数必须提前设好、哪些操作顺序一步不能乱全给你捋清楚。不管是刚接触高速PCB的新手还是被差分阻抗搞得头大的老手这篇都值得花十分钟认真看完。1. 动手前先把概念理清楚为什么差分对不能随便画先说个我见过很多次的场景原理图上USB差分对直接拉线PCB上也没做阻抗控制测了半天发现USB枚举不稳定最后查下来就是两根线走得太随意。差分信号能够工作的前提是接收端通过两根线上的电压差值来判断逻辑外部共模干扰会被当噪声消除。但如果两根线不等长、间距忽大忽小、参考平面不连续这个“差值”就被破坏了抗干扰能力直接报废。1.1 差分信号在高速电路里解决了什么问题可以把差分信号理解成两个人抬着一根杆子走路只要两个人步调一致杆子始终保持水平外部来的风共模干扰再大杆子依然接近水平接收端看的是杆子的倾斜度不是绝对高度。USB、以太网、HDMI、LVDS这些接口都是这个思路。相比单端信号差分对在抗干扰、抗地弹、降低辐射上有天然优势代价就是布线时必须保证两根线的一致性。用单端走线的方式处理差分对等于自己把对称性破坏了。特别是参考平面被分割的地方回流路径断开差分信号会去找别的路整个回路的环路面积变大辐射和串扰一起进来。这就是为什么原理图阶段就要把差分对标识清楚PCB阶段才能真正按差分规则去约束。1.2 差分对布线的三个核心指标阻抗、等长、耦合PCB布线时每根走线都是一个传输线都有特征阻抗。差分对不仅要控制单端阻抗还要控制差分阻抗也就是两根线作为一个整体看过去的阻抗。影响阻抗的核心是线宽、线距、铜厚和介质厚度。等长则是为了让差分信号的正负两端同时到达接收端时序误差过大直接影响信号稳定性。耦合描述两根线之间的电磁相互作用线距越近耦合越强但也不是越近越好过度耦合会让制造公差变得更敏感生产一致性变差。这三个指标不是相互独立的。比如把线距拉近差分阻抗就会下降把线宽加粗单端阻抗也会下降。高频设计要求工程师在规则设置时就定好线宽线距组合不要指望画完再改后面每一根走线都要受这套规则约束。提示AD20里差分对规则默认不是全局生效的新建项目还是要单独设置并检查规则优先级否则经常出现“规则写了但根本没用到”的尴尬情况。2. 原理图阶段就该做的三件小事很多工程师习惯把差分对的事全部留给PCB阶段原理图里就随便一画。结果导入PCB之后网络没有配对规则匹配不上全部手工操作。其实原理图阶段只要做对三件事后面能省太多时间。2.1 网络命名规范一句话决定后续自动识别是否顺利AD20识别差分对靠的是网络名称的后缀。正端网络名和负端网络名要成对出现一般用下划线加P/N区分比如USB_DP和USB_DN、ETH_RX_P和ETH_RX_N。AD20的字符匹配逻辑会看网络名主体是否一致再通过后缀的正负标识自动配对。如果一个人叫USB_P另一根叫USB_N配得上如果叫PA、PB还夹着其他信号AD20只会觉得你是在给它出难题。确切地说在AD20的Project Options里可以配置差分对匹配规则。菜单路径是Project - Project Options - Options里面可以自定义正负极后缀字符串。默认匹配_P和_N也支持_POS和_NEG这类写法但建议全项目统一。物理意义上正负端怎么称呼不重要命名一致是关键。2.2 放置差分对指示符并确认配对网络命名一致后原理图里还要显式告诉Altium“这两条网络是一对差分信号”。做法是放置差分对指示符Place - Directives - Differential Pair然后把指示符分别放在正负两条网络引出线上。关键点在这里指示符放置后AD20会自动把这两条网络在工程里关联为一个差分对名字通常是正负网络名的公共部分。比如正端叫ETH_RX_P负端叫ETH_RX_N那这个差分对名字就是ETH_RX。编译原理图之后在Differential Pairs编辑器里就能看到所有已识别的配对。如果这里没配对成功进PCB后根本调不出差分走线规则。2.3 在PCB中检查差分对是否被正确识别原理图编译通过只说明逻辑没问题真正导入PCB后还要在PCB面板里检查一下Differential Pairs列表。常见问题是导入后差分对变空白原因是原理图中指示符没放对位置或者网络后缀不匹配。检查方法很直接打开PCB面板切换Differential Pairs编辑器看列表里有没有自己需要的配对名称。如果缺少回到原理图重新放置指示符再编译导入一次。另外还要确认一下网络名有没有被重命名有些工程师喜欢在导入时改网络名后缀一变差分对识别就失效了。每次导入后花三十秒检查这个列表比后面布完线再返工省事得多。3. 布线规则设置是关键中的关键原理图阶段完成后PCB布线前要做的最重要事情是规则设置。差分对规则不够细布线就是无头苍蝇规则优先级设错设了等于白设。AD20里差分对相关的规则主要集中在High Speed规则大类下的Differential Pairs Routing。3.1 线宽/线隙和阻抗的关系为什么要算很多人知道100欧差分对直接拿来就用但线宽线距到底多少才能得到100欧这个必须根据具体叠层算。外层微带走线与内层带状线差异很大介质厚度、铜厚、绿油厚度都会影响阻抗结果。同一套线宽线距参数换个板厂或者换叠层阻抗就完全变了。拿常见的四层板举例表层走差分线层叠是顶层/地层/电源层/底层FR4介质板厚1.6mm表层到内层参考平面约0.18mm。用极速阻抗模型粗算100欧差分阻抗对应的线宽大约0.15mm线距大约0.15mm。换成内层走线介质厚度、参考平面距离都不同线宽线距几乎要重新选一遍。AD20配合阻抗计算工具如Saturn PCB Toolkit或Polar SI9000能更快确定参数。注意规则里填的线宽线距数值第一次定好后先用阻抗工具验证别只依赖所谓“经验值”。板厂最终加工精度会影响实际阻抗通常还要给板厂提阻抗控制要求让工厂按目标阻抗微调。3.2 PCB规则设置实操差分对规则放哪个优先级AD20中设置路径是Design - Rules - High Speed - Differential Pairs Routing。这里可以设置差分对走线的Min Width、Preferred Width、Max Width和Clearance。我一般先把Preferred Width设成阻抗计算值Clearance即线到线的距离也按计算值填好。真正容易出问题的是规则优先级。AD20的规则引擎会同时匹配多条规则如果同时存在一个适用所有网络的Width规则和一个只适用某一差分对的Differential Pairs Routing规则最终生效的要看优先级排序。默认情况下对象范围越具体的规则优先级越高但项目里历史遗留规则多了之后新加的规则很可能没有排到前面。设置完之后用Design - Rules - 右下角的Priorities按钮确认Differential Pairs Routing排在覆盖该网络的Width规则之上。否则表面上你在差分规则里填了0.15mm实际布线时走出来的还是别的那套0.2mm阻抗完全对不上。这种情况我遇到不止一次。3.3 等长约束把容差写在规则里别只靠眼睛等长是所有差分对操作的另一个重点。AD20里有专门的Matched Lengths规则路径在Design - Rules - High Speed - Matched Lengths。这个规则可以设定一组网络的目标长度和容差比如目标长度50mm容差±0.127mm即±5mil。设置等长规则时把同一组差分对的正负网络加进去AD20就能在布线时实时显示长度差。容差的设定要根据接口标准来常见USB 2.0差分对内等长一般控制在5到10mil以内更高速的接口要求更严DDR、PCIe这类往往要到±1到3mil具体参照对应芯片手册的要求。长度是物理长度还是电气长度也要分清楚。AD20里支持按走线物理长度匹配也支持考虑过孔延迟的电气长度匹配过孔较多的板子要留意这一点。我一般先在Matched Lengths规则里把容差写死后面调蛇形线时以规则为准DRC报错就是没对齐对齐了就绿灯不用肉眼比。4. 实际操作中的走线动作和调整规则设置完成导入到PCB的元件和网络都就位了才是真正开始走差分线的环节。这个环节每个人的习惯不同但核心动作就那几个。4.1 交互式差分对布线怎么用两条线一起走AD20布线时对差分对要走专门的交互式布线命令而不是先拉一根再拉另一根。调用方法是按下快捷键P I或者点击菜单Route - Interactive Differential Pair Routing。命令激活后点击差分对中任意一个焊盘两条线会一起拉出来通过一个“推车”一样的方式同时移动这才是真正的差分对布线。走线过程中按Tab键可以调属性比如设置线宽线距或者让AD自动使用规则中的Preferred Width。有时候画着画着发现线宽不是预期值先停下来检查是不是当前规则的优先权没生效而不是继续往下画。ShiftW可以快速切换线宽但实际项目中我很少手动切直接让规则控制不然DRC永远过不了。差分对走线转弯时两根线的切角走圆弧Arc会比直接切45度角更好圆角能减少阻抗突变。AD20中默认支持圆弧角走线在交互布线状态下按ShiftSpace可以切换布线拐角模式切到45度带圆弧的模式即可。圆弧半径不要太大能容纳于线距空间内就好。4.2 等长调整蛇形线加在哪里才安全两根线拉完后长度差几乎必然存在需要加蛇形线来补齐短的那根。选中较短的差分网络使用Interactive Diff Pair Length TuningAD20会自动沿着这根线生成蛇形绕线并实时显示长度是否已匹配到目标范围。蛇形加在哪个位置有讲究。首选在信号经过的中间段离接收端尽量远一点不要一上来就在连接器旁边来回折叠。蛇形振幅也就是蛇形凸出的宽度不要太大一般为线距的3到4倍以内太大容易与旁边网络形成平行长距离耦合引发额外串扰。间距也要检查蛇形线与自身相邻段之间必须有足够距离否则会产生自耦合。调试时如果蛇形线总是不跟随鼠标或者撑爆周围空间可以调一下Tuning的Style和Amplitude参数。A振幅和S间距快捷键可以直接调。等长完成后DRC会实时显示剩余误差值目标是误差归零或者小于规则容差。4.3 这一阶段的常见坏习惯跨分割、过孔换层、突然变窄做差分对时参考平面完整是底线。如果底下的地层被电源分割、被其他走线掏空差分线的回流信号就要绕路阻抗发生突变。跨分割线在低速下可能没事高速下就是眼图杀手。布线前先把层叠规划好差分网络尽量走在完整的地平面上方。过孔换层也是阻抗突变点。差分对不是不能打过孔而是要成对打正负两根线尽量在同一位置换层保持长度一致。过孔旁边加一个回流地过孔能显著降低换层带来的回路面积增加。换层后线宽如果变了比如内层外层阻抗不同需要调宽必须在规则里提前设好别走完再改。突然变窄指的是同一根差分线中间某一段因为避让过孔或焊盘被强制改成了比规则值小很多的宽度。这个往往是布线时的临时避让画的时候觉得只有一小段问题不大可在高速信号里哪怕是2mm的阻抗突变也可能产生反射。该绕就绕该换层就换层别硬挤。5. 检查与制造输出验证和流出之前必须做的几件事很多板子画完直接导Gerber发板直到板厂打电话问阻抗线到底按哪个规则做才发现规则早就冲突了。我一般是按“网络检查 - 长度报告 - DRC - 加工文件”这个流程走每步都花不了几分钟但能少很多坑。5.1 用报告和DRC把关差分对质量AD20里Reports菜单下可以生成各种报告最有用的两个是Board Information和相应的长度报告。在PCB面板中查看差分对列表时能看到每一组的实际长度差配合Reports - Measure能快速确认最关键的几对是否满足要求。DRC检测范围要在Design Rules Checker里打开High Speed相关检查项确保Differential Pairs Routing和Matched Lengths都被勾选。运行DRC后如果某对差分线违反等长约束会直接报错并定位到具体网络。这个环节把漏检降到最低。需要注意DRC默认不会所有规则全开尤其是新加的差分规则必须确认它们被纳入了检查范围。5.2 Gerber输出前的注意事项制板文件导出时不少人会漏掉差分阻抗相关的说明。Gerber文件本身只包含图形信息板厂并不知道哪部分线是差分对、目标阻抗是多少。建议在制板说明文档中明确列出需要控制的差分对网络名目标差分阻抗值期望的参考平面层同时文件包里附上叠层结构图。AD20的OutJob文件可以一键生成Gerber和钻孔文件把压制信息和钻孔信息一次性输出。如果板厂反馈某对差分线间距不符合制程回到规则里微调后重新出图不要直接在Gerber上改。5.3 拼版与板边设计别忘差分对PCB拼版Panelization阶段也要留意差分网络。拼版时如果走线跨越了V割线或者差分对靠板边太近加工应力会影响走线阻抗。板边预留足够宽度差分网络尽量不靠近拼版边界。AD20的拼版功能在Edit - Special Paste可以逐条复制粘贴也可以用专门的拼版工具但核心就一条拼版改变的是外形和定位不能改变原有走线结构。6. 常见问题速查表与避坑心得操作过程中总会遇到各种奇奇怪怪的问题整理成表格方便快速对照。下面这些情况都是我实际碰到过的不是泛泛而谈。现象可能原因解决方法编译原理图报错“Unknown Pin”符号引脚编号与封装焊盘编号不一致检查原理图库符号的Pin Designator与PCB封装的Pad Designator是否一一对应导入PCB后差分对列表为空原理图中未放差分对指示符或网络命名后缀不规范放置Differential Pair指示符确认正负网络名以_P/_N结尾布线时线宽不符合差分规则规则优先级错误其他宽度规则覆盖了Differential Pairs Routing打开Rule Priorities把差分规则优先级提高差分线等长DRC一直报错等长容差设置太严或蛇形振幅调整不到位检查Matched Lengths容差动态调整蛇形线参数观察长度指示器换层后差分阻抗突变过孔没有成对布置或过孔旁缺少回流地过孔差分对双孔同位置换层附近增加地过孔板厂反馈差分间距太小无法加工线距设置低于板厂最小制程结合阻抗要求适当增大线距重新仿真阻抗后更新规则差分对经过接口区段后线宽异常规则中可能存在相同对象范围的设置覆盖用Where The Object Matches检查所有生效规则清理冗余rule6.1 关于Unknown Pin的一个细节补充“AD20 unknown pin”是很多新手经常搜的词。这个报错大多数情况下不是差分对的问题而是原理图符号的引脚编号和封装焊盘的编号对不上。画差分器件时尤其常见比如USB连接器的原理图引脚和PCB封装脚位编号不一致导致导入网表失败。排查思路很直接打开原理图库选中出错元件查看Pin Designator再打开PCB封装库查看Pad Designator两个编号必须完全一致。差分器件引脚数量多往往还要区分正负顺序真改起来比想象中费时间。6.2 过孔处的处理心得差分对换层时我习惯在正负过孔的正中心加一个地过孔三者形成一个稳定回路。这相当于给高速信号的换层动作配了一条近回路路径回流电流不需要绕大圈。如果空间不允许做三角分布至少保证两个换层过孔贴近布置并在它们旁边放一个地过孔。差分管脚间距很小的场景更要注意过孔尺寸别把焊盘附近的铜皮切得太碎。6.3 蛇形线的长度估算方法做等长调整时我习惯先按蛇形波的几何公式估算需要加多少长度鼠标拖出来才不至于来回试很多次。每个完整的凸起带来约两倍振幅的长度增量具体还和间距有关。实际操作中AD20有实时长度显示配合Total Length和Delta Length提示基本不用手算但知道原理有助于快速调节振幅和间距。蛇形线不是越多越好多一组就多一段耦合区能用一段绕线解决就不要绕两段。7. 最后分享两个项目落地的小技巧项目做得多了我存款最多的是把规则文件积累下来。AD20可以把当前PCB的规则导出成一个.DRL文件新项目直接导入线宽线距、等长容差、差分规则全部复用省掉大量重复劳动。每个项目板厂反馈的最佳阻抗参数也会回写到规则库里下一版直接受益。另外画完差分对后我总会多点一遍Board Insight面板。开启Length Tuning相关显示后每对差分线的长度差会直接在板子上以悬浮标签显示一眼就能扫出哪几对需要调整。这个视图不要关布线时实时监看比最后统一跑DRC再回头改高效得多。差分对从原理图到PCB走线流程并不复杂每一步都有固定套路但每步的坑都是真实生产验证过的。规则优先级、网络命名、等长容差、过孔回流区这些细节比单纯把走线画漂亮重要太多了。希望这篇Altium AD20差分对走线指南能帮到你少走一次弯路。