☰
Altium Designer差分对布线全流程:阻抗计算与等长调节实战
2026/10/6 15:35:57 网站建设 项目流程

每个人做高速PCB设计,早晚都得跟差分走线打交道。USB、HDMI、PCIe、以太网、LVDS,这些接口清一色都是差分信号,你要是不会在Altium Designer里做差分对布线,遇到这类项目基本就卡住了。这篇文章我直接从实际干活的角度,把从阻抗计算到等长调整的完整流程过一遍——不是那种照着手册念的教程,是我自己在项目里反复用、反复踩坑之后沉淀下来的那套打法。

先说清楚这篇文章适合谁看。你如果刚接触Altium Designer,对什么是差分阻抗还没什么概念,能从这篇文章里搞清楚原理和完整流程;你如果已经布过几块板子,但是对等长调节怎么设规则、蛇形线怎么走才不踩坑一直心里没底,这篇文章同样能给你一套可以直接抄作业的操作路径。重点放在三件事:第一,差分阻抗到底是啥、怎么算准;第二,在AD里怎么把差分对规则和等长规则配好;第三,实际走线和调节的时候有哪些手感和技巧。

1. 差分走线设计基础与整体思路

1.1 为什么高速信号非要走差分

普通单端信号就是一根信号线加一个回流地,信号在线上传输,以地平面作为参考。这种方式在低频下没问题,但到了高速场景就露怯了:外部电磁干扰会叠加到信号上,地平面上的噪声也会直接干扰信号电平,而且单端信号的返回电流路径如果被切断,整个信号完整性就崩了。

差分信号不一样,它是一对信号线,一个走正向(P),一个走反向(N),接收端看的是这两个信号的差值。这样做有实实在在的好处:抗共模干扰能力强,外界噪声同时耦合到两根线上,一相减就抵消了;对地平面的依赖降低,返回电流主要在这两根线之间流动,对地平面的连续性要求没那么苛刻;而且差分信号辐射更小,EMI表现更好。这也是为什么几乎所有高速串行接口都采用差分传输的原因。

在实际项目里,我最直观的感受是:差分信号对PCB设计者的“宽容度”确实更高。比如地平面跨分割的问题,如果是单端高速信号跨过去,基本就废了;但差分对跨过去,只要两根线靠得足够近,返回电流主要走线对之间,影响会小很多。但注意,这只是“影响更小”,不是“没有影响”,所以该注意的环节一个都不能省。

1.2 差分阻抗到底是个什么概念

经常看到PCB设计文件里写着"100Ω差分",或者"90Ω差分"(USB 2.0是90Ω,USB 3.0和PCIe通常是100Ω,HDMI是100Ω,以太网100Base-TX也是100Ω)。这个数值代表什么?

差分阻抗,从定义上讲是差分信号在传输线上传输时,这对线对呈现的瞬态阻抗。它和单端阻抗有本质区别:单端阻抗是信号线对参考地平面的阻抗,只由线宽、介质厚度、介电常数决定;而差分阻抗是两根线作为一个整体对参考平面呈现的阻抗,它既受线宽和介质参数影响,也受两根线之间的耦合距离(线距)影响。

为了理解这件事,得引入奇模和偶模的概念。当两根线传输完全相反的信号(一正一负),信号在两根线之间形成电场耦合,这种情况叫奇模传输,此时每根线对地呈现的阻抗叫奇模阻抗,两根线串联起来的总阻抗就是差分阻抗。当两根线传输完全相同的信号时叫偶模传输,呈现的阻抗叫偶模阻抗,这个值在你做等长计算、评估串扰时也用得上。

关键规律你得记住:拉大两根线的距离,耦合变弱,差分阻抗会向接近两倍单端阻抗的方向变化;缩小线距,耦合变强,差分阻抗会降低。反过来说,要保持100Ω差分,线距越小,线宽就要越宽;线距越大,线宽就要越窄。这就是为什么阻抗计算书上一堆参数绕来绕去,本质上就是线宽、线距、介质厚度、介电常数、铜厚这几个变量在拔河。

2. 叠层设计与阻抗计算实操

2.1 叠层是阻抗计算的根基

做差分阻抗计算之前,你得先有叠层。没叠层就谈阻抗,等于没有地基就盖房子。叠层里面决定阻抗的参数就这几个:参考层的介质厚度、介电常数(Er)、铜箔厚度、阻焊厚度。

我见过很多人拿到厂家的叠层表直接抄参数就开始算,这是个大坑。不同板材的Er差异很大,FR4通常在4.2到4.6之间,高速板材如Megtron 6可能在3.6到4.0之间;同一块板材,不同频率下的Er也会变化,频率越高Er越小。你要算的差分信号工作频率高,就得用对应频率下的Er值。

以最常用的4层板为例,一个典型叠层是这样的:

层功能厚度/材质
顶层信号层(走差分)外层铜 1oz(约35μm)+ 阻焊油墨
介质1芯板或半固化片0.1mm~0.2mm,Er约4.2
内层1地平面(GND)内层铜 1oz
介质2芯板约1.0mm~1.2mm,Er约4.2
内层2电源平面(PWR)内层铜 1oz
介质3半固化片0.1mm~0.2mm,Er约4.2
底层信号层外层铜 1oz + 阻焊油墨

这个叠层里,顶层和底层到参考平面的介质厚度(通常叫H)是控制阻抗的关键。表层走线的介质包括半固化片加上阻焊油墨,阻焊油墨的Er大约3.3到3.8之间,厚度约20~30μm。数值看起来不大,但在计算精确阻抗时影响很明显,这就是为什么有时候你算出来是99.8Ω,实际板厂测出来只有96Ω,差距往往就出在阻焊参数上。

2.2 用阻抗计算工具反推线宽和线距

算差分阻抗,手工公式当然有,但实际工作中谁费那劲,都是工具搞定。主流的PCB阻抗计算工具里,Polar Si9000是行业老牌,准确度高,但它是桌面软件,要授权,界面也比较老;Saturn PCB Toolkit是免费工具,算基本单端、差分阻抗够用,我在快速估算时常用它;还有国产的嘉立创阻抗计算工具,网页版直接用,界面对新手友好,而且给的推荐值是基于嘉立创自身的叠层工艺来的,如果板子在那边做,参考价值很高。

不管用哪个工具,计算差分阻抗的核心流程是一致的。以100Ω差分,表层微带线(Microstrip)为例:

第一步,选模型。表层差分线选"Edge-Coupled Surface Microstrip"(边缘耦合表面微带线);内层差分线选"Edge-Coupled Stripline"(边缘耦合带状线)。这两个模型别选错,微带线和带状线的阻抗特性差别很大,微带线有暴露在空气中的一面,等效介电常数低,阻抗偏高,同样的线宽线距,微带线要比带状线粗一些才能到相同阻抗。

第二步,填参数。介质厚度H(信号层到参考平面的距离)、介电常数Er、铜厚T、线宽W、线距S、阻焊厚度C和阻焊Er是可选参数,有就填上,更准。

第三步,设目标阻抗100Ω,然后调W和S,让计算结果落在100Ω±10%范围内。实际操作中我的习惯是先固定S,一般表层差分对S设置在0.15mm到0.25mm之间,然后调W。因为S的大小影响的是耦合强度,你希望两根线靠近走,但也不能无限近,受制程限制,太小的S对板厂工艺是考验,良率会下降。

我举个例子,假设表层介质厚度0.12mm,Er=4.2,铜厚35μm,目标100Ω。我固定S=0.2mm,用工具算,当W=0.15mm时,差分阻抗大概是94Ω左右;把W调小到0.12mm,阻抗会升到100Ω左右。这里面的逻辑就是:线越细,阻抗越高,因为信号路径变窄,等效电感增大;要让差分对之间的耦合起主要作用,S就得合适。

反过来,如果是内层带状线,因为上下都有参考平面,阻抗会比表层低不少,同样的参数,带状线可能到不了100Ω,你需要把线加粗到0.18mm甚至0.2mm才行。这就提醒你一件事:同一个项目里,表层差分线和内层差分线的线宽很可能不一样,别图省事用同一个规则。

2.3 阻抗计算里的隐藏变量

算阻抗看着简单,填参数就是了,但有几处细节经常坑人,我单独拎出来说。

第一是阻焊层的影响。表层差分线最终会覆盖阻焊油墨,阻焊层的介电常数比空气高,会“压低”一部分阻抗。你如果不填阻焊参数,算出来的阻抗会比实际偏高2到5Ω。做严格的高速板,这个误差不可接受。

第二是铜箔的表面粗糙度。铜箔表面不是光滑的,粗糙度会影响高频信号的传输速度,等效介电常数会变大。在实际工程中,这个影响在高频(比如10Gbps以上)非常明显,但一般的阻抗计算工具未必考虑得太细。做法是:在关键高速板(PCIe Gen4及以上)的叠层设计阶段,就要求板厂提供他们自己的计算数据和实测报告,不要自己埋头算。

第三是介质厚度和实际压合厚度的偏差。多层板的压合过程会有厚度公差,标称0.12mm的介质,压合后可能变成0.13mm或0.11mm,这会让阻抗产生几个百分点的偏移。成熟板厂会有自己的补偿系数,这也是为什么最好把阻抗要求直接写在制板工艺说明里,让板厂帮忙算一遍,两边的结果对上了再下单。

3. Altium Designer差分对设置与规则配置

3.1 从原理图开始定义差分对

很多人以为差分对是PCB阶段才设置的,其实源头在原理图。在Altium Designer里,差分对的标准命名规则是:一对信号,正端以"_P"结尾,负端以"_N"结尾,网络名的前半部分必须一致。比如"USB_D_P"和"USB_D_N",或者"RXP"和"RXN",AD就是靠这个命名后缀来自动识别差分对的。

命名规则定了之后,在原理图里执行Place(放置)——Differential Pair(差分对),AD会由你在图纸上放置的一对差分对端口进行标记。实际项目里更常见的做法是:原理图库里的元件引脚已经是"_P"和"_N"命名,连线之后网络名自动带后缀,然后你在工程管理里检查差分对有没有被正确识别。

在原理图阶段就把差分对定义好,有一个好处:当你把设计同步到PCB时,AD会自动创建差分对对象,并且把PCB布线规则里的差分对约束一起带过去。如果跳过这一步,到PCB里再手动定义差分对,不仅麻烦,还容易漏。

3.2 PCB中的差分对规则配置

同步到PCB后,打开PCB面板(快捷键L切换到图层,或使用View——Panels——PCB),在PCB面板的下拉菜单里选择"Differential Pairs Editor"(差分对编辑器),你会看到所有从原理图带过来的差分对列表。这里可以统一查看每对差分线的当前网络名、类名、状态。

接下来是设置规则,也是核心操作。打开Design——Rules,在High Speed区域找到"Differential Pairs Routing"(差分对布线规则)。这里需要设置的关键参数有几个:

  • Gap(线距):差分对内两根线的距离,就是阻抗计算里的S,规则设置里通常给一个最小值和最大值,布线时AD会在这个范围内约束线距。
  • Width(线宽):就是计算出来的W,同样有最小、最大和首选值,首选值填入你计算得到的线宽。
  • Coupling(耦合方式):这个参数决定两根线的耦合计算方式,一般选"Edge"(边缘耦合),因为大多数PCB差分线都是平行边缘耦合。

我的建议是:最小和最大值的范围不要拉太大。比如首选W=0.12mm,最小可以设0.1mm,最大设0.14mm;首选Gap=0.2mm,最小0.15mm,最大0.25mm。范围太大会导致布线时AD"放得开",线宽和间距不由自主地漂移,阻抗也跟着飘,这不是你想要的结果。

另外还有一个重要设置是"Matched Length"(等长匹配),也在High Speed区域里。差分对要求对内两根线的长度差控制在指定范围内,常见要求是5mil(约0.127mm)以内,高速接口可能更严格到1~2mil。你可以在规则里指定约束条件,一般配合后面的Interactive Diff Pair Length Tuning工具使用。

3.3 避开差分对规则设置的三个雷区

规则设置这块看着简单,实际项目里我踩过不少坑,分享三个印象最深刻的。

第一个坑是差分对规则没有绑定到对应的差分对类。AD的规则默认对所有对象生效,你需要创建"Differential Pair Class"(差分对类),比如把所有USB差分对放到"USB_DIFF"类,然后在规则设置里指定这个类,避免和其他普通布线规则打架。不同接口的差分阻抗可能不同,比如板子上同时有USB(90Ω)和PCIe(100Ω),它们的线宽线距不同,如果共用一套规则,后布的线就全错了。

第二个坑是在规则里只设了差分规则,忘了设常规的"Width"和"Clearance"规则。差分对走线时AD会同时检查常规线宽规则和差分规则,如果常规Clearance限制比差分Gap还小,两条规则互相冲突,软件会给出报错或自动选择距离更大的值。我的做法是:普通走线的Clearance宁可设大一点,比如全局0.15mm,差分对内部的Gap单独用差分规则控制,这样互不干扰。

第三个坑是忽略"Layer"(图层)约束。同一对差分线,表层和内层的阻抗计算参数不同,对应的线宽也不同。你可以在差分规则里为不同图层设置不同的Width和Gap,也可以在布线时手动切换。AD支持在差分规则里按图层设置参数,用起来很方便。比如顶层设W=0.12/S=0.2,内层设W=0.16/S=0.2,切换图层的时候AD自动用对应参数,这个功能务必用好。

4. 差分走线实战:从布到调

4.1 交互式差分对布线操作详解

规则都配好之后,就可以真正走线了。在Altium Designer里,走差分线用的是专用的交互式差分对布线命令:Route——Interactive Differential Pair Routing,快捷键默认是UI(有些版本是3)。用法是:先选中一对差分线中的任意一根,按下快捷键,AD会自动找到配对的另一根,两根线一起走。

实际布线的时候,有几个操作手感是我反复跟团队强调的:

第一,走线方向从源端到负载端。虽然电信号是双向传播的,但布线时保持一致的流向有助于保持参考平面连续,也更便于检查。

第二,优先走主干,后处理细节。先把差分对从源芯片引脚拉到目标连接器或者接收端,这个过程中不要纠结于每个转角是否完美、每段是否等长,先把通道打通,确认引脚能出线、过孔能打、障碍能绕开。通道都没打通,后面调等长全是白费功夫。

第三,同一对差分线尽量走同一层。走不同层意味着要通过过孔换层,过孔本身就是一个阻抗不连续点,两对过孔还会引入额外的长度偏差。如果实在必须换层,比如BGA内部扇出到表层,尽量让两根线在相邻位置一起换层,并且对称放置过孔,减少不对称带来的共模转换。

在布线过程中,AD有几个快捷键非常实用:按Shift+R可以切换布线模式(忽略障碍/推挤障碍/绕开障碍等),我一般用推挤模式,让软件自动把挡路的网络推开;按数字键2/3可以切换走线宽度来源(规则设定值/用户自定义),在做阻抗线时建议保持规则值,不要手动改宽,改了就偏离阻抗设计了;按Shift+S可以单层显示,只显示当前布线层,视野清爽很多。

4.2 差分对内等长调节实操

差分对的两根线理论上是等长的,因为差分信号要求两个极性信号同时到达接收端,长短偏差会导致信号沿不同时刻到达,形成共模分量和时序偏差,直接影响信号质量。在高速设计中,对内不等长造成的时序偏移(Skew)是纯差分的失效模式。

AD里做等长调节,用的是Route——Interactive Diff Pair Length Tuning,快捷键是TI(Tune Length)。操作方式是先选中要调节的差分对其中一根线,执行命令,然后在线上拖动鼠标,软件会动态生成蛇形线(或叫“accordion”,手风琴形)来补长度。

调等长的核心是:目标长度从哪里来?两个途径。第一种是直接用PCB里最长的那根线作为目标,让短的那根补到和它对等。做法是:先看一下差分对的Report——Differential Pair Information,里面会显示P和N两端的长度差,让较短的一侧补上差值,再额外加10~20mil的余量用来做蛇形调整。第二种是计算目标长度。如果设计要求按飞行时间控制总长度上限(比如“总的走线延时不超过XXps”),就用传输速度换算。在FR4板材上,信号传播速度大约是介电常数的平方根分之一乘以光速,Er=4.2时速度约为光速的0.49倍,即大约15cm/ns,一根1英寸的走线延时约170ps。你把允许的延时转换成目标线长,再按这个值来调。

调节等长时,蛇形线的参数很关键。启动Length Tuning命令后,按Tab键打开属性面板,里面有振幅(Amplitude)和间距(Gap,蛇形相邻段之间的距离)等参数。原则是:蛇形线的间距至少是线宽的3倍,最好做到线距的3~5倍,避免相邻蛇形段之间产生非预期耦合。振幅不要太大,一般取间距的1.5到2倍就够了。蛇形部分越密集,单位长度补的延时越高,但是高频损耗也越大,所以不到万不得已不要用极端密集的蛇形结构。

4.3 等长调节之后的检查闭环

等长调节不是拉几段蛇形就完事了,必须做一轮系统性的检查。AD提供了几个工具帮我快速验证。

先看"Differential Pair Information"面板,选中任意差分对,打开Report,就会列出这对线的P侧长度、N侧长度、长度差。这里有个细节:长度差必须控制在规则里设定的范围之内。如果规则设的是5mil,面板显示Δ=3.2mil,那这步就过关了。

再看信号完整性检查。打开Tools——Design Rule Check,运行一遍,重点浏览High Speed区域,软件会把所有不符合差分对规则、等长规则的地方标出来。这里我特别提醒:DRC不是一次过就完事了,因为等长调节是一个动态过程,你调完A线再去调B线,B线的蛇形可能会挤到旁边C线的净空区域,从而制造新的违规。所以我习惯调完所有差分对之后,再整体跑一次DRC,而不是一边调一边存侥幸。

最后是物理层面的目视检查。把板子切换到单层显示,逐个差分对扫一遍,重点看:蛇形线是否过于靠近焊盘(可能导致制造困难)、蛇形的弯曲处是否有尖角(尖锐的走线拐角会有额外的寄生电容和阻抗变化)、差分对内两根线是否在过孔附近出现了明显的偏离(过孔是阻抗不连续高发区,偏离越远共模转换越严重)。

5. 常见问题与排查技巧实录

5.1 差分走线问题速查表

实际项目中遇到的差分走线问题,翻来覆去就那么几个,我整理成一张表,每个都是亲测踩过或者帮人排查过的。

现象可能原因排查与处理
板厂反馈阻抗不合格,偏低线宽偏大或介质厚度偏薄让板厂提供实测阻抗,检查叠层实际压合厚度;确认阻焊参数是否被正确考虑
阻抗偏高线宽偏小或线距偏大适当加密线距或加宽线宽;检查计算时是否误用了内层参数到表层
差分对内等长差持续报错蛇形线参数不合适或目标长度设置错误重新获取差分对长度报告,确认目标长度;检查蛇形线是否已进入拥挤区域导致无法继续调节
布线时AD不自动匹配线距差分规则未绑定到对应差分对类检查规则优先级,确认差分规则是否被其他通用规则覆盖
跑到一半提示差分对断开手动改动了其中一根线的网络或过孔使用DRC检查网络连通性,重新连接断开位置
切换到内层后线宽被自动改大不同图层差分规则配置了不同线宽确认各层规则中的Width值是否与阻抗计算一致
蛇形线过于密集导致反射明显蛇形线间距小于3倍线宽增大蛇形间距,或改用更大的振幅来补长度

5.2 三个必须单独说的高频坑

表里列了几个常见问题,但有三个坑值得单独展开。

第一个坑是差分对的参考平面跨分割问题。高速差分线下方如果正好是电源平面的分割带,返回电流就会绕路,导致阻抗突变和额外的共模噪声。排查方法是:在AD里打开信号层对应的参考平面层(比如顶层走线看GND层),检查有没有哪段差分线正好位于一个“空洞”上方。处理办法:要么调整布线路径,避开分割区域;要么把分割区域重新设计,让高速信号下方的平面保持连续。如果非跨不可,至少在跨分割位置补一个去耦电容,但这个只是补救,不是根治,能避免尽量避免。

第二个坑是BGA扇出区域的差分过孔对称性问题。从BGA引脚扇出差分对时,两个过孔的位置必须对称,不然两根线的传输路径长度和过孔寄生产生差异。我见过一个板上USB 3.0差分对跑到5Gbps就眼图闭合,排查到最后,发现是BGA区两个过孔差了一个焊盘间距的长度,导致对内偏差超过30mil。这种情况下,等长规则设定得再严格也没用,因为静态的等长调节器只能补走线长度,补不了过孔和引脚的不对称。解决思路是在扇出阶段就规划好对称性,尽量让P和N从同一个方向、以对称的过孔布局引出。

第三个坑是阻抗计算时的单位换算。这个听起来低级,但真有人犯。国外资料用mil,国内习惯用mm,1mil=0.0254mm。你在阻抗计算工具里填0.12mm,却在AD规则里填了12mil(实际是0.3048mm),差了两倍多,走出来的线阻抗直接站到100Ω旁边去了。我的习惯是:所有阻抗计算和AD规则统一用mm或mil其中一个单位,每次填参数之前看右下角的单位提示,填完再目测一下线宽在视觉上是否合理,比如0.12mm线在屏幕上是很细的,如果看起来比电源线还粗,基本就是单位搞错了。

5.3 多层板项目中如何批量管理差分对

实际项目中,一个接口芯片往往有十几对差分线,比如一个PCIe switch出来几十对,不可能一对一对地手动查。这时候要把差分对编成类(Class),然后用批量规则来管理。

在AD里,你可以用Design——Classes打开对象类管理器,新建一个"Differential Pair Class",把项目里所有相同电气特性的差分对拖进去,比如"PCIe_RX_Class"和"PCIe_TX_Class"。然后在规则里,把差分对间距、线宽、等长约束都指向这个类,一次配置,N对差分线全部生效。

批量管理还有一个好处是方便批量检查。在Differential Pair Information面板里,你可以按类筛选,一次看到所有同类差分对的长度状态。哪个对内偏差超了,一眼就能扫出来。做到最后再去跑一遍完整DRC,整个流程就闭环了。

最后,分享一点实际操作的心得

做差分走线,工具和规则是基础,但真正拉开差距的是对“为什么”的理解。我见过有人照着教程把规则全部配好,但布出来的板子照样有信号完整性问题,原因就是没想明白每一条规则背后的物理含义,遇到问题只会机械地调参数,不会系统性地找根因。反过来,当你理解了差分阻抗依赖哪些变量、等长调节到底在补什么物理量、过孔和跨分割为什么会影响信号质量,你就能在布线的每一个环节做出正确判断,而不是等板子打出来再对着示波器的眼图发呆。另一个经验是,第一次做高速差分板的人,一定不要跳过阻抗计算直接凭感觉定线宽线距,也不要直接相信厂商给的推荐值不做验证。找一款趁手的阻抗计算工具,把叠层参数填准,计算、试板、实测,形成自己的参数库,后面做任何板子都能又快又稳。差分走线这门手艺,做到最后拼的就是细致和对物理的直觉。

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

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

立即咨询