☰
Altium Designer 20差分对走线全攻略:从原理图到PCB的完整实践
2026/10/7 13:11:42 网站建设 项目流程

1. 为什么差分对走线在AD20里这么容易翻车

做高速数字电路设计的朋友都知道,Altium Designer 20 里最让人纠结的一类走线就是差分对。USB、以太网、MIPI、LVDS、HDMI,这些接口一旦跑起来,一对差分线没处理好,整板的信号完整性问题全来了。很多人把差分对做成两根平行的线就觉得万事大吉,结果阻抗不连续、时序偏差、EMI超标,最后回来查问题,发现从原理图标识阶段就埋下了雷。这篇教程我就把 Altium Designer 20 差分对走线的完整链路拆开讲一遍:从原理图怎么命名、怎么放置差分对标识,到PCB里差分对编辑器怎么用、差分对规则怎么设,再到交互式走线和等长绕线的实操手法,一次说透。

在开始之前,先给大家一个整体认知:AD20的差分对设计不是"画两根线"这么简单,它背后有一条完整的工具链——原理图阶段必须用_P/_N后缀把网络名定义清楚,再用差分对指令告诉软件"这两个网络是一对";PCB阶段要经过差分对编辑器收集网络、规则匹配、阻抗参数设计;最后才是手动布线。任何一个环节漏了,后面都会以各种诡异的方式报错。我见过太多人卡在"原理图标了差分对,PCB里却没有差分对"这个坎上,其实就是对这条工具链的运行机制理解不到位。

1.1 差分信号的本质:为什么我们非要折腾这一对线

先花一分钟说清楚差分信号是什么,这是后面所有设置的理论基础。差分信号是指在一对导线上传输两个等幅反相的信号,接收端比较的是两个信号的差值。比如发送端送出的是+1V和-1V,接收端读到的就是2V的电平差。这种传输方式天生抗共模干扰——外部噪声如果同时叠加到两根线上,差值基本不受影响——而且回流路径非常明确,对地平面的依赖比单端信号小得多。

这里面有个核心参数叫差分阻抗,也就是这对线在传输过程中呈现的阻抗特性。差分阻抗不是单独看某一根线的阻抗,而是由线宽、线间距、铜厚、介质层厚度和介电常数共同决定的。同样的叠层,两根线离得越近,差分阻抗越低;线越宽,阻抗越低。这也是为什么差分对规则设置里最重要的两个参数就是线宽(Width)和间距(Gap),它们直接决定了你做出来的板子阻抗是不是符合USB或者以太网要求的90Ω、100Ω。

所以你在AD20里设置差分规则时,心里要清楚:这些数字不是随便填的,它们最终会在板厂那里接受阻抗测试的检验。后面我会给出一套实际的参数经验值,但更重要的是理解它们为什么这么定。

1.2 AD20中差分对设计的完整链路:从原理图到PCB再回到规则

为了不让大家迷失在细节里,我先把AD20差分对设计的整体流程列出来,后面每一章对应一个环节:

  1. 原理图中把配对的两个网络命名为USB_P和USB_N这样的格式,并放置差分对指令。
  2. 编译工程后,把原理图变化更新到PCB文档。
  3. 在PCB的差分对编辑器中确认差分对已经存在,必要时手动补建。
  4. 在PCB规则中为这些差分对设置线宽、间距、等长约束。
  5. 使用交互式差分对布线工具实际走线。
  6. 走完线后使用等长调节工具做对内、对间等长补偿。
  7. 跑DRC,检查差分对相关的间距、长度、阻抗约束是否全部满足。

这套链路里最容易被忽略的是第1步。很多人直接在PCB里手工画两根线,虽然也能画出来,但画出来的线不会被AD识别为真正的差分对,后续的等长调节、规则匹配全都用不上,DRC也不会把关,那跟普通平行线没区别。

2. 原理图阶段就把差分对"钉死":命名与标识的正确姿势

原理图阶段的差分对处理是整个链路的地基。这一步做对了,PCB阶段能省掉90%的麻烦;做错了,后面全是坑。

2.1 网络命名硬规则:_P/_N后缀不能乱来

AD20默认通过网络名的后缀来识别差分对的两根线。一个差分对由两个网络组成,正端网络以_P结尾,负端网络以_N结尾,且除了后缀之外,前半部分必须完全一致。下面这个表是典型的正确命名和错误命名:

类型正端网络名负端网络名说明
正确USB_PUSB_N前半段都是USB,后缀_P/_N
正确ETH_TX_PETH_TX_N带功能前缀也可以
错误USB_PUSBN少了下划线,AD识别不了
错误USB_PUSB_N_1后缀不标准
错误USB_PUSB_NEG只有正端是对的,负端后缀不对

这个命名规则可以在Project Options里调整,但我强烈建议不要改,就用默认的_P/_N。原因很简单:保持工具默认行为能让你避免很多莫名其妙的问题,而且原理图库里的符号、别人的图纸、第三方生成的网表,九成都是按这个规则来的。

2.2 放置差分对指令:让软件知道"这两根线是一对"

命名只是前提,真正把两个网络"绑定"成差分对的动作是放置差分对指令。操作路径是:Place >> Directives >> Differential Pair,或者用快捷键P V D。执行后光标会带着一个菱形符号,把它放在你要定义的那两个网络附近,按Tab键打开属性面板。

在属性面板里,你需要关注三个字段:

  • Net Name:这个差分对的名字,比如USB,注意这里不需要带_P、_N后缀。
  • Positive Net:正端网络,选择USB_P。
  • Negative Net:负端网络,选择USB_N。

设置好后,把这个菱形符号放到两个网络标号的引脚区域,它会自动覆盖到这条网络线上。放置完成后,原理图上会出现一个带箭头的菱形标记,示意这个区域的两个网络构成一个差分对。

这里有一个经常被问到的点:是应该先放网络标签再放差分对指令,还是先放指令再放标签?我的习惯是先把两个网络标签分别放到对应的引脚上,确保网络名已经正确连接了,再放差分对指令。原因是差分对指令本身不负责创建网络,它只是告诉AD"这两个已存在的网络是配对的",所以先有网络,再绑定关系,逻辑上不会出错。

放完指令后,一定要执行一次项目编译(Project >> Compile PCB Project),然后打开Message面板确认没有差分对相关的报错。常见报错是"Net USB_P has no differential pair"之类的,这说明其中一个网络的配对关系没建立成功,多半是命名不匹配或者指令没有覆盖到网络。

如果你用的是比较新版本的AD20,原理图库里也可以直接给引脚分配差分对属性,但那是库设计层面的高级操作,常规项目在原理图上放指令就够了,不用把问题复杂化。

3. PCB里的三个设置关卡:差分对编辑器、规则类、等长规则

原理图阶段的工作完成后,更新PCB文档,差分对信息才会跟着网络一起进入PCB。但很多第一次做差分对的人,打开PCB后一脸懵:差分对到底跑哪去了?规则在哪设?宽度和间隙怎么填?这一章我把PCB里的三个关键关卡逐个讲清楚。

3.1 差分对编辑器:查看、验证、手动补建

在PCB编辑界面下,通过菜单PCB >> Differential Pairs Editor打开差分对编辑器。这个面板会列出当前PCB文档里所有被识别为差分对的网络组。你也可以在右侧面板栏里切换到PCB面板,在下拉列表里选择Differential Pairs Editor。

在这个编辑器里你能看到每个差分对的名字、正端网络、负端网络、以及当前的线宽和间距数值。用它的核心目的有两个:

第一,验证原理图的差分对设置是否完整传递到了PCB。如果列表里缺少某个差分对,说明原理图阶段漏标了,或者更新PCB时没有勾选差分对变更项。这种情况下,你可以直接在编辑器里手动添加:右键选择Add,然后在弹窗里手动选择正端网络和负端网络。但我要提醒一句——手动补建是补救手段,不是常规手段。原理图才是设计的源头,PCB里补建的差分对在下次工程变更时有可能被覆盖掉,治标不治本。

第二,统一查看所有差分对的当前参数。在这里你能直观地看到差分对的Width和Gap,如果发现某些差分对显示的值和预期不一致,说明它们的匹配规则没有生效,排查方向就指向规则设置,而不是继续在编辑器里改。这里显示的参数只是报告当前实际值,修改的主战场在规则编辑器里。

3.2 差分对布线规则:线宽、间隙与规则优先级

真正的参数设置发生在Design >> Rules里。打开规则编辑器后,定位到Routing >> Differential Pairs Routing这个规则条目,这是AD20专门为差分对布线设置的规则项。

双击现有规则或新建规则后,你会看到两个关键区域:

Where the First object matches:这决定了规则作用范围。默认是All,意思是对所有差分对都生效。但如果你同时有90Ω的USB差分对和100Ω的以太网差分对,就不能用All一把抓,而是要用Custom Query或网络类来区分。比较实用的方式是先在Design >> Classes里建一个网络类(比如叫DIFF_100R),然后把以太网相关的差分对网络全部拉进去,规则匹配方式选Net Class,指定为DIFF_100R。这样USB和以太网就能各自享受不同的线宽间距。

Constraints:这里是最核心的参数区。你需要关注以下字段:

参数含义建议初始值
Min Width最小线宽按阻抗计算结果设定,比如4mil
Preferred Width首选线宽与期望阻抗对应,比如5mil
Max Width最大线宽比首选宽1-2mil
Min Gap最小间距按阻抗计算结果,比如8mil
Preferred Gap首选间距与期望阻抗对应,比如8mil
Max Gap最大间距比首选宽2-4mil
Min Coupled Length最小耦合长度差分管脚应尽量保证耦合,通常设为10-20mil

为什么Width和Gap要区分Min/Typical/Max三档?因为实际布线过程中,你会在转角处、过孔附近、遇到障碍物时被迫调整线宽和间距。AD20允许你在当前规则范围内滚动调整(后面布线章节会讲到),超出这个范围就会报DRC错误。这三档就是你给布线操作划定的"允许区间",区间越窄,阻抗一致性越好,但布线难度也越大;区间越宽,操作空间大,但信号质量没保证。

规则优先级是另一个大坑。差分对规则和普通的Width规则、Clearance规则之间是有优先级关系的。AD20按规则列表中从下往上的顺序逐级匹配,优先级从上到下递减。如果某个网络既匹配单端Width规则又匹配Differential Pairs Routing规则,而差分对规则的优先级更低,实际走线时AD会采用单端Width规则的线宽,导致差分对线宽完全失控。正确的做法是把差分对规规则拖到所有普通Width规则之上,或者在规则编辑器左下方的Priority按钮里点击调整优先级。

3.3 对间等长规则:多组差分对同时满足长度约束

除了对内等长(这个第四章走线时详细讲),多组差分对之间的长度匹配也是一个高频需求。比如并行传输的LVDS总线,或者某些控制器要求多对差分信号延迟一致。

AD20提供了一条专门的规则:High Speed >> Differential Pairs Matching(在部分版本中叫Differential Pairs Matching)。这条规则的作用是把多组差分对约束在同一个长度允许范围内。新建规则后,匹配对象选All或者特定网络类,然后设置:

  • Tolerance:允许的最大长度偏差,常见0.5mm~1mm,要求高的系统可以设到0.25mm。
  • Rule Scope:选择哪些差分对参与匹配,通常选网络类。

这个规则设置好之后,你在DRC阶段就能看到哪些差分对超出了等长范围,非常直观。如果项目中只有一两对差分信号,不涉及多对间等长,那这条规则可以不设,重点放在对内等长上。

4. 亲自上手:从第一根差分对到等长绕线的完整操作

规则全部设置好之后,接下来就是最让人兴奋也最容易出问题的实际操作环节。这里的操作手感很重要,很多知识点是改过几版板子之后才真正理解的,我尽量把细节一次讲透。

4.1 交互式差分对布线:入口、快捷键与操作手感

差分对布线不能像画普通单端线那样一根一根画,那样很难保证两线同步换层、同步拐弯。AD20专门提供了差分对布线工具,位于Place >> Interactive Differential Pair Routing,快捷键是P I。启动命令后,光标靠近任意一个差分管脚,如果这个网络已经被正确识别为差分对,光标下面会同时带上两根线——正端和负端,间距和线宽自动按规则里的Preferred值显示。

布线的过程中,下面这些快捷键直接决定效率和结果:

  • Shift+R:切换布线模式,包括推挤走线、绕障走线、忽略障碍等。差分对布线最常用的是Push模式,后面的线会被自动推开,保持间距。
  • 逗号和句号:切换差分对的线宽和间距(会在规则允许的Min/Max范围内切换组合),实时调整,方便你在主线上用一个值、在过孔区域用另一个值。
  • 星号(*)或小键盘+/-:切换信号层,换层时AD会自动为两条线各添加一个过孔。
  • Ctrl+Shift+滚轮:同样可以切换层,但会把滚轮操作映射到换层,比按星号直观一些。
  • Backspace:撤销上一段走线,从上一个拐点重新拉。

实际操作中最重要的一条经验是:起线时先让光标吸附到引脚中心,确认两根线同时出现,再开始走。如果只出现一根线,说明这个引脚对应的网络没有被识别为差分对的一部分,停下来检查网络名和差分对指令,不要硬着头皮走。我见过太多人强行走完回头一看,负端线在另一层或者根本没连上。

在走线过程中还要注意,两条线应尽量平行、等长、保持恒定间距。遇到90°转角时,AD默认会切成45°斜角和圆弧的组合,这是合理的,因为直角会产生严重的阻抗突变。不要刻意取消这个行为。在狭窄区域确实需要拐90°时,尽量把转角处的Gap稍微拉大一点,缓冲阻抗变化。

4.2 换层、过孔与差分对的对称性控制

差分布线换层是信号完整性出问题的高发区。一对差分线在换层时,两个过孔必须保持与走线相同的间距对称放置,不能一个过孔在左边一个在右边。AD20在你使用差分对布线工具换层时会自动把两个过孔按当前间距放置,但前提是过孔自身的大小和间距符合规则要求。

几个值得注意的点:

  • 换层前,先确认目标层的参考平面完整。如果信号从顶层换到底层,顶层和底层都要有连续的地平面,否则回流路径被切断,差分信号就变成单端信号了。
  • 换层的那一小段短线,尽量走垂直方向(与主信号流向呈90°),减少参考平面切换引起的回流突变。
  • 过孔不能打在差分线Gap的中间位置,这会破坏耦合结构。

完成一对差分线的布线后,建议立刻按L键(或者View >> Flip Board)翻转板子看一眼过孔位置是不是对称的。这个检查动作30秒就能做完,但能帮你省掉一次信号测试时才发现问题的返工成本。

4.3 等长绕线:对内、对间的实际操作

差分对内两线长度不一致,会导致接收端的差分信号出现共模分量,严重时直接判错数据。所以布线完成后,等长调节是必备操作。

AD20的等长调节工具入口在Route >> Interactive Differential Pair Length Tuning(快捷键T R)。启动后点击已经布好的差分对中的任意一条线,AD会自动识别整个差分对,弹出一段等长调整预览。

在调整面板里,最重要的设置是Target Length(目标长度)。你的目标长度应该设为这对差分线中最长的那一根的长度,因为等长调节只会让短线变长去追长线,不会把长线缩短。实操的时候,我习惯先选中这个差分对,打开PCB面板查看当前两根线的实际长度,然后取较大值加上0.1mm左右的余量作为Target Length。

接下来是绕线的具体操作:

  • 走线从一端开始,沿原路径拖动,AD会在你拖动的路径上自动生成蛇形绕线。
  • 按Tab键循环切换绕线形式,包括经典的U型蛇形、菱形绕线、锯齿形等。USB、以太网这类对串扰敏感的信号,首选U型蛇形。
  • 按数字键1、2、3调节绕线的振幅(平行段的间距),按减号和等号键调节绕线间距。
  • 绕线的实时长度会显示在光标旁,长度达到Target Length目标值后,颜色会从红色变为绿色,这时候按右键结束这一段绕线。

绕完后记得再跑一次Tools >> Length Tuning面板确认最终长度在公差范围内。

对间等长(多个差分对之间等长)的操作和这个类似,区别在于目标长度要设为所有参与匹配的差分对中最长的那个。你可以先逐个记录每对差分线的长度,找出最大值,然后把每一对都按这个值绕一遍。这个过程比较机械,但多对并行信号绕完之后,DRC里那排等长报错一次性全消掉的爽感,还是很值得的。

5. 高频翻车现场与排查手册:这些坑我当年每个都踩过

最后这部分,我把自己和身边同事在差分对设计里踩过的坑整理成一份排查手册。大家看完之后如果也遇到类似问题,直接对照来查,比翻文档快得多。

5.1 原理图里标了差分对,PCB里却没有

现象:在原理图里放置了差分对指令,网络名也是标准的_P/_N,但更新到PCB后打开差分对编辑器,列表里空空的。

排查链路:

  1. 先检查原理图编译是否通过了差分对校验。编译后Message面板如果出现"Net ... is not matched with a differential pair"的警告,说明指令没放对位置,或者指令属性里Positive Net/Negative Net与实际网络名不一致。
  2. 执行Design >> Update PCB Document,在工程变更对话框中仔细看列表中是否有Add Differential Pair这一项。如果没看到,说明AD认为这次更新不需要新增差分对。比较常见的原因是之前更新过一次,但那次更新没有勾选差分对,之后重新更新时AD只检测到网络变化而没有检测到差分对新增。
  3. 确定原理图确实没问题的前提下,最稳的做法是:先编译器编译工程,然后执行Design >> Update PCB Document,在弹出的对话框左下角点击Validate Changes和Execute Changes,确保所有变更项被正确执行。

这条排查链路是标准化的,如果走完还是不行,再考虑在PCB差分对编辑器里手动添加。但手动添加相当于绕过程序校验,后续DRC只能查规则,查不到差分对关系本身是否完整。

5.2 差分对规则设置了但不生效

现象:规则编辑器里Differential Pairs Routing设置得很漂亮,线宽5mil间距8mil,实际走线时却自动变成了10mil的普通宽度,或者DRC一直报错说Gap不满足。

排查链路:

  1. 先确认规则作用范围是否包含了你要布的差分对。如果你在Where the First object matches里选了某个网络类,而这个类里没包含对应网络,规则自然不生效。最快验证方法是在规则的Custom Query里输入HasDifferentialPair('USB'),手动指定匹配的差分对名。
  2. 检查规则优先级。规则编辑器右下角的Priority按钮打开后,看Differential Pairs Routing在列表中的位置。差分对规则必须排在普通Width规则和Clearance规则之上(也就是列表靠上位置,优先级数字更小)。否则网络同时满足两条规则时,优先生效的可能不是差分对规则。
  3. 检查是否同时存在多条Differential Pairs Routing规则。AD20允许多条规则作用于同一个差分对,但只有优先级最高的那条会生效。建议每个差分对只保留一条匹配规则,避免混乱。

5.3 差分对走线变灰或变绿,DRC报错

现象:布线过程中或者走完线后,差分对变成灰色或绿色高亮,DRC报出大量Clearance Constraint Violations。

排查链路:

最常见的原因是普通Clearance规则和差分对Gap规则冲突。差分对内两根线的距离通常只有8mil甚至更小,但你在单端Clearance规则里填的Min Clearance可能是10mil。如果两条线被识别为两个普通网络而不是差分对的一部分,DRC就会按Clearance规则去查,报错没商量。

解决办法是在Clearance规则里增加一条针对差分对网络的豁免规则,或者把差分对网络的最小间距要求单独降低。如果你不想改Clearance规则,更简单的办法是把差分对规则比Clearance规则优先级调高,同时保证差分对网络确实被差分对规则匹配到了。AD在计算DRC时,如果网络属于差分对,会优先使用差分对规则的Gap进行计算,而不去套用普通Clearance。

另外还有一种情况:走线过程中不小心切换到了单端布线模式(有些版本快捷键容易按错),导致一根线走成了普通走线,另一根还在差分对模式里。这时候Vio一定会出现问题。检查方法就是看光标下是不是同时带着两根线,如果不是,按Shift+R切回差分模式重走。

5.4 差分对等长但阻抗仍然不达标

现象:长度明明匹配了,Gap和Width也按规则设置了,但板厂反馈阻抗测试不合格,或者实测眼图不过。

排查链路:

  1. 先算一下你是不是把单端阻抗和差分阻抗搞混了。很多新手会用单端50Ω的经验值去设计差分线,导致差分阻抗完全不对。差分阻抗通常是单端阻抗的两倍左右,100Ω差分对应50Ω单端,但叠层不同会有差异。
  2. 检查有没有跨越参考平面分割。哪怕是一条完美的100Ω差分对,如果某一段走线的参考地被分割了,这一段阻抗就变了。注意过孔旁边的地过孔留下的反焊盘空隙,这些也会破坏参考平面连续性。
  3. 线宽和间距是不是在转角处被默认改了?AD20在拐角处自动调整线宽间距的功能在一些版本里默认是启用的,如果转角处的Gap被撑大,阻抗会上升一小段。可以在Rule里把转角处约束改成保持Gap不变,或者绕线时减少直角。

这条其实不是纯AD操作问题,更多是设计习惯问题。我从自己打样回来的阻抗报告得出的结论是:差分阻抗不是软件里填对了就行的,最终要以板厂的叠层和阻抗测试为准。正规做法是发板前把叠层和阻抗要求发给板厂,让板厂给你算出匹配的线宽间距,然后你在AD规则里按板厂的建议值填写,再发板。这个顺序反了,大概率会多花一次打样费。

6. 收尾前再说几句大实话

差分对走线在Altium Designer 20里其实不复杂,复杂的是理解它背后这套"原理图标识 + PCB规则 + 交互布线"的联动逻辑。只要记住三个关键词:命名规范、差分对指令、规则匹配,整个流程就能串起来。新手最容易翻车的地方,恰恰是在原理图阶段图省事,把全部希望寄托在PCB的手动操作上。真正做过几块高速板之后,你会发现原理图阶段的30秒标识工作,比PCB阶段花半小时去排查问题划算得多。

我个人现在布差分对,已经形成了一套固定习惯:原理图放置差分对指令后立刻编译,确认Message面板干净;更新PCB后第一时间打开差分对编辑器,数一遍数量对不对;规则设置时总是不忘调优先级;走线全程开DRC;等长调节完成后截一张Length Tuning报告留档。这套动作看着繁琐,但好处是每块板子都是一样的流程,出问题的时候能快速定位到具体环节,而不是东一榔头西一棒子地瞎猜。最后再分享一个小技巧:如果你的项目里差分对数量很多,建议在原理图里就把它们统一命名成带功能前缀的格式,比如MIPI_TX0_P、MIPI_TX0_N,方便在PCB规则里用网络类批量管理。这个习惯早期养成,后面做越大的板子,受益越明显。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询