
干过几年PCB设计的人应该都见过AD软件里的Signal Length和Routed Length。这两个英文单词天天挂在Length面板上但很多人直到做等长绕线、被规则检查一次次逼疯之后才意识到它们根本不是同一个东西。今天就把这俩从定义、算法到工程用法一次性说透顺便聊聊什么时候该看哪个值哪些场景下混着用会出大事。1. 为什么一个网络会有两个长度大多数人都理解错了1.1 “布线长度”和“信号长度”的起点就不一样在Altium Designer里一个网络被选中时Properties面板会同时给出好几组长度Manhattan Length、Signal Length、Routed Length。Manhattan好理解就是两点之间的曼哈顿距离横纵坐标差加起来纯粹用来快速估算布通难度和空间占用千万别拿它做等长依据。Routed Length是已经实际布好的铜箔中心线总长度从焊盘出线开始沿着每一段走线拐弯、变弧一直累到目标焊盘。它反映的是“板上铜皮到底铺了多长”板厂做CAM、做阻抗测试、做铜箔成本估算全都按这个值来。普通两点直连的网络Routed Length大体就等于信号要走的物理距离这时候它和Signal Length几乎没有区别。可一旦网络中间串联了电阻、磁珠、电感这类器件Routed Length和Signal Length就开始分道扬镳了。Signal Length强调的是信号从驱动端引脚出发经过铜箔、过孔、串联器件内部引脚一直到接收端引脚所经历的完整电气通路长度。注意“经过器件”这四个字。一个0402的串阻电路上你当它是不占长度的理想元件可实际信号要从焊盘一端进、过电阻本体、再从另一端出这一段合计接近2mm。在25mil0.635mm量级的等长公差面前这2mm绝对不是可以忽略的误差。1.2 AD到底是在“数走线”还是在“数时间”从软件实现逻辑上看Routed Length累计的是走线Track、Arc以及焊盘/过孔中心线在二维平面内的投影长度它不关心链路里串了几个元件也不关心信号在元件内部怎么流动。Signal Length则采用“引脚到引脚”的统计方式它把一个网络内部所有用到的连接路径串起来看遇到串联电阻、磁珠、焊盘、过孔都按电气连接路径计入长度。你可以把两者理解成Routed Length是地理课上的公路里程Signal Length是物理课上的光程。同一段路中间路过一座收费站开车的人多绕了点路公路里程表可能只显示主路长度而光程会告诉你被收费站前后匝道耽误的实际路程。这个类比不完全严谨但能帮大家记住主旨一个“数铜”一个“数时间”。这两种长度在一般低速板上可以混着用一上高频信号尤其是DDR、HDMI、PCIe这类对时序敏感的总线用错一个值会直接影响等长绕线的目标设定。很多工程师绕线绕到怀疑人生根源往往不是手残而是统计口径选错了。2. 在AD里分别在哪里能看到这两个长度2.1 PCB面板和Properties窗口进入PCB界面后右下角Panels调出PCB面板在最上方的下拉框里选择Nets下方就会列出板上所有网络。选中任意一个网络Properties面板便会出现Length区域里面同时展示Manhattan、Signal、Routed三项数据。很多资料里把它们翻译成曼哈顿长度、信号长度、布线长度其实指的就是这组值。要批量对比一组地址线的差异我习惯在PCB面板的Net列表里做多选然后直接看Properties里的长度汇总。不同AD版本入口略有差异但基本都能在Net列表上看到完整的三列长度方便按差值排序快速筛出异常网络。顺便说一句这里显示的Signal Length是当前这个Net的完整信号路径不是某一段Track的长度所以用来做全链路分析是准的。2.2 报表导出和CSV如果要把全板网络的长度拉出来做复盘比如评审时对比SI工程师给的时序预算别一个个点选太慢。用Reports - Board Information进入Nets页签点Report按钮勾选Length Information软件就会生成一份包含所有网络长度信息的完整报告。里面同样能看到每个网络的Signal Length与Routed Length。把这串结果复制到Excel里做一列差值一眼就能找到哪些网络中间藏了元件哪些网络规划长度和实际走线长度严重偏离。我一般会顺手排个序专门看那些两者差值超过2mm的网络。这些网络十有八九串联了磁珠、电阻、电感或者走线经过了BGA扇出区。把它们单独拉出来和原理图对一遍基本能判断出信号链路设计是否符合预期。2.3 交互式绕线时的动态读数实际绕等长线时我用得最多的是Route - Interactive Length Tuning快捷键TR。启动后鼠标点击目标走线屏幕上会跟着一个实时显示窗口Target Length、Current Length、Delta Length。这里先提醒一句绕线过程中显示的Current Length默认跟着Routed Length走不是Signal Length。很多人绕线绕得挺开心最后规则检查却报错就是因为规则里配的是Signal Length而眼前这个动态读数是Routed Length两个值之间差了器件那一段当局者迷。所以每次布线前我都会确认一下当前这个网络里有没有串联器件。如果有TR窗口里看到的长度就只当参考真正的判据以规则检查结果为准或者干脆把规则里的Length类型调成和TR窗口一致避免自己把自己绕晕。3. 工程应用场景什么时候该用哪个值3.1 单网络等长匹配优先看Routed Length如果做的是普通信号的等长匹配比如一根SPI时钟对一个片选信号中间没有任何串联元件那么Routed Length和Signal Length的差值可以忽略直接用Routed Length做等长规则即可因为它直观、好测、板厂也认。这种情况下规则里选哪种Length类型结果基本一致没必要自找麻烦。但有一条要记住哪怕目标锁定Routed Length绕线时也必须把过孔数量给算进去。AD默认统计的是二维平面内的中心线长度过孔只作为连接点参与不累加孔深度方向的距离。同一组总线里A信号换了两次层B信号一次层都没换打开Length面板看Routed Length可能完全相等但实际时序上A信号比B信号多走了两段板厚。8层板板厚1.6mm一个通孔从顶层打到底层就是1.6mm的Z向铜柱两个过孔就额外多出3.2mm的物理路径按FR4大约6mil/ps的速度算差不多50ps的时延差。等长绕线绕到±5mil但过孔不等等于白绕。3.2 跨器件的XNet必须用Signal Length现代DDR设计里地址线通常要串联一颗0201/0402的电阻或排阻。这种“一串多”的网络在AD里被拆成Net和XNet。若你用Matched Length规则按Routed Length给它们做等长麻烦就来了每颗电阻的位置有差异从焊盘出来到电阻再出去的这段路径Routed Length没有完整统计导致明明规则全绿SI仿真却告诉你时序裕量不足。正确做法是用XSignals。Design - XSignals - Create XSignals From Net把串联电阻前后的网络绑成一个完整XSignal然后在规则里指定匹配长度类型为Signal Length。这样每个XSignal的电气链路长度才真正可比较。我第一次用XSignals处理带串阻的DDR地址组时最大的体会是原来规则检查里那种“怎么绕都绕不平”的挫败感八成不是手残而是算法没选对。举个实际例子。一组DDR3地址线跑1600MT/s数据周期约625ps地址有效窗口通常只有几百ps。一条CLK线串了一颗0402电阻Signal Length比Routed Length多78mil约1.98mm主要就是器件本体加两端焊盘的贡献换算成时延约13ps。等长组里其他纯线路网络根本没有这78mil的增量如果规则选错这13ps就会被当成绕线误差处理掉而实际上它是确定性时延偏移。有些严苛设计里地址总线对CLK的建立时间余量也就几十ps13ps足以改变评审结论。3.3 差分对与高频约束别忽略Z轴和设备引脚差分对内部等长AD默认使用Differential Pair Routing规则目标同样是Routed Length。对于板内绝大多数差分对这个设定没有任何问题因为P/N两路结构对称。但如果你把一对差分线走到BGA内部一颗电阻跨在P或N上或者两端的过孔位置不对称打开Properties对比Signal Length就会发现P和N的实际电气长度并不一样。遇到这种情况规则层面可以把差分对的等长目标切成Signal Length同时要求两端过孔尽量对称。我见过很多工程师死磕P/N的Routed Length差值绕到0.1mil可Signal Length还是差了几个mil原因就是过孔和元件引脚位置不齐。这不是玄学是统计口径问题。差分对绕线的最终目标是保证接收端的差分信号过零点对齐物理走线长度只是中间变量电气长度才是真正要匹配的物理量。3.4 从Signal Length延伸到时延估算做时序预算时单纯看AD里的长度值还不够。AD给出的Signal Length虽然考虑了串联元件和焊盘但它默认不处理过孔的Z轴、玻纤布的介电常数差异、走线铜箔的表面粗糙度。严格地说Signal Length只是电气路径长度的二维近似。实际估算时延我一般这么干先用Signal Length减去包含在其中的焊盘/引脚部分再加上过孔Z向路径的折算最后乘上叠层的单位延迟。FR4不同层不一样表层约170ps/inch内层约175到185ps/inch跟介电常数Er直接相关。配合板上最高工作频率做一阶估算如果时延差额超过时序预算的一半马上回头查布线结构。AD的长度值只是第一道筛子它筛不出来的部分要靠SI工具或手算补。针对不同目标的选型优先级我整理了一个表平时评审时直接拿出来对照工程场景优先看的Length原因普通单网络等长匹配Routed Length直观、板厂认可、无串联器件误差带串阻的总线等长XNetSignal Length完整链路器件焊盘贡献已计入差分对P/N等长Routed Length检查过孔对称性结构对称时二者等价不对称时改用Signal Length时序预算/飞行时间估算Signal Length过孔Z轴折算AD默认不含Z轴要手工补齐板厂CAM/阻抗反馈Routed Length制造只看真实铜箔路径快速评估布线资源Manhattan Length只用于早期估算不做最终依据4. 实操技巧与避坑记录绕等长前先想清楚目标4.1 规则里的Length怎么选PCB Rules and Constraints Editor里High Speed - Matched Length规则中可以设定Length类型。这里的选择高度依赖你的网络结构和工艺标准。如果是纯Net用Routed Length如果匹配对象是XSignal或者网络中间有串联器件务必选Signal Length。我的处理方式是在设计评审阶段直接约定所有等长规则统一使用Routed Length但在有串联元件的XSignal上额外增加一条Signal Length的约束两条规则一起过才算真正合格。这样既有明确的制造语言又覆盖了电气链路的真实长度两边都不吃亏。提示很多公司设计规范里写“等长误差控制在±5mil”但没有注明Length类型。规范本身没问题可一旦网络里有串阻Routed Length和Signal Length本身就差一两毫米这个规格立刻就有歧义。所以规范制定者应该写明Length类型执行者看到这类模糊描述时也要主动追问别闷头干。4.2 XSignals怎么建建完要注意什么创建XSignals的路径并不复杂但有几个坑要提醒串联元件不能是导通到平面的磁珠或电感。如果是做电源分割XSignals并不适用Signal Length对平面传导路径也没有统计意义。建立XSignal后原有Net规则不一定自动迁移需要在Matched Length里把匹配对象换成XSignal否则等于白建。有多个串联电阻并联时比如上拉/下拉电阻别让XSignal把旁路电阻路径也算进去命名时要重点检查。靠近BGA出线区的扇形走线fanout会显著增加Signal Length但在Routed Length里往往看不出异常。遇到等长差几十mil的怪问题先把BGA内的短走线和过孔位置拍平了再绕线效率会高很多。我见过不少人对着报表里的Signal Length发呆半天想不明白多出来的长度从哪来其实大部分都藏在BGA焊盘和过孔之间的那段短线上。4.3 常见问题速查表现象可能原因处理方法绕线后Routed Length已达标Matched Length仍报错规则里Length类型选了Signal Length器件引脚路径没绕进去切换规则类型或用XSignals匹配报表上网络总长度比预想小报告默认忽略过孔Z向长度需要过孔贡献时手工估算或换SI工具P/N差分对Routed Length一致Signal Length有差异两端过孔/器件引脚不对称调整过孔位置或改用Signal Length约束网络中间有磁珠/电感两个Length差很多磁珠/电感本体较长信号确实要穿过它按信号用途决定该用哪个Length别混用蛇形绕线之后Signal Length没按预期增长走线连到了平面层或铺铜区域AD对平面路径统计不完整检查网络是否走了平面Signal Length只统计信号网络路径整组网络都绕完了规则还是一片红XSignal建完没有更新规则对象到Matched Length里重新指定匹配对象4.4 我踩过的坑和排错顺序刚接触XSignals那会儿我犯过一个特别蠢的错误给带串阻的DDR地址总线设了Routed Length等长绕线时又看着Interactive Length Tuning的Current Length结果规则一直报警调了一下午也没调平。后来把规则改成Signal Length把XSignal建对一次就过了。自那以后我的流程固定成四步先看网络结构有没有串联元件再确认等长规则对象是Net还是XSignal接着确认规则里的Length类型最后才开始绕线。这四步走完百分之八十的等长怪问题都能提前排除。绕线的时候还有个小习惯TR启动Interactive Length Tuning后按Tab键把Target Length的值直接设成规则里算好的目标再打开Delta显示。一边绕一边看增量绕到正负公差以内就收手别贪多。蛇形线间距至少保证3倍线宽宁可绕密一点也不要靠得太近否则等长做对了串扰又跑出来。另外提醒一点绕完线记得跑一遍DRC看Matched Length规则是否真的全绿。很多时候眼睛看着绕平了实际因为弧线半径、拐角补偿的关系数值并没有进入公差范围。DRC是最后一道保险别省这一步。5. 最后说点个人体会用了这么多年AD我最大的感受是Signal Length和Routed Length不是谁对谁错的关系而是看你在做哪一层决策。画板、出制造资料Routed Length是硬指标做时序、对高速总线Signal Length和XSignal才是真正的朋友。如果你正在处理一组怎么绕都绕不平的高速走线先别急着怀疑自己手残打开两个长度值对比一下再检查一下规则类型和XSignal有没有建对。大概率会发现自己陷入的只是一个统计口径的误区。搞清楚这一点后面所有的等长设计都会顺很多。做硬件这行很多时候问题不在工具不好用而在我们没搞明白工具给我们的每个数字到底代表什么。能把这两个Length分清楚就已经比很多人强了。