尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

高速PCB等长布线:Altium Designer蛇形走线实操全攻略

高速PCB等长布线:Altium Designer蛇形走线实操全攻略 DDR3不跑等长印象里第一版投板后读写时序偶发不稳定排查了整整一周才把矛头指向那组地址线——两端相差了将近800mil。后来老老实实在Altium Designer里补蛇形走线一次解决问题。这些年做高速PCB蛇形走线几乎是绕不开的必修课DDR总线、USB差分对、HDMI、PCIe只要时序上要求严格它就一定出场。所以这篇把我实际做等长布线时的原理理解、软件操作、参数设置和踩过的坑整理出来适合刚接触Altium Designer、正打算认真做高速板的朋友也给已经会画但没深究过为什么的人一个参考。1. 为什么高速PCB等长布线绕不开蛇形走线1.1 时序对齐的本质物理长度不等于信号延迟很多新手会把等长单纯理解为让所有走线一样长这个说法不完整。真正要满足的是时序要求也就是信号的传播时间要对齐而传播时间由物理长度、传播速度共同决定。信号在PCB走线里的传播速度取决于周围介质的介电常数。FR4板材的介电常数一般在4.2到4.6之间信号在表层微带线中的传播速度大约是每英寸165到180皮秒在内层带状线中会更慢一些大约每英寸180到190皮秒。也就是说表面走线和内层走线即使物理长度完全相同信号到达的时间也有差异。做等长布线时必须以时间预算为标尺而不是简单地以长度标尺。Altium Designer中规则设置最后都会落到物理长度单位上是因为软件已经根据叠层参数帮你把时间换算成了长度。1.2 等长布线的几种实现手段与蛇形的取舍弥补长度偏差的手段不是只有蛇形走线这一种。理论上你可以在布线阶段就把所有相关网络的物理路径设计成一致长度但这在实际操作中极其困难——芯片引脚分布决定了某些线必然更近或更远。更常见的做法是所有线先按最短路径、合理路径走完然后以其中最长的线作为基准在较短的线上额外绕出蛇形段来补足长度。其他可选的补偿手段还包括调整走线层让高速信号统一走同一层但这空间成本太高。调整过孔位置来改变走线路径长度只能做小幅修正。在BGA扇出阶段就规划好所有线的长度工程量大且容易出错。蛇形走线之所以成为主流是因为它能在占用较小面积的前提下提供很大的长度补偿范围而且Altium Designer提供了半自动化的交互式长度调整工具绕线的效率远高于手工画折线。2. 动手设置前的准备工作网络分组与规则建立2.1 用Net Class和Match Length规则锁定等长目标打开PCB文件后第一步不是急着绕线而是先建立网络分组和等长规则。在Altium Designer中等长规则位于Design - Rules - High Speed - Matched Net Lengths。双击该规则进入设置界面你会看到两个关键部分规则适用范围Where the object matches和参数约束。实际项目中我通常把DDR总线的数据线、地址控制线分别建组。方法有两种在原理图编辑器中为网络添加Net Class属性同步到PCB。直接在PCB面板中选中网络右键 - Place - Net Class批量添加。我习惯在原理图阶段就把网络分组做好因为等长规则的可读性更强。给DDR数据线组命名如DDR_DQ地址控制线组命名如DDR_ADDR到PCB阶段直接引用这些类名。2.2 目标长度从哪来时序预算的实操换算建立规则后需要设定容差和基准长度。这里的基准长度不是随便填的应该来自芯片数据手册中的时序参数。以DDR3为例数据线组DQ/DQS与DQS的时序偏差通常要求控制在几十皮秒量级换算到FR4板材上大约对应正负20到50mil。地址控制线组相对宽松常见要求是正负100到200mil。实际操作为了留出设计余量我会把数据线的等长容差收紧到正负10到20mil地址线收紧到正负50到100mil。这虽然会增加绕线工作量但避免了板材参数波动带来的风险。目标长度的确定方法在Altium Designer中有两种思路第一种先完成所有相关网络的布线查看最长的那根网络长度将它设为规则中的目标长度。这种方法更适合空间紧凑、绕线余地有限的板子。第二种根据芯片设计规范直接计算目标长度。假设DDR控制器规格要求DQS与CLK的时序偏差在正负15皮秒以内表层走线传播速度约170皮秒/英寸那么对应长度偏差就是约正负88密尔。但注意这是假定的宽松值实际DDR3数据线会更严格。实际操作中我更推荐先用第一种方法把所有线按比较自然的方式布完用PCB面板查看长度分布挑出最长的那组再设置规则。这样不容易出现规则目标长度设定过大空间根本绕不开的尴尬。3. 在Altium Designer里实操蛇形走线的完整步骤3.1 用Interactive Length Tuning工具做初次绕线相关网络布好线、规则也设定好了接下来就是真正的蛇形走线操作。菜单路径是Route - Interactive Length Tuning。也可以直接按快捷键T R在交互式布线状态下按Shift R切换模式。这个工具的使用逻辑是选中一根已经布好的走线点击走线然后往一个方向拖动鼠标软件会自动按你设定的振幅和间距生成蛇形弯折同时状态栏实时显示当前长度与目标长度的差值。操作时我建议先设定好参数再点击走线否则默认参数往往偏大绕出来密密麻麻一大片后期很难看。3.2 振幅、间距和节距这三个参数该怎么拧在起点长度调整交互模式下按Tab键打开属性面板你会看到几个直接影响绕线效果的关键参数。振幅Amplitude蛇形折弯的宽度也就是蛇形段向外凸出的距离。振幅越大每个蛇形周期提供的额外长度也越大但占用横向空间越多。我通常设在30到60mil之间。BGA器件内部走线空间小用30mil起步比较安全。间距Gap相邻两段蛇形臂之间的净距。很多人会忽略这个参数但它直接决定了串扰风险。经验值是间距至少达到3倍线宽。常规走线线宽5mil间距最好大于等于15mil。如果空间不允许底线是10mil再小就容易出问题。节距Period/Style蛇形折弯的重复周期。程序提供Accordion、Trombone、Ammeter等几种样式实际效果略有差异。Accordion手风琴式是最常见的折弯角度较大长度补偿效率高。Trombone长号式更平滑适合差分对和高速单端信号但补偿长度效率略低。还有一点属性面板上方有一个Style下拉菜单里面提供了不同的蛇形走线形状选项。单端信号用Accordion完全没问题差分对我建议用Trombone或Sawtooth原因后面避坑部分会详细说。3.3 绕完后的手工微调与实时长度校验参数设置完成后开始拖动鼠标在走线上滑过一段距离优美的蛇形弯折就自动生成了。此时注意右下角PCB Status栏里的长度读数绿色说明已达标红色说明还不够或超出。如果实际需要的补偿长度比较大一次拖动可能不够。继续在同一段走线上拖动直到满足目标长度如果绕过头了按Shift R切换回布线状态重新拖动即可。蛇形生成后还可以手工微调。选中蛇形的某个节点会出现角度和长度的控制手柄。实际操作中我很少动这些手柄——直接重新执行长度调整工具更高效避免蛇形形状不规整导致制造工艺问题。每次调整完成后按一下数字键盘上的3仅当你配置了快捷方式时或在PCB面板查看该网络的长度确认最终值在规则容差内。4. 蛇形走线落地过程中最常见的五个坑4.1 无脑把最长网络当基准导致绕线空间不足很多人布线完成后把最长的网络当成等长目标结果过长的网络正好位于BGA底部或者板边周围根本没有足够的空间给其他网络绕蛇形。更合理的做法是在布局和布线阶段就有意识地控制最长网络的位置和路径。我在做DDR布线时会先在原理图阶段标注关键芯片的位置让DQS数据线与DQS时钟信号分布在相对居中的区域。这样即使它是较长的网络其他较短的网络依然有足够的空间进行蛇形补偿。如果空间实在有限还有一个小技巧以较短的网络为目标长度来设计走线趋势然后在长网络上适当绕短一点或改走到内层。但要先核算时序预算确认还有余量。4.2 蛇形折臂间距小于3W引发隐性串扰这是蛇形走线中最隐蔽的问题之一。蛇形走线通过并行靠近的折臂产生长度补偿但这种并行结构同时也带来了耦合电容和互感。如果折臂间距太小信号会在蛇形段内部形成不必要的串扰严重时甚至引发信号质量的明显劣化。我实测过一组5mil线宽、间距只有8mil的蛇形线仿真结果显示相邻折臂间的耦合比常规布线大了将近一倍。解决方法是要么加大间距要么把补偿长度分配到更长的蛇形段上避免密集折返。如果空间实在没办法满足3W原则至少把蛇形折臂的间距做到10mil以上并把布线区域附近的时钟信号或敏感信号移开。4.3 表层内层混用后的等价长度陷阱很多4层板的地线或DDR地址线会在表层和内层之间切换。表层微带线速度高于内层带状线同样是1英寸长度信号到达时间的差异接近10%。如果在匹配长度时只看物理长度而忽略了参考层的差异那么即使DRC报告显示所有网络都在等长容差内实际时序依然可能偏差很大。解决这个问题有两个思路。第一个不同层走线的网络分组不同时混用比如整个DDR数据组要么全走表层要么全走内层。实际项目中这不一定做得到BGA扇出总会打到底层。第二个在计算补偿长度时针对内层走线做等效换算。换算方式内层实际长度乘以一个比例系数比如0.93加上表层长度作为等效长度再拿这个等效长度去做等长匹配。Altium Designer本身没有自动做这种换算的功能需要手动在Excel里算批量整理所有相关网络各层段的长度。4.4 差分对内蛇形走线的特殊注意事项差分信号的等长要求比单端更严格因为差分对内部的正负信号必须保持严格的相位关系偏差过大会导致共模噪声增大。差分对需要等长时我几乎不用Accordion样式因为这会让折返的两条线产生不对称的耦合对共模噪声的抑制效果变差。更稳妥的是用Trombone样式它的弯折更平缓在补偿长度的同时保持差分对两侧的对称性。另外差分内部的蛇形线间距要保持和正常差分对一致的线间距不能因为蛇形走线的弯折而变大或变小。我通常会在规则中单独为差分对建立一个更严格的等长规则容差直接给到正负5mil。4.5 参考平面断裂与蛇形走线区域的协同问题蛇形走线本身不会导致参考平面断裂但如果你为了让蛇形走线而改变了布线通道很可能把本来完整的参考平面切割出缝隙。比如在地平面完整的区域为绕蛇形而把走线引到了靠近板边或靠近隔离带的位置就可能使走线下方的回流路径被迫绕大圈。这带来的问题是信号的回流面积变大回路电感增加可能抵消掉等长带来的时序收益。每次绕完蛇形后切到参考平面层看一眼确认蛇形区域下方没有长的开槽或阻断面这是一个花不了几秒却能省下大麻烦的习惯。5. 投板前的复核清单与个人实操心得5.1 DRC跑过不代表万事大吉复核的重点网络判定等长规则设置完成后很多人直接批量DRC看到绿色对勾就觉得万事大吉。实际上常规DRC主要检查规则范围内是否存在违反项而等长的真正实现程度还需要看两个东西长度面板数据和信号完整性评估。在Altium Designer中打开PCB面板切换到Nets模式可以按网络查看长度信息。如果你建立了Net Class还可以从下拉菜单选择类查看整组长度分布。一个有代表性的做法是把这个面板里的最大最小值和规则容差值放在一起对比如果最大误差只是勉强卡在容差内建议再看一眼是否还有调整余量。对于真正的高速板我还会用Signal Integrity面板选关键网络跑一轮快速反射仿真。虽然这功能没有HyperLynx或SIwave专业但对判断蛇形走线有没有引入明显反射非常直观。5.2 制板厂视角的工艺确认蛇形走线在制造环节最容易出问题的是铜皮间距和蚀刻精度。折臂间距如果逼近厂家最小线距能力制造良率会明显下降。投板前我会生成制造输出之前专门针对蛇形区域做一次视觉检查打开单层显示放大到1密尔网格精度确认没有出现尖角、锯齿、间距过小等异常。对于引脚间距极密的BGA区域蛇形走线的振幅宁可小一点也不要顶着空间极限绕。另外一个工艺细节蛇形段的铜皮宽度在蚀刻后会比直线段略窄这是因为拐角处的电流密度更集中。要求较高的板子我会把蛇形段的线宽按正常走线增加1mil。最后分享一下我的工作习惯。每一个等长组绕完线后我会立即截图保存长度面板数据标注时间和修改内容放进项目文件夹。这样一旦后面改版或者需要回看设计决策所有数据都有据可查。整个等长过程不是绕上蛇形线就结束而是时序目标 - 布线分组 - 参数设定 - 绕线补偿 - 数据复核的一个完整闭环。每一个环节看起来都简单但真正把整个流程走扎实高速板上的时序问题大概率不会再来找你。
返回列表