之前有个项目,板子贴片回来之后LVDS链路在低温环境下偶发通讯失败,示波器抓了快一天才定位到问题:不是器件不良,也不是焊接虚焊,而是那几对差分线里有一对的等长偏差差不多到了30mil。眼图在常温下还能看,温度一低,时序裕量直接被吃掉,丢包就出来了。后来在AD20里重新处理差分对约束、把等长调到容差范围内,问题彻底消失。
从那以后我养成了习惯:差分线绝不靠“手感和眼力”布线,所有等长动作全部在AD20的规则体系和调线工具里完成。这篇文章就是把从原理图定义差分对、到PCB布线、再到等长调线与DRC验证的完整链路捋一遍,把实际操作中的参数设置、快捷键和避坑点都写出来。适合正在学AD20差分线处理的朋友,也适合那些画过几块板但总在等长阶段被折磨的工程师。
1. 等长到底在等什么:差分信号的约束与误差来源
1.1 差分信号不是“两根线走一样长”那么简单
很多新手刚接触差分线时,容易把等长理解为“两条蛇形线绕得一样多就行”。这个理解方向没错,但等长的本质不是几何长度一致,而是电长度一致,也就是信号从驱动端出发,正负两路到达接收端的时间差要控制在一个很小的范围内。
差分信号的优势在于接收端比较的是两根线上的压差,外部共模干扰会在两线上产生相同方向的噪声,相减之后被抵消。这个机制成立的前提是两根线受到的干扰尽可能一致,并且信号到达接收端的时间尽可能同步。如果P和N两条线长度差得比较多,接收端的比较窗口就会错位,差模信号的能量被损耗,共模噪声却因为没有完全抵消反而变大,EMI恶化,眼图闭合,误码率上升。低速设计里这个问题不明显,一旦信号速率上了百兆、千兆,或者走的是DDR这种对时序极敏感的总线,等长偏差就是硬伤。
AD20这个工具其实把“等长”拆成了两个层面:一个是布线阶段的交互式等长调线,另一个是设计规则里High Speed → Matched Lengths的约束检查。前者负责把你的手变成“蛇形线画笔”,后者负责告诉系统哪些网络必须对齐、误差必须控制在多少以内。两者配合,才是一套完整的等长处理流程。
1.2 等长误差从哪来:封装、过孔、扇出与绕线
等长偏差不是布完线才出现的,在原理图阶段误差就已经埋下了。芯片封装的引脚出线长度天然有差异,BGA的引脚分布在几行几列之间,引脚到die的距离本来就不一样。原理图上看不到这些,但PCB布线时能感受到:从BGA扇出的一瞬间,某些网络需要绕一大圈才能出得来,某些网络几乎直出。这就是等长工作的起点——先让所有走线的最短物理路径尽量接近,再通过蛇形绕线补齐时间差。
过孔也是一个容易被忽略的误差源。一对差分线如果一根走了表层、一根换了层,那么两条线的路径上过孔数量不一样,信号在过孔处的寄生电容和stub长度带来的延迟也不同。一般来说一个普通过孔会给信号增加大概6到10ps的延迟,如果一根线多过两个孔,等效长度差很快就到了十几mil。所以做等长之前先把过孔规划好,让差分对内部两根线尽量走同样的层切换路径,比事后拼命绕蛇形要靠谱得多。
还有一个误差来源是扇出区域到主布线区的连接段。BGA焊盘之下那一小段引线通常不是平行的,可能一根笔直一根带弯,这一段的“非耦合长度”如果过大,也会造成差分对内部的不对称。AD20规则里有一项Min/Max Uncoupled Length,就是专门约束这个的,后面会细讲。
1.3 不同接口的等长容差要求差别很大
做等长前先搞清楚你的信号对等长有多敏感,这是最实际的问题。不同接口规格对内部skew的要求完全不同,盲目把容差设成±1mil不但浪费时间,还可能因为绕线太密引入新的串扰。
这里给一份我平时项目里常用的参考值,具体数值最终还是以对应芯片手册为准:
| 接口/总线 | 组内等长容差参考 | 说明 |
|---|---|---|
| LVDS并行总线 | 时钟对±5mil,数据对±10mil | 时钟是基准,组内对齐更严格 |
| 千兆以太网MDI | ±5~10mil | 主要看PHY的skew预算 |
| USB 2.0差分对 | 一般不做全链等长 | 连接器端保持短且对称即可 |
| DDR4 DQ/DQS组 | 组内±5~20mil常见 | 具体看控制器与颗粒要求 |
| DDR4差分时钟对 | ±5mil以内 | 时钟必须优先保证 |
| PCIe差分对 | ±5mil左右 | AC耦合电容位置也要对齐 |
注意USB 2.0那个,很多人上来就给USB线做蛇形等长,其实低速/全速模式下没必要。USB 2.0差分对内部自带时钟恢复机制,关键是对内尽量对称、走线短、靠近连接器,全局等长意义不大。所谓“没有调查就没有发言权”,先读手册再设规则,不要条件反射式地所有差分对一律±5mil。
2. 原理图侧先做对:差分对定义与网络命名规范
2.1 网络命名是差分对识别的第一道关卡
AD20识别差分对,第一依赖的就是网络命名规则。默认情况下它要求网络名以_P和_N结尾,比如LVDS_TX0_P和LVDS_TX0_N。一对网络如果能匹配上这个规则,AD20就可以在导入网表后自动建立差分对。
我在实际项目中常遇到的问题是:硬件工程师习惯把网络命名为LVDS_TX0+和LVDS_TX0-,或者干脆叫LVDS_TX0_P和LVDS_TX0_N但多了个数字后缀,比如LVDS_TX0_P1。这类命名在AD20里是不会被自动识别的,需要手动在差分对编辑器里指定正负网络。麻烦不说,还容易漏。
所以最省事的做法是在原理图绘制阶段就规范命名:差分正端统一以_P结尾,负端统一以_N结尾,并且除了这个后缀以外其他部分完全一致。这是整个等长流程中性价比最高的一步,成本为零,后面省下大量手动匹配时间。
2.2 在AD20中创建差分对的三种方式
AD20里创建差分对的方式有几种,哪种顺手用哪种,但前提是知道它们各自的适用场景。
第一种,在原理图中放置差分对指令。快捷键操作路径是 Place → Directives → Differential Pair,或者直接在工具栏里找到Differential Pair指令,放到网络标签上。放置时AD20会自动识别当前连线上的网络名,如果检测到_P/_N后缀,它会自动配成一对。在指令属性里可以设置差分对名称和极性。这种方法的好处是PCB端导入后直接生成差分对约束,不用再手动创建。
第二种,在PCB编辑器中打开Differential Pair Editor。路径是 Design → Differential Pair Editor。这个工具适合处理已经导入PCB的文件。在左侧Net列表里过滤出*_P和*_N结尾的网络,选中一对,点Add,AD20会自动生成差分对。如果网络命名不标准,比如LVDS_TX0+这种加号结尾,可以在这个编辑器里手动选择正网络和负网络,缺点是容易漏选。
第三种,利用PCB面板选择网络后右键创建。在PCB面板过滤器里输入网络名,选中一对后右键 → Differential Pair → Create。这种方式适合补充创建零散的差分对,不适合大批量。
我自己的习惯是原理图阶段就放好差分对指令,这样差分对规则能跟着原理图一起走,换机、换人、重新导入网表都不用再操心。等板子复杂到一定程度,从PCB端手动建对子一定会出错。
2.3 原理图阶段就要定好的差分阻抗目标
原理图阶段不需要画蛇形线,但差分阻抗目标值必须在原理图标注或设计文档里明确。常见差分阻抗是90欧、100欧、120欧几种。USB 2.0通常是90欧差分,LVDS和千兆以太网多是100欧,RS-485这类现场总线常见120欧。
这个值不是拍脑袋定的,它取决于芯片的驱动能力和接收端匹配要求。原理图上的差分对两侧通常会有并联端接电阻,端接阻值要跟差分阻抗匹配,不然会有反射。AD20本身不直接参与阻抗计算,它管的是线宽和线距规则,真正的阻抗验证要么靠经验公式,要么靠SI仿真工具,要么直接让板厂叠层计算。
这里有必要提一个基础概念:差分阻抗由单端阻抗、线间距和参考平面距离共同决定。一对已经确定线宽的走线,间距越小耦合越强,差分阻抗越低;间距越大耦合越弱,差分阻抗越接近两倍单端阻抗。所以“保持间距一致”和“保持线宽一致”对差分阻抗同样重要,等长绕线时如果为了补长度把间距撑得乱七八糟,长度是对上了,阻抗却毁了。
3. PCB端布线前的准备:规则、层叠与扇出
3.1 把差分对规则写进PCB Rules,别在走线时临时手调
PCB阶段最忌讳的一件事是:边布线边拿Shift+W快捷键手填线宽线距。短时间调一两根没问题,长时间这样操作,最后规则管理器里的约束跟实际走线完全脱节,DRC一跑全是错误。正确做法是先到 Design → Rules 里把差分对规则完整建立起来。
关键规则在 Routing → Differential Pair Routing。这里可以针对单个差分对或差分对类别设置三个关键参数:Min Width、Typical Width、Max Width,以及Min Gap、Typical Gap、Max Gap。实际走线时AD20会强制使用这些规则。
更需要注意的是 Uncoupled Length 的设置。这个参数约束的是差分对内部两根线分开、没有形成耦合的长度。在扇出到BGA边缘和靠近连接器引脚的短距离内,两根线不得不分开一段,这是正常的;但如果这个非耦合长度过长,差模到共模的转换就会增加。我一般把这个长度设在50到100mil以内,具体还是看板内空间。对高速DDR接口我甚至会设成0,逼自己在扇出阶段就把两根线并行处理。
另外,在High Speed → Matched Lengths规则里添加等长约束。设置目标长度Tolerance,注意这里的目标长度可以是具体值,也可以留空。留空的话,AD20会以当前最长的那根网络为基准,其他网络自动对齐到它。具体布完线后可以通过交互式等长调线工具来填补实际目标值,但规则里最好先把容差写清楚。
3.2 层叠与参考平面的选择:等长布线的地基
差分线能不能做出稳定阻抗,层叠结构说了算。为什么说层叠是等长的地基?因为如果参考平面不完整,走线下面的返回电流路径就不稳定,信号延迟和阻抗都会随之变化,你在AD20里辛辛苦苦调好的长度,实际生产出来却对不上,就是层叠出了问题。
实际工程中,四层板是性价比最高的选择。差分信号优先走在靠近完整参考平面的内层,比如L2参考L3平面,或者L3参考L2平面。内层走线的阻抗受阻焊层影响小,更稳定。表层走线虽然方便调试,但阻抗受阻焊层厚度和铜厚影响较大,不是不能用,而是要提前跟板厂做好叠层确认。
层叠设计时要特别注意参考平面的完整性。差分对正下方的平面必须是连续的,不能有电源/地层分割线。如果信号从L2走到L4,而L3恰好是电源层且被分割成了几个电压区,返回电流就得绕路,结果就是等效电感增加、延迟变大、共模辐射变大。这种情况下你在AD20里调等长调得再准,实际信号也会因为参考平面断裂而失真。
3.3 扇出设计:过孔、反焊盘与返回路径
差分线从BGA引脚扇出时最容易出问题的就是两个:一是两个过孔距离太近导致孔径间距不满足制造能力,二是过孔换层处参考平面被切断导致返回路径不连续。
BGA扇出时,一对差分信号的两个过孔尽量紧挨着放,走线一出焊盘立即以差分方式并行进孔。过孔之间的间距通常取焊盘中心间距,也就是BGA的引脚间距(比如0.8mm或1.0mm BGA)。过孔尺寸按板厂工艺能力走,常规用8/16mil或10/20mil的通孔,高密度板可以上激光盲孔,但成本会上升。
这里要特别留意过孔的反焊盘(Anti-Pad)。过孔内层连接焊盘与参考平面之间如果有空隙,这个空隙就是反焊盘。反焊盘太大,电流回流路径被撑宽,过孔阻抗偏高;太小,寄生电容增加。常规FR4板材下,反焊盘设为孔径加8到12mil左右是均衡值,具体可以通过HFSS或者SIwave一类工具仿真确认。反正我自己画板时,对DDR和PCIe这类高速信号,会专门为过孔做一次阻抗匹配,等长调线之前先把过孔模型打通。
扇出阶段还有一条看不见的规则:差分对从BGA引脚出来时,尽量避免引脚间距变化导致两根线在扇出区域就出现长度差。如果实在避免不了,就记住一个原则——后面等长绕线时,绕线的位置尽量放在远离BGA和连接器的中间段,不要在芯片引脚附近就急着绕,那样会挤占BGA外围的布线通道,给其他信号造成压力。
4. 交互式差分布线与等长调线实操手法
4.1 交互式差分布线的核心操作与快捷键
AD20里布差分线最趁手的工具是 Interactive Differential Pair Routing,快捷键 P I D。启动后点选差分对的任意一根线,AD20会自动把两根线以差分方式推挤布线。
布线过程中有几个关键快捷键值得刻进肌肉记忆:
- Shift + W:临时切换线宽,适合查看不同线宽下的布线效果,但确认后要记得改回规则值
- Shift + S:切换单层显示模式,布内层差分线时非常有用
- 小数点(.)和逗号(,):在交互布线时调整差分对间距,但是注意,手动调整间距只对当前走线段生效,退出后仍然受规则约束。这个键可以帮你快速试探出合适的间距值,比打开规则管理面板填数字快得多
- Ctrl + 滚轮:缩放视图,在绕线时配合使用
启动差分布线后,走线默认以45度角或者任意角度推进。我习惯把拐角模式设为45度,走出来的蛇形线和拐角会更好看,也符合大多数板厂的加工习惯。任意角度走线虽然在某些情况下能缩短路径,但生产端D码和光绘处理容易出问题。
布线时还要注意一点:差分对的两根线一定要同时走完一段,不要一根走完再走另一根。AD20的差分布线工具天然支持双线同推,如果你发现自己在一根一根地画,说明工具用法不对。两根线同时推挤可以保证它们在每一段都保持平行等间距,这是控制差分阻抗的基础。
4.2 等长绕线该绕成什么样:振幅、间距与形状
当差分对的主路径都布完,进入等长阶段。AD20里等长调线的工具是 Interactive Differential Pair Length Tuning,快捷键 U I D。启动后点击需要调等长的差分对,鼠标拖动就会拉出蛇形线,AD20会根据Matched Lengths规则实时显示当前长度和目标的差距,并用颜色反馈:绿色表示达标,红色表示欠长或超长。
调线时面板上几个参数要理解清楚:
Target Length:当前差分对需要达到的目标长度。多个差分对需要组内对齐时,这个值通常统一设为基准线的长度。Target Tolerance:允许的偏差范围。Max Amplitude:蛇形线凸起的最大幅度,也就是蛇形线两翼之间的最大宽度,这个参数决定了绕线时会占用多少横向空间。Gap:蛇形线相邻两臂之间的距离,这个值太小会导致线间串扰增加,一般至少取3倍线宽。
实际操作中我的手法是:先设置合理的目标长度和容差,然后从差分对中较长的那根线的中间位置开始绕。尽量不要把蛇形线全部堆在一头,那样会导致信号在一段极度拥挤的通道里穿行,串扰和阻抗不连续都会增加。分段绕线可以让整体布线更均匀,也方便后续调整。
蛇形线的形状也是讲究。AD20默认的绕线方式是“S形”和“Trombone形”结合,也就是先在垂直方向往复摆动,形成几段平行的短线。这种形状对差分线有两个好处:一是平行臂之间的耦合可控,二是绕线区域占用的长度方向空间可控。避开那种绕成一个方环的做法,方环的内角容易造成阻抗突变,而且回流电流路径变差。
绕线过程中AD20还有一个很实用的特性:如果目标长度设定好了,绕线接近终点时会把吸住鼠标,到达目标长度后会用一个圆圈或颜色变化提示你。这时候不要贪多,尽量一次到位。如果绕过后发现超了,先按退格键回退,再重新拉蛇形线,不要试图把超长的蛇形线硬往旁边推,那样很容易把间距挤坏。
4.3 多组差分对同时等长:分组约束与虚拟差分对
单对差分线的等长很简单,麻烦的是多对差分线组内全都对齐,比如DDR4的数据线组DQS/DQ,或者LVDS总线的多对数据线。
这时候要用到差分对类别(Differential Pair Class)。在AD20里,Design → Classes,可以创建Diff Pair Class,把需要组内等长的所有差分对都加进去。然后在High Speed → Matched Lengths规则里选择这个Class,设置统一的容差。这样整个类里的差分对都会以同一基准进行等长对比。
这里有一个易用的技巧:在规则里把最长的那一对设为目标基准,其他对自动对齐。那么问题来了:最长的不一定是最重要的。对DDR总线来说,通常希望地址/控制线组以时钟线为基准,数据线组以DQS为基准。所以正确做法是:先画出目标基准线(比如差分时钟对),在Matched Lengths规则里给这个基准线设定一个精确目标长度,或者利用“虚拟差分对”功能,手动创建一个虚拟网络来充当基准长度。
AD20支持创建虚拟差分对(Virtual Differential Pair),具体入口是Differential Pair Editor里的右键菜单。创建一个虚拟差分对后,把它的目标长度设成实际需要的值,用它来控制真实差分对的等长范围。这个方法对付那些“没有明确物理基准线”的总线特别管用,比如PCB上分散在不同位置的多个LVDS接口,它们的P通道不需要彼此等长,但如果你希望它们都控制在某个固定长度以内,就可以用虚拟差分对统一约束。
我自己的经验是,对于超过5对的等长组,一次性把所有对都拉出来绕线,鼠标会非常难控制。更稳的操作是分批处理:先把所有差分对的主路径布完,然后以最长的那对为基准,逐个用U I D调线。每调完一对,跑一次Matched Lengths检查,确认误差在合理范围再继续下一对。这样看似慢,实际比最后一次性重跑DRC高效得多。
5. DRC验证与等长绕线区的常见陷阱
5.1 如何快速验证等长结果是否达标
等长绕完线,第一个动作不是欢呼,而是跑DRC。在AD20里执行 Tools → Design Rule Check → Run DRC,然后重点关注High Speed规则里的Matched Lengths检查项。
DRC报告里会列出每个差分对的实际长度、目标长度和偏差。要特别注意,报告里的长度单位默认可能是mil,如果你习惯用mm,先在Units里切好。查看报告时我一般直接按差分对Class过滤,逐个核对有没有红色报错项。
还有一个快速验证办法:在PCB Panel里把对象类型切到Nets,找到对应差分对的两个网络,查看它们的Length值。两个网络长度之差就是当前偏差。不过这种方式看不到目标长度,只适合快速确认“两根线差了多少”。
如果布完线后发现所有差分对都超长或欠长,不要急着去手动拉蛇形线。先检查Matched Lengths规则里的目标长度是不是被设成了一个固定值,导致AD20以那个值做基准而忽略了实际最长线。通常更合理的做法是目标长度留空,让AD20自动把最长网络作为基准,再配合容差来控制。留空的情况下,所有短网络会自动对齐到最长网络,这样天然把整体等长做到位。
5.2 绕线区贴器件、跨分割与莫名其妙的DRC报错
等长绕线最占空间的是蛇形区,这个区域如果离器件太近,DRC里最常见的报错是Clearance Constraint。比如在BGA外围,一边是不动器件,一边是蛇形线,间距不够就会报错。这种情况下不要硬拉蛇形线绕开器件,而是尝试减小Max Amplitude,让蛇形线幅度降下来,重新调整绕线区间。如果空间实在不够,把差分对往远离BGA的方向挪一下再绕,也就是给绕线区留足“缓冲区”。
还有一种报错是差分对内部间距超出规则。很多人在调等长时,为了让蛇形线走得更紧凑,会把两根线的间距在局部撑大或缩小。AD20的交互式调线工具一般会保持间距约束,但如果你的Min Gap和Max Gap设置得太宽,工具就会允许较大的间距变化。比如你把Min Gap设为4mil、Max Gap设为15mil,绕线时AD20就会自动把间距拉大到15mil来获得更大的绕线空间,但这样一来差分阻抗就变了。解决方法是把Max Gap收紧,一般比Typical Gap大2到3mil就够了,别给工具太多自由度。
还有一种非常隐蔽的坑:等长绕线时绕线区正好落在一个大焊盘附近,导致参考平面在这个区域开了一个大窗口,信号路径下方没有完整平面层。DRC不一定报错,因为这是电气问题不是几何问题。我在PCB上发现这种情况的方法是:打开所有隐藏平面层,手动查看蛇形线区域的参考平面是否完整。AD20里可以通过 View → Board Planning Mode 或者直接在层堆栈管理器里检查。
5.3 一个排错实例:等长做好之后阻抗反而变了
讲一个真实案例。之前做一款ARM核心板,DDR4的数据线组要组内等长,我按常规流程设了差分规则——线宽5mil、间距8mil——先把所有DQ线布完,然后逐个调等长。等长调完后DRC全绿,长度差都控制在±10mil内,心里还觉得挺稳。
结果板厂说叠层计算下来100欧差分阻抗不对,实际测出的TDR阻抗只有86到92欧。排查过程中发现,问题出在等长绕线区:为了把一根偏短的DP信号线补到组内目标长度,我在一段500mil长的区域内用蛇形线绕了很长,Max Amplitude设得比较大,蛇形线两臂之间的Gap竟然只有5mil。窄间距导致两根线的强耦合,差分阻抗被拉低。更尴尬的是,蛇形线那边间距变窄了,旁边的普通走线又离得太近,串扰也跟着变差。
后来把蛇形线的Gap调大到10mil,Amplitude相应调小,在更长的区间内分散绕线,阻抗恢复到了设计值附近。这个案例给到我的教训是:差分阻抗设计不只是“设置规则里的线宽间距”那一下的事,蛇形绕线的间距和形状同样会影响阻抗。调等长时视线要不停留在差分对两根线之间,还要盯着蛇形线两臂之间的距离,AD20在蛇形线参数面板里可以直接设置Gap,不要为了追求紧凑的视觉把Gap压缩到离谱。
6. 出Gerber前的阻抗与叠层核对
6.1 给板厂的信息要写到什么颗粒度
PCB设计在AD20里收尾,不代表可以直接闭眼发板。Gerber文件出来之前,有一件事必须做:在制造说明里写清楚差分阻抗要求。
板厂需要的不是“差分100欧”这么一句话,而是叠层信息加线宽间距约束。常规做法是在制板说明里附一张表格,列出层号、介质厚度、铜厚、目标阻抗、线宽/线距参考值,以及阻抗公差。
如果是AD20,可以直接用 File → Fabrication Outputs → Gerber Files 输出光绘,再单独生成一个钻孔文件。OB++和Gerber X2这些格式AD20都支持,推荐用X2,因为它把层信息和元数据打包得更完整,板厂接收后不容易搞错层顺序。
还要再强调一次:AD20里的线宽规则是你自己定的,能不能做出目标阻抗,只有板厂或者SI仿真能回答。发板前把叠层和线宽要求发给板厂,让板厂确认他们的叠层条件下这个线宽能不能达到目标阻抗,这是一个免费而极有效的避坑动作。
6.2 表层与内层差分阻抗的差异处理
很多工程师第一次做高速板时不知道,表层差分线和内层差分线要做出同样的100欧,线宽和间距很可能不一样。原因是表层走线一侧是空气一侧是介质,有效介电常数低于完全埋在内层的走线,信号传播速度也更快,阻抗表现不同。
所以在AD20里设置规则时,至少要按层区分差分对规则。比如表层差分对用5/8mil,内层差分对可能要用4.5/7mil才能达到同样的100欧。具体数值要结合叠层计算,不是经验套用。我的做法是:在AD20的Layer Stack Manager里输入各层厚度、介电常数、铜厚,然后交给阻抗计算工具(比如Polar Si9000或者板厂的计算器)算,算完把每种叠层组合下的目标线宽间距填进Differential Pair Routing规则。这样走到任何一层,AD20都会自动用对应的规则值。
表层还有一个不可忽视的因素——阻焊层。阻焊层介电常数比空气高,覆盖在差分线上时会改变微带线的阻抗。线越细,阻焊层的影响越明显。所以表层差分线一般要预留一点阻抗余量,或者直接要求板厂使用“阻焊开窗”处理敏感区域。如果等长绕线区也暴露在空气中,不要忘了整个差分对都要保持一致的覆盖条件,避免前半段有阻焊、后半段开窗,导致阻抗突变。
6.3 叠层实测值与仿真不符时的应急调整
我遇到过叠层实测和仿真差很多的场景。板厂实际压合厚度和理论厚度有偏差,或者玻纤布的编织密度导致介电常数局部漂移,这些都可能让实际差分阻抗偏离目标。这时候如果PCB已经做出来了,改线宽已经来不及,能做的就是接受现实、调整匹配。
如果等长和阻抗问题共同出现,最需要检查的是蛇形绕线区的实际间距和理论间距是否一致。有些时候,DRC显示通过,但AD20在推挤布线时偷偷把你的局部间距改了,而你没有注意到。用AD20的Measure功能量一下蛇形区的实际间距,对照规则里的预期值,能快速发现偏差。
如果实际阻抗偏差在允许范围内,就不用调整,直接进入批量生产。如果超差,可能需要改叠层或者改线宽重开板,那已经超出AD20的范畴了。所以还是那句话:出Gerber之前,花一小时把叠层和阻抗算清楚,比板子回来之后再救火省十个小时。
最后再分享一个小操作习惯。我现在每次布完差分线,都会在AD20里执行一次 Reports → Differential Pair Information,把差分对长度报告导出来,存一份PDF归档。这份报告在调试阶段非常有用——当现场出现信号完整性问题时,第一件事就是核对实际板上的走线长度与设计报告的偏差。工具再智能,最终还是要落到可追溯的数据上。等长布线这门功夫,说到底是把每一个长度差都管控到数据可见的范围内。