
刚接触AD25 PCB设计的时候很多人一听到“自动布线”就皱眉觉得那是给简单板子偷懒用的东西。我自己的体会不太一样全板自动布线确实容易翻车但单根走线自动布线是个被低估的实用功能。它指的是你只选中某一个网络、某一段飞线或者局部区域让布线器根据规则自动布通其他部分一概不动。这样做既保住了你对整板布局的控制权又把手动拖线的重复劳动省掉了对从手动布线过渡到半自动工作流的工程师来说性价比非常高。这篇文章我把这个功能在AD25里的使用逻辑、操作路径和实际经验都写清楚新手能照着操作老手也能找到一些平时容易忽略的细节。1. AD25里的“自动”到底分几层单根自动布线的定位是什么自动布线这个词在AD25里其实对应了好几个不同的功能菜单里一排“Route”相关命令很多人容易搞混。先把概念层级理清楚后面操作才不会点错。第一层是交互式布线Interactive Routing。名字里带着“Interactive”听起来像是手动操作实际上它已经非常半自动了——鼠标往目标方向一甩软件会自动避开障碍、自动沿着已有走线方向走、拐角会自动处理成45度或圆弧靠近焊盘时还会自动吸附。它负责的是把线“画”出来但整体路径是由你的鼠标手势定的本质上是一支带智能的画笔。多数时候工程师口中的手动布线用的就是交互式布线。第二层才是真正的自动布线Auto Routing。它接受的是网络Net或飞线Connection层面的输入布线器会在整块板子的拓扑空间里搜索一条合法路径搜索依据全部来自你在PCB规则里定义的线宽、间距、过孔、层切换规则。跟交互式布线最大的区别在这里路径不是人决定的是算法算出来的。你在这个阶段做的事情是告诉它“布哪根”“用什么规则”“走哪些层”而不是替它画线。第三层是单根走线自动布线。前面说的自动布线如果用于全板会把几百个网络一起拆分并全局安排需要大量计算结果还得靠大量手动返工。而单根走线自动布线就是只让布线器处理你选中的那一小部分。这个细节很重要全板自动布线容易失控但单根自动布线不会。因为范围被限制住了算法搜索空间小成功率高也更接近工程师的实际意图。我对单根自动布线的定位很明确——它适合解决“已知目标明确、路径空间复杂”的局部布线。比如一块BGA区域让你手动交互式布线绕进去十分钟起步但把规则设置好让单根自动布线去跑几秒就出结果。再比如电源网络上的一根关键功率走线长度不长但路径容易被人忽略选中它自动布线比手动点半天更快更标准。反过来也有一些场合我不建议用自动布线。纯模拟信号、需要严格阻抗控制的高速差分对、需要等长匹配的网络这些对路径形状和回流路径有极高要求自动化工具做出来大概率不符合预期最终还得你手动调整。对这些网络老老实实用交互式布线把控制权攥在自己手里。新手最容易踩的误区是把单根自动布线理解成“把飞线拉直”。它不是把A到B画成直线而是要在满足所有规则的前提下去找路径。如果你发现自动布线结果弯弯绕绕不要先怀疑软件绝大多数情况是规则没给够布线器只能在限制里“委曲求全”。2. 让布线器“听话”首先要喂好规则这层决定结果上限自动布线器本质上是一个在约束条件里搜索路径的求解器。它对你的板子没有太多物理层面的理解所有决策依据都来自PCB规则。换个直白的说法无论谁用AD25布线算法都不会因为你权限高就变聪明你能控制的是喂给它的规则。所以我每次自动布线之前一定会做三件事。2.1 网络类归类和线宽规则先行打开PCB面板左侧切到Nets视图先把同类网络归到同一个网络类Net Class。普通信号放“SIG”电源网络放“PWR”地网络放“GND”。归类之后在Design Rules里把线宽规则绑定到网络类上而不是每根网络单独设置。为什么非要这么做如果不归类默认情况下AD25只会拿一个统一的线宽去布所有网络。一块板子上几十种网络共用一个宽度出来的结果不是“难看”两个字能概括的是根本没法用。电源网络用信号线宽布压降大得离谱差分网络不设置专用的宽度和间距阻抗直接失控。我自己的常用参数是这样一套组合普通数字信号6mil或8mil具体根据板厂工艺能力定电源主干30~50mil尽量加宽降低压降地网络能接平面就接平面不走细线优先铺铜区域差分对按差分阻抗计算出的宽度和间距规则绑定到差分对而不是普通线宽。AD25的线宽规则支持“Min、Preferred、Max”三档自动布线器会优先使用Preferred只有在绕不开的时候才会在Min和Max之间做选择。我建议把Preferred设成你真正想要的宽度别故意设得很宽然后指望布线器在绕不开的时候压缩。实测下来直接给准确数值的效果远好过给一个模糊区间。2.2 间距、过孔和层设置的组合思维间距规则直接决定自动布线器能不能“钻空子”。如果你把整块板子所有的间距都设成一个值比如6mil高密度区域会非常难布通。更好的做法是按对象类型做差异化间距。我常用的这套配置在多层板里经过反复验证常规信号到信号6mil信号到电源网络10mil以上信号到过孔8mil过孔到过孔8~10mil走线到板边20~30mil。这样配置以后布线器的可用空间会明显变大尤其是BGA扇出区域差一两mil结果就完全不同。虽然规则看起来多写了几条但布线成功率和可读性都上来了后面DRC省下来的时间远远超过设规则那几分钟。过孔方面自动布线器用的过孔集合来自Routing Via Style规则。建议建立至少两套过孔一套标准通孔外径20mil、孔径10mil用于大多数层间切换一套稍小的过孔或盲埋孔用于HDI板和高密度区域。如果只给一套过孔布线器遇到空间不够的情况不会主动换型号只会直接放弃。你看着它卡住以为是算法不行其实是你没给它选择的余地。层设置上我的习惯是把中间层专门建一个Routing Layer规则规定哪些层允许自动布线、哪些层禁止。顶层和底层通常留作关键信号和器件面中层交给普通信号或电源分割。如果你不限制自动布线器默认会在所有信号层里跳来跳去最后出来的走线层次感非常差后面手工整理要花大量时间。2.3 规则优先级这里最容易翻车AD25的规则体系是有优先级的规则对象越具体优先级越高。比如一个针对“All”的间距规则优先级最低针对特定网络“GND”的规则优先级更高而针对某个具体过孔类型的规则又更高。新手翻车的地方就在这里明明建了好几条规则但没注意优先级排序自动布线器实际用的是另一条。我处理规则顺序的习惯很简单先建全局规则再按“网络类 → 具体网络 → 对象类别”逐级细化。规则管理器里的规则列表是可以拖动排序的拖完以后看一眼底部的优先级区域确认最具体的那条排在最上面。否则布线器读了低优先级的宽松规则出来的线宽间距和你想象的相差十万八千里。自动布线器对违反规则的情况会在消息窗口输出报告。如果一根线没布通不要只盯着“Failed”看要展开细节看它到底卡在间距、卡在过孔还是卡在没有可用层。定位到具体的规则类型再回头去改比盲目调参数高效得多。我见过太多人把所有间距从6mil改成5mil然后重跑跑了十遍也没解决问题最后发现是过孔类型没设对。3. AD25单根走线自动布线的三种操作路径概念理清楚、规则喂到位之后实际操作其实很快。根据“要布什么”和“有多复杂”我的习惯是走下面三条路径之一。3.1 在PCB面板里选中单个网络直接自动布线这种方式适用于“我就想布这一根”。在PCB编辑器中打开PCB面板切到Nets分类找到你要布线的网络。可以直接在列表里点选也可以直接在板子上点击某个焊盘或已存在的走线段网络就会高亮。高亮之后执行Route Auto Route Net布线器只对这个网络布线其他网络一概不动。具体的操作顺序在PCB面板中选择目标网络确保网络名处于选中状态执行“自动布线”下的“Net”命令布线器开始计算并绘制走线消息面板输出结果布线完成后按快捷键清除高亮肉眼检查。注意这里选的是“Net”布线器会把该网络所有的连接全部尝试布一遍。如果一个网络有5个焊盘、4段飞线它会布4段。如果你只希望布其中两个焊盘之间的那一段那就不能选“Net”要选“Connection”或者直接在板子上点选那一段飞线。这个区别很重要很多人布完发现不该动的连接也被动了其实就是选错了对象类型。3.2 框选局部飞线做连接级自动布线第二种方式适合处理局部拥堵区域。直接点选一根飞线或者框选一小片区域内的多个飞线然后执行Route Auto Route Connection。布线器只处理当前高亮的所有连接。这个模式特别适合用来“打补丁”。我在很多板子上都会先手动布关键部分再全板自动布线跑一遍粗结果然后挑出那些布得乱七八糟的局部连接删掉之后框选这些飞线用Connection级自动布线重新布。因为布线的范围小了算法搜索时间短成功率更高结果也更符合预期。这个连接级自动布线的另一个用处是处理多次布线的遗留问题。比如你在板上手动绕了几根线其他飞线还没动就可以选中这些剩余飞线统一自动布线。整板飞线太多时一上来就全选自动布线布线器会陷入大量空间竞争反而不如一部分一部分来。3.3 先扇出再自动布线第三种方式更适合BGA、QFN这类引脚密集的器件。所谓扇出就是把焊盘通过一小段走线引到过孔再让内层走线去完成连接。直接让布线器从BGA中心往外穿搜索空间非常局促。但如果先执行Route Auto Route Fanout把每个焊盘引出过孔过孔自动落在焊盘外圈后续的单根自动布线就轻松很多。扇出操作里有“扇出方向”设置可以控制从哪个方向引出。这个方向不是随便选的要根据内层走线的需求来定。比如中间区域的过孔如果全部堆在一个方向内层网络就很难穿过。我建议扇出之前先打开层堆栈编辑器确定哪几个内层要用来走线然后设置扇出规则让过孔尽量均匀分布。扇出完成后再选中具体网络执行自动布线成功率会有肉眼可见的提升。3.4 中断、锁定与续跑的细节自动布线器运行过程中是可以随时中断的快捷键Esc或者直接点停止按钮正在进行的计算都会停。中断后已经完成的那部分走线会保留在板上。你可以先把这些完成走线锁定再去调整剩余部分的规则然后继续布线。续跑时布线器会自动避开已经锁定的走线所以不会推倒重来。我通常的操作是先在自动布线前把关键网络手动布好并锁定再让布线器处理外围网络如果中途发现规则不合理就中断、改规则、重新选中剩余飞线继续。这个“分步调参”的思路在复杂板上非常实用不要每次遇到卡住就全板重来那样效率太低。4. 单根自动布线跑完之后怎么判断这根线能不能用走线只是画通了剩下的问题是判断质量。很多初学者看到绿色飞线消失就以为完成实际上只是“能连通”离“能交付”还有距离。我会按下面这几步验证。4.1 DRC的重点检查项DRC快捷键在AD25里是TD。自动布线完成后第一轮DRC大概率会报一些问题常见的就几类间距违规、过孔类型违规、走线宽度违规、未连接网络。间距违规通常出现在布线器尝试钻空子但空间不足的地方。如果你用的是第2.2节里的差异化间距规则这类问题会比较少如果用的是统一间距就会集中爆发。DRC报告不是把数字清零就算完要去看违规所在区域。如果一簇违规集中在同一个器件下方说明布线器对那个区域的空间判断过于乐观。与其逐个手动修不如把那片区域的连接删掉让布线器用放宽之后的规则再来一遍。如果违规分布很散说明规则参数本身不合适不要妄想靠手动一个个修干净回到规则管理器调整才是正路。4.2 回流路径与“看起来通了”的陷阱这里我想多说一句信号路径的事。单根自动布线很容易把一根网络布成一根从焊盘A到焊盘B的线但从信号完整性角度看电流必须由信号线和返回平面共同构成回路。如果一根高速信号线自动布到了电源平面分割边缘上方或者返回路径被一个过孔逼着绕了很远信号质量就会出问题。自动布线器通常不会主动替你想返回路径更不会在旁边顺手放一个地孔。我自己的检查习惯是对于高速信号或模拟敏感网络自动布线完成后把它周围的路况重新看一遍。底层或者相邻层有没有完整的地平面有没有跨分割有没有和敏感网络平行跑出太长距离。发现问题就直接手动微调不要指望再跑一次自动布线能自己变好。自动布线器没有这个“悟性”这个判断只能由人来下。4.3 手动微调和自动布线的配合模式自动布线结果不理想时我常用的补救流程是先用Un-Route把某个局部网络删掉再用手动交互式布线把关键区域走好剩下的非敏感区域再交给自动布线器。这种混合操作的好处是关键路径由人控制重复劳动部分交给算法两边各取所长。操作时记住一个细节被锁定的走线在自动布线器眼里和普通走线不一样默认不会被改动。所以当你手动微调好一段线之后按快捷键把线锁定再让自动布线器跑后续部分它就会绕着走。这是半自动布线工作流里很关键的一步。很多人调完一段线忘了锁定自动布线器跑完一圈回来把你刚调好的部分全部改掉心情极其崩溃。锁上就不会发生这种事。5. 我用AD25做单根自动布线攒下的几个实际经验最后分享几个用下来最值得说的事情不是教程式的总结更像踩坑之后养成的条件反射。5.1 布线失败先查规则再怀疑算法经常有人抱怨AD的自动布线器不好使我帮他看板子发现他把所有规则都设成了同一个最小值板子密度又高根本没给布线器留下操作空间。自动布线算法的逻辑是既满足约束又尽量缩短路径当约束把它逼进死角时它只能放弃。这时候骂算法没有意义调整规则才是正解。但反过来说规则放得太宽也不行。搜索空间会变得特别大布线器反而不知道该怎么走最后绕出一大圈奇怪的路径。我处理这种情况的办法是“预布线加锁定”把关键路径用手动走线先钉死再让算法处理剩余部分相当于给布线器立了几根“骨架”它就有方向感了。5.2 查线不要只盯着当前看到的层单根走线自动布线有个很容易忽略的地方当你指定一个Net自动布线它可能绕到另一层去了你只在顶层视图看根本不知道全貌。AD25会用不同颜色显示不同层的走线但如果其他层被隐藏了你就漏看了。我建议自动布线完成后在视图配置里把所有启用的层都点亮一层一层过一遍。更高效的办法是用网络高亮功能单独看某根网络在所有层的完整走向。这样可以快速发现那些“看起来通了、实际在底层绕了个超远环”的尴尬路径。对于多层板来说这种检查习惯比DRC清零更重要因为DRC检查的是规则不是拓扑合理性。5.3 别忘了Skip和推挤布线这两个配合工具自动布线器的Skip功能就是设置布线过程中跳过的过孔数量、包围层数等参数能提高通路率。在路径特别拥堵时打开布线器会在搜索路径时尝试跳过障碍而不是硬穿成功率会高一些。推挤布线则是配合交互式布线用的手动调整时推挤周围的线自动让出空间。两者虽然不算单根自动布线本身但在整理自动布线结果的时候经常能用上。5.4 差分对自动布线能帮一半忙等长还是要自己来AD25的自动布线命令支持差分对网络。你选定一组差分对执行自动布线它会同时布两根线保持间距和规则中设定的耦合关系。因为差分规则里已经定义了配对关系、间距和宽度布线器能一起处理。但是等长它不会替你完成。自动布线器只负责把线布通不等长。等长部分一般要用交互式长度调谐工具手动处理或者等自动布线完成后再跑一遍等长调整。我处理差分对的顺序是先让自动布线器把基础路径布通检查间距是否恒定的然后手动做等长优化。这样分工之后差分对布线工作里最繁琐的“寻找可行通道”这部分就省下来了。另外提一个看似不起眼的习惯每次自动布线结束我会马上保存文件。自动布线器在复杂板上计算量很大如果在后续误操作或者软件卡顿至少能回到上一个可靠状态。这个习惯看着简单真遇到问题的时候能帮你省下大半天返工时间。