ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PCB等长设计核心:Signal Length与Routed Length区别及应用

PCB等长设计核心:Signal Length与Routed Length区别及应用 在PCB设计里做高速板绕不开等长这关。尤其DDR、PCIe这类并行总线一组信号如果长度差得太多时序直接跑偏板子做回来点不亮查起来又费劲又丢人。Altium Designer里天天和长度打交道的两个核心参数就是Signal Length和Routed Length这俩名字看着像实际作用完全不同很多人用错或者干脆不看等到板厂反馈、上机调试的时候才后悔。这篇东西不聊虚的就讲清楚三件事Signal Length和Routed Length怎么区分、什么时候该看哪个怎么用它们把蛇形等长做准。顺便把AD22版本在等长走线这块的几个实用更新也一并说透。无论你是刚转高速设计的新人还是被DDR4等长折磨过几次的老手照着这篇文章的流程去配置都能把等长这件事从“凭感觉”变成“看数据”。1. 等长的本质长度差的背后是时序差做等长之前先得想明白为什么非要等长。不是所有信号都需要但只要跑的是并行同步总线这个问题就躲不掉。并行总线的读写时序靠的是时钟边沿去采样数据线上的电平。数据信号和时钟信号从控制器出发经过PCB走线到达接收端如果每条线的传输延迟不一样接收端采样到的数据就会出现建立时间和保持时间不够的情况。所谓等长本质上是在控制信号飞行时间的一致性而不是为了好看、整齐。电信号在FR4板材中的传播速度大约是光速的60%左右换算下来1英寸走线大约带来160ps到180ps的延迟。看似很短但DDR4-3200一个时钟周期也就625ps数据有效窗口更短几十ps的偏差就可能吃掉大量时序裕量。所以等长不是“差不多就行”而是要量化控制。长度偏差控制在多少mil取决于总线速率、芯片时序规格、信号完整性的预算分配。比如DDR3通常按地址线相对时钟等长组内偏差控制在±20mil甚至±50mil都有见过DDR4的地址命令组很多设计规范直接要求相对时钟的skew控制在几个mil以内。这个数值怎么来不是拍脑袋定的有些来自芯片手册的tDQSS、tDSS、tDSH参数计算有些来自SI仿真结果的时域裕量分析。第一回做新项目时别偷懒老老实实推一遍时序预算你才能在Layout阶段知道每一类走线的等长约束该填多少。明白了等长为什么存在再去看Signal Length和Routed Length这两个参数才算真正有了抓手。否则你只是在软件里把规则填好并不知道这些数字到底在保护什么。2. Signal Length和Routed Length到底差在哪这是整个话题最关键的两个参数。Altium Designer中如果你选中一段走线打开Properties面板看Length相关数据会出现多个条目Signal Length、Routed Length有的版本里还有True Length和Elongation。见过很多人只盯着Routed Length看或者搞不清Signal Length为什么比Routed Length长出一截其实这两个值对应的是完全不同层面的长度。信号在板子上实际走的物理路径是“焊盘到焊盘的铜箔路径”包括过孔、焊盘、走线本身。Routed Length记录的就是这条敷铜走线从头到尾的实际物理长度它是你画出来的那些Track和弧线的总和。只要你没有手动改过、没有删除过线段Routed Length就是你肉眼可见的铜皮的累加长度。Signal Length则更接近芯片厂商和SI工程师关心的“电气长度”。它不只看铜皮长度还把过孔、封装引脚的寄生效应折算成等效走线长度加进去。在Altium里配置过孔封装时有一个参数就是过孔的等效长度叠层结构里的介质厚度、过孔尺寸、盘径都会影响这个折算比例。换句话说Signal Length是对信号实际传播路径的电气建模它更能代表信号到达接收端所经历的延迟。正因为这样在DDR等长规则里约束对象的信号长度用Signal Length来评估要比用Routed Length更贴近真实的时序关系。举一个实际项目里的例子。某块板子一组地址信号分组内所有走线的Routed Length调到几乎一致偏差不超过5mil但DRC的等长检查仍然报错。原因就是源端和末端过孔数量不同、换层次数不同导致每根线累积的过孔等效长度差异达到几十mil。用Routed Length做约束自然管不到这部分差异。后来把Matched Length规则里的长度计算切换成Signal Length重新做蛇形绕线补偿DRC才真正跑干净。那日常操作中到底该看哪个建议这样做绕线过程中的实时长度显示可以看Routed Length因为拖拽蛇形时反馈直接视觉直观但最终过DRC、交付检查时必须切换到Signal Length确认。实测下来两者差出50到100mil的情况非常常见遇到叠层厚、过孔多的板子差距只会更大。3. 怎么用这两个参数做“看得见”的蛇形等长蛇形走线的本质就是把多余的线长通过“绕弯”的方式补上去。听起来简单但真正操作时蛇形该绕多大振幅、多大间距、走线间距和线宽的比例是多少都有讲究。这些参数直接影响信号质量不是随便拉个S形就交差的。3.1 先把设计规则吃透Matched Length规则配置等长检查靠的不是人眼是Altium Designer的Matched Length设计规则。打开PCB设计规则面板找到High Speed类目下的Matched Lengths这里才是等长控制的真正主战场。关键参数有三个。Min/Max Length定义绝对长度范围适合给“全局绝对长度”约束类信号用。Tolerance是的就是等长偏差表示组内最大最小值的允差。Amplitude和Gap是蛇形绕线时的默认振幅和间距前者决定你每绕一个S弯补多长线后者决定相邻蛇形臂之间的空气隙。信号分组也在这里处理。可以手动添加一个个网络但强烈建议先在原理图或PCB里把需要等长的网络归到同一个Net Class然后在Matched Length规则里直接以Class为作用对象来配置。这样后面增删网络、调整约束都比单个网络维护省心得多。一个比较稳妥的Tolerance起始值DDR3数据组可以先放±20milDDR4地址控制组建议更紧直接设±5mil甚至更低具体按芯片手册来。这里有一个很多人没注意的选项就是规则作用对象里的“匹配网络”方式。在Matched Length中既可以按原理图里的差分对信号对做匹配也可以按Class做组内匹配还有按XSignals匹配。如果你是在做多片DDR的拓扑记得用XSignals的方式去匹配。XSignals会把源端到每个颗粒的完整路径都纳入计算比单纯网络匹配更贴近实际信号传输路径。3.2 长度不够用交互式蛇形走线精准补长规则配置好了接下来就是实际操作。选中要绕线的走线执行菜单Route Interactive Length Tuning或者直接按快捷键TR部分版本是UR取决于你的快捷键配置鼠标靠近走线时会出现蛇形预览。此时按Tab键打开属性面板能看到实时长度读数一边拖着鼠标绕线一边观察当前长度和目标长度之间的差值。这个差值就是你要用蛇形补出来的量。回到前面说的Routed Length和Signal Length在这个环节就体现出操作细节了。拖蛇形时面板上显示的是当前走线的物理长度累计它不会实时算过孔等效这没问题因为补长补的是铜皮长度。但你要心里有数DRC最终用的是Signal Length。所以操作上建议先把走线全部连通过孔也打好所有层都走完了再统一做蛇形补偿。这时候的Routed Length和Signal Length差额是固定的绕线时只需要把每一根线补到“最长的基准线长度 过孔折算差额”即可。在走线时按小键盘的3和4可以实时调整蛇形的振幅和间距数字1和2调节蛇形爬坡的弧度。有一个容易被忽略的细节蛇形线的间距Gap不能太小。常规经验是蛇形间距至少要不小于3倍线宽如果在内层且旁边有平行长走线建议拉到4到5倍线宽以上。间距太小相邻蛇形臂之间的耦合会明显增加差模串扰变大反而得不偿失。3.3 自动/半自动等长交互式绕线的小技巧在实际拉蛇形的时候不需要每一段都手动拖。先把鼠标放在走线上按下Tab在Length Tuning面板的目标长度一栏填上目标值然后直接沿走线方向拖动鼠标蛇形会自动展开。靠近目标长度时蛇形振幅会自动收敛光标附近也会出现实时数值。再配合快捷键ShiftF可以快速在PCB里筛选网络批量定位需要绕线的对象。等长绕完以后建议逐根检查一遍是否出现锐角折弯、间距是否均匀以及蛇形是否跨过了其他网络的参考平面切割区域。一个常见的低级错误是蛇形绕线跨过了分割的电源平面或地平面导致信号的回流路径被打断等长是做到了信号完整性反而更差了。这种情况在高速设计里属于性价比极低的自找麻烦。3.4 PCB面板的两个核心视图用数据看板管控进度Altium Designer的PCB面板里有两个和长度相关的视图分别是Nets和Length。Nets视图适合看网络归属和DRC状态Length视图则是专门的长度数据仪表盘。在Length视图下你可以看到PCB中的每条网络、每个XSignal的Signal Length、Routed Length等关键字段也可以自由添加显示列。把所有需要等长的网络加进去按长度排序就能一眼找出最短板和最长的线。板子规模大的时候这里就是你的等长管控总览不需要一根根点开Properties看。这里分享我自己的习惯在Length视图里打开Routed Length、Signal Length、Target Length、Length Deviation From Target这几个字段。Target Length在规则里配置好之后会自动计算显示偏差值则直接标红一眼扫过去就知道哪根线还没绕到位。比一根根去点选网络效率高太多了。4. 蛇形等长操作中的几个细节与验证手段等长不是绕完就完事后续的验证和微调同样重要。因为蛇形绕线本身只是形式最终要落实到DRC报告里的数字是否达标。4.1 绕完蛇形后DRC怎么查才算数完成绕线后执行Tools Design Rule Check确保Matched Length规则项已经勾选。DRC跑完Messages面板里会列出所有不满足等长约束的网络对或XSignals双击报文可以直接跳转定位到问题网络。这里要强调一下DRC结果里列出的长度值是Altium按照你在规则里选择的计算方式得出的。默认模式往往是走线铜箔长度也就是Routed Length的累计。如果你的设计要求参考Signal Length务必去Matched Length规则里把“匹配长度计算方式”切换成Signal Length再跑一次DRC。两种方式得到的DRC结果很可能不一致严不严格要看设计规范而定。我见过好几个项目因为默认用Routed Length过DRC板厂回来后整组过孔换大孔时序直接出问题。4.2 等长检查的显示设置在板上直接标出偏差新版本Altium里可以在PCB中开启等长长度标尺的可视化显示也就是选择一段走线或网络后在Properties面板中打开Length Tuning的显示Altium会直接在被选中走线旁标注当前长度和目标长度的差值绿勾红叉一目了然。批量检查时配合Filter面板选中一整类信号扫一眼板上标出的数字就能快速判断出哪根线差了过多。如果是刚接触蛇形等长的朋友我建议养成一个习惯绕线之前在Properties面板里先把当前长度和目标长度记下来新建一个Excel表格把一组信号所有网络的Routed Length、Signal Length偏差都记录进去绕完一根更新一次。等长这种活儿最忌讳“我以为绕得差不多了”到最后DRC一亮灯才发现补了白补。5. AD22版的新特性等长操作的“手感和效率”提升Altium Designer 22这个版本在PCB布线模块尤其是等长走线相关操作上做了几个很实在的更新。不扯虚的说说实际使用中感受明显的地方。5.1 交互式蛇形绕线的“动态等长”功能在AD22中交互式长度调谐增加了更智能的动态反馈。具体表现是当你操作蛇形绕线接近目标长度时走线形态会自适应地调整蛇形弯曲的松紧度避免撞线、压线的情况。老版本里蛇形绕到后来经常出现蛇形臂之间间距突然变小甚至交织在一起需要手动一截一截调整。AD22在这块的优化是蛇形臂会自动保持用户设定的Gap距离即使转弯处也不会轻易缩水。实测体验是绕一组32根的DDR3地址线手感明显比之前顺滑特别是在拐角处蛇形的过渡弧线处理得更加自然不再出现“硬掰”的小半径圆弧。绕完之后的信号质量也更干净因为最小弯曲半径保持得较好。5.2 长度面板新增信号长度分布显示AD22的PCB面板Length视图里新增了更详细的长度分布分析显示。在面板设置中选择显示历史分布或长度直方图你不需要一根根比对扫一眼直方图就能看出整组网络的长度分布集中度。如果直方图里有一两个点离群不用猜肯定就是那两根没绕到位或绕过了的信号。直方图的引入对大面积等长组的排查效率提升明显。尤其DDR3/4的地址线动辄二三十根靠肉眼逐根看数字费时且容易忽略。打开直方图后分布形态是否符合预期几秒钟就有结论。5.3 过孔等长折算的显示优化上一节讲过Signal Length是把过孔的等效长度计入总长度的。AD22的改进在于PCB单端或差分走线的Properties面板中长度属性对过孔等效长度的拆解显示更加清晰你能直接看到当前网络的总Signal Length中有多少是走线长度有多少是过孔折算长度有多少是引脚封装折算长度。这个拆解对调试太有用了。之前遇到等长DRC不过的情况往往猜不到差异来自何处现在拆解字段一打开差异是在走线段还是过孔段全部摊开来看。排查问题时直接瞄准差异大的环节处理省去了很多摸索。5.4 更智能的XSignals等长匹配AD22对XSignals的处理逻辑也有升级在处理多负载拓扑时XSignals能更准确地识别从驱动端到每个负载端的独立路径并且对每一段路径单独做长度累计。这意味着在做一驱多的等长控制时你能检查到每一个负载分支是否都符合约束而不是只看到从源端出发的主干长度。实际项目里做DDR4的地址线一驱多颗粒每一路分支的目标长度可能存在差异AD22能分别显示每一路的Signal Length和偏差再用蛇形逐路修正效率提升非常明显。如果你们还在用老版本做一驱多的板子强烈建议升级试试这个改进属于“回不去”的那种。6. 避坑指南这些等长问题十个人九个遇到过最后整理几个我实际踩过、也帮别人排查过的等长相关高频问题按典型程度排个序供大家参考。DRC检查项没勾选Matched Length。这种最坑规则配好了也绕完线了最后DRC报告里干干净净一片绿以为没问题直接发板。实际上只是等长规则没参与检查。检查方法很简单DRC设置里搜Matched确认勾选状态。绕线时只看长度没看DRC计算方式。也就是全文档反复强调的Signal Length和Routed Length混用问题。逐根绕好之后把Matched Length规则里的计算方式切到Signal Length再审视一遍心里就踏实了。蛇形间距盲目缩小绕完DRC过了SI仿真却挂了。蛇形线间距小于3倍线宽后线间耦合增长明显近端串扰增大。风险不在等长本身而在你为等长付出的信号质量代价。建议用3倍线宽作为底线来设Gap。增删走线以后没有同步更新蛇形。有时候调整了一根走线的路径长度变了却没重新绕蛇形等到板子回来才发现时序出问题。规范流程是任何影响走线长度的修改后必须重新跑一次Matched Length的DRC。过孔换层导致的长度差异被忽略。高速总线中相邻层的切换会增加额外的过孔延时。如果代码里夹着一根换层次数明显多于其他线的信号它的Signal Length往往偏大。别只盯着走线长度过孔数量过多时优先调整拓扑减少换层。再分享一个排查技巧当DRC报告报出某根线的长度偏差较大时不要急着直接拖蛇形。先用CtrlH选中网络在Properties面板里看它到底多了多少、少了多少再看拆解字段确认差异主要是出现在走线长度还是过孔折算。先定位差异来源再动手盲目拖蛇形只会越改越乱。7. 等长设计最后的落地经验蛇形等长这件事做到最后拼的不是技巧是流程和习惯。规则怎么填、用Signal Length还是Routed Length、绕完之后怎么验证这些如果每次都是临场发挥就会在不同项目里反复踩同样的坑。把一套流程固定下来每次做高速板都按同样的顺序走一遍问题自然会少很多。我个人习惯是画板之前先把所有需要等长的网络分组定义好规格书里的skew要求直接换算成设计规则里Tolerance的数值走线过程中阶段性地切到Length视图看分布直方图心中有数但不强求一步到位全部走完先跑Routed Length的DRC粗查长度再切Signal Length精查过孔差异和整体裕量。最后发给板厂之前逐个XSignal展开确认所有分支都在容差范围里面。这套流程走下来DDR3、DDR4、MIPI这类并行总线的等长问题基本能在设计阶段全部消化不留到贴片回来再后悔。Altium Designer的等长工具这几年确实越做越顺手但工具只是辅助真正的判断力还是来自于对信号长度、电气延迟和时序预算的理解。把这几个概念想通了不管软件怎么更新你都能快速上手。希望这篇文章能把Signal Length和Routed Length这两个容易被混淆的概念讲透让各位在做蛇形等长的时候少一点玄学多一点把握。
返回列表