等长绕线的理论基础
做等长绕线之前,你总得搞清楚它到底在解决什么问题。说白了,就是让一组信号同时到达接收端。为什么要同时?因为现在的DDR、PCIe这些高速总线,接收器是在同一个时钟沿上采样多个信号的,谁先到、谁后到,时序窗口就被挤没了。
我个人习惯先把这几个物理概念理一遍:传播时延、信号速率、介电常数,以及它们和物理长度的关系。你想想看,如果你连信号在板子上跑多快都不知道,怎么知道绕多少线才对齐?
传播时延 —— 单位长度上的时间差
传播时延,英文叫 Propagation Delay,通常用 ps/inch 或 ps/mm 表示。它反映的是信号每走过单位长度,需要花多少时间。我在一个DDR3的项目里遇到过,两个字节通道差了20mil长度,我以为没事,结果跑起来数据眼图直接塌了。后来查出来,那20mil对应大约3.5ps的时延差,而接收端的setup/hold窗口只有±5ps——几乎撑满。
但实际操作中,我们更常用的是:Tpd = √εr / c,其中c是光速,εr是等效介电常数。嗯,这里有个陷阱——等效介电常数不是板材的Dk,而是走线周围介质加权后的值。
信号速率 —— 电流不走直线
很多人以为信号速率≈光速,其实不对。信号在PCB上的传输速度大约是光速的 40%~70%。为什么?因为电磁场大部分能量在介质里跑,介质会“拖慢”它。
关键点在这:
- 光速:约
3.0×10^8 m/s,换算成11800 ps/inch - FR4内层走线 (Er≈4.2):约
170 ps/inch - FR4表层走线 (Er≈3.5~4.0):约
155 ps/inch(微带线)
我记得有次培训,新同事说“我算出来内层应该和表层一样”,我说你拿示波器测一下同一个长度,内层信号比表层慢一截。他当场测完就信了。说白了,介质不一样,速度就不一样。
介电常数 —— 材料说了算
介电常数(Dk/Er)直接影响信号速率。FR4的Dk一般在4.2~4.5之间,但实际走线的等效Er会因为阻焊、空气、玻纤布等因素变化。我曾在一个10Gbps的SerDes项目中遇到过,同一个批次的PCB,板边和板中心的时延差了8ps——就是因为玻纤编织导致局部Er不同。
| 板材类型 | 标称Dk (1GHz) | 微带线等效Er | 典型Tpd (ps/inch) |
|---|---|---|---|
| FR4 (标准) | 4.2~4.5 | 3.5~4.0 | 155~170 |
| Megtron 6 | 3.4~3.6 | 2.8~3.2 | 140~150 |
| Rogers 4350B | 3.48 | 3.0~3.2 | 138~145 |
你看,同样1inch走线,FR4比Rogers可能多出20ps时延。等长绕线如果混用了不同层、不同板材,哪怕物理长度一样,时延也不一样。
物理长度与时延 —— 绕线的本质
讲到这里,绕线的逻辑就很清楚了:
举个例子:假设你两组信号,一组跑了6inch表层(Tpd=155ps/in),另一组跑了6inch内层(Tpd=170ps/in)。物理长度一样,但时延差是:6 × (170 - 155) = 90ps。你看,不绕线肯定出问题。
所以在EDA软件里做等长绕线时,软件内部其实一直在算:
Tdelay = Length × Tpd(layer, width, spacing)
Target = max(Tdelay of all nets)
Tune_length = (Target - Tdelay) / Tpd
说白了,软件帮你把长度转换成时延,再按最慢的那根去对齐。但我见过有人只盯着长度标尺,觉得差2mil没问题。其实在高速信号里,2mil在FR4内层对应约0.34ps,如果时钟频率10GHz,一个UI才100ps,0.34ps确实不敏感。但如果是DDR3 1600MHz,UI约625ps,等长要求通常在±5ps以内,2mil对应0.34ps可以忽略,但如果叠上其他误差,综合起来就悬了。
下面这张图总结了传播时延、信号速率、介电常数和物理长度之间的核心逻辑,你可以把它贴在工位上:
小结几条硬道理
- 传播时延不是常数,同一块板子不同层不同线宽都差很多。
- 介电常数要取等效值,不要直接拿板材Dk算。
- 物理长度相等 ≠ 时延相等,除非走线在同一层且结构一致。
- EDA软件里的等长绕线,背后就是L × Tpd这个乘法,但Tpd是自动查表算出来的。