一、等长绕线概述

我做 EDA 这块有些年头了。PCB 设计里最让新手头疼的,往往不是怎么把线连通,而是怎么让一堆线走的一样长。嗯,这就是咱们今天要聊的——等长绕线,专业点叫 Tuning。

1.1 什么是等长绕线

说白了,等长绕线就是通过蛇形线、折叠线这些绕行手法,强行让一组信号的物理走线长度相等。你想想看,信号在 PCB 上跑得飞快。同样是 1 英寸的走线,在 FR4 材料上大概需要 170 ps 的传输延时。如果一组信号线长度不一,那么到达接收端的时间就会错开,这就叫时序偏差。

我刚入行时觉得这玩意儿玄乎,后来亲手调过一次 DDR3 的时序,才明白不绕线真的不行。

  • 蛇形线:最常见的绕线方式,通过来回弯折增加长度。注意拐角尽量用圆弧或 45 度,别用直角,信号反射会小很多。
  • 折叠线:适合空间紧张的区域,像手风琴一样折叠起来,省地方。
  • 螺旋线:极少数场景用,比如晶振附近需要精确匹配的线路。

1.2 为什么要做等长

为什么要做等长呢?原因其实特别简单——信号是要同步的。一组总线上的数据、地址、控制信号,必须几乎同时抵达接收端,接收端才能正确锁存。

举个例子,DDR3 的 DQ(数据信号)和 DQS(数据选通信号),它们之间有个严格的建立时间和保持时间要求。如果 DQ 比 DQS 晚到了几个皮秒,接收端就可能采到错误的数据。这就是时序违例。时序一乱,你整个系统就崩了。

我记得有一次,一个高速 SerDes 链路眼图怎么都闭不上。查了三天,结果发现就是一对差分线长度差了几个 mil。调完等长,眼图瞬间张开。所以说,等长绕线不一定能解决所有问题,但不等长会出问题。

核心原则:等长绕线的根本目标是管理时序,不是为了让走线看起来整齐。绕线要优先满足时序需求,美观排第二。
应用场景 为什么需要等长 典型时序要求
DDR 内存接口 DQ/DQS 之间必须严格等长,地址/命令组也需等长 ±10 mil(DDR3/4),±5 mil(DDR5)
SerDes 高速串行 差分对内部等长保持共模噪声抵消,组间等长减少串扰 ±5 mil(PCIe Gen4/5)
时钟信号 时钟对 skew 敏感,等长可减少相位差 ±10 mil(通常)
并行总线 数据、地址、控制信号同频同相 ±20 mil(视频率而定)

1.3 常见应用场景

等长绕线不是所有信号都要做。哪些场景必须要做,哪些可以放一放,这里我列几个典型。

  1. DDR 内存接口
    • DQ(数据线)和 DQS(选通线)必须等长,这是死命令。DDR3/4 通常要求 ±10 mil 以内。
    • 地址/命令组(ADDR/CMD、CLK)也需要组内等长,但组间要求相对宽松。
    • 我在调 DDR3 时遇到过整个系统不稳定,排查下来就是一组地址线长度差了 20 mil。该绕的线,一定不能省。
  2. SerDes 高速串行
    • PCIe、SATA、USB 这些差分对,对内等长是基本功。差太多,共模噪声会转成差模,眼图直接闭合。
    • 组间等长看情况,比如 PCIe 多个 Lane 之间,不是所有协议都严格要求,但我的建议是能做就做,留点余量。
  3. 时钟信号
    • 时钟对 jitter 和 skew 极其敏感。多条时钟线走不等长,相位就歪了。
    • 我曾经犯过一个错,把时钟线绕得太密,结果时钟抖动大幅增加。后来才明白,时钟线可以绕,但不要绕太多次,拐角间距保持 3 倍线宽以上。
我的经验:等长绕线是把双刃剑。绕得太多了,信号质量反而会下降——蛇形线的拐角会产生寄生电容,增加串扰。优先绕那些真正影响时序的线组,别盲目统一。
避坑指南:我曾经接手过一个板子,工程师把所有信号线都绕到一模一样长,结果 DDR 怎么都跑不稳。后来发现他把时钟线也绕了,导致时钟抖动大幅增加。记住了,等长不是万能药。绕之前一定要查数据手册,确认哪些线需要等长,哪些不需要。

等长绕线的知识体系,我把它总结成下面这张图。你一看就能明白,定义、原因、应用场景、避坑,以及下一步要学的操作方法,这几个模块是环环相扣的。

等长绕线知识体系 等长绕线定义 为什么需要等长 常见应用场景 DDR 内存接口 SerDes 高速串行 时钟信号 避坑指南与注意事项 绕线不是越多越好,慎绕时钟线