4. PCB叠层与走线延时计算
做PCB等长设计,说到底就是在跟时间赛跑。信号从驱动端走到接收端,花了多少皮秒,能不能满足时序窗口——这些全看叠层结构和走线参数。
我记得刚入行那会儿,画过一块8层板,DDR3数据线等长约束设得死死的,结果仿真出来时序还是差点意思。后来才发现,我把微带线和带状线的延时算混了。嗯,从那以后,我对叠层和延时的关系就特别敏感。
4.1 叠层结构决定了什么?
先看一个最基础的问题:信号走在外层和内层,有什么本质区别?
- 微带线(Microstrip)——走在外层,一侧是参考平面,另一侧是空气(或阻焊)。电场一部分在PCB介质里,一部分在空气里。
- 带状线(Stripline)——走在内层,上下都有参考平面,电场完全被介质包裹。
这个区别直接影响了有效介电常数 εeff。微带线的 εeff 介于空气(εr=1)和介质(εr≈4.2)之间,而带状线的 εeff 就等于介质本身的 εr。
说白了,信号在微带线上跑得快,在带状线上跑得慢。同一根50mm的走线,放在外层和内层,延时能差出将近10ps。等长设计里,这可不是个小数目。
4.2 信号在PCB上到底跑多快?
信号传播速度的公式很简单:
v = c / √εeff
其中 c = 3×10⁸ m/s(光速),εeff 是有效介电常数。你想想看,信号不是在空中飞,是在介质里“挤”着走,速度自然被拖慢了。
对于FR4材料(εr ≈ 4.2):
- 微带线:εeff ≈ 3.0~3.5 → v ≈ 1.6~1.73×10⁸ m/s
- 带状线:εeff = εr ≈ 4.2 → v ≈ 1.46×10⁸ m/s
把速度换算成单位长度延时,工程上更好用:
Tpd = 1 / v (单位:ps/mm)
我常用的记忆方法是:微带线约 5.9 ps/mm,带状线约 6.85 ps/mm。FR4板材下基本在这个范围,心里有个数就行。
4.3 延时计算公式与工程经验值
先给出精确公式,再看工程简化。
微带线有效介电常数计算:
εeff = (εr + 1) / 2 + (εr - 1) / 2 × 1 / √(1 + 12H / W)
其中 W 是线宽,H 是介质厚度。这个公式把线宽和层厚对介电常数的影响考虑进去了。
带状线 则简单得多:εeff = εr,全填充,没有近似过程。
下面这张对比表,涵盖了日常设计中最常用的参数:
| 特性 | 微带线(外层) | 带状线(内层) |
|---|---|---|
| 参考平面 | 单侧 | 双侧 |
| εeff 范围(FR4) | 3.0 ~ 3.5 | 4.2(等于 εr) |
| 传播速度(×10⁸ m/s) | 1.60 ~ 1.73 | 1.46 |
| 单位延时(ps/mm) | 5.8 ~ 6.25 | 6.85 |
| 工程常用值(ps/mm) | 5.9 | 6.85 |
| 串扰 | 较大 | 较小 |
我在项目中见过很多工程师直接用“6 ps/mm”一杆子打天下,结果微带线和带状线混着走的时候,等长误差累积到十几ps,时序直接崩了。
下面这张知识体系图,帮你把从叠层到等长设计的整个链路串起来:
4.4 等长设计中的延时匹配
知道了单位延时,等长设计就变成了一个简单的乘法问题:
延时误差 = 走线长度差 × 单位延时(ps/mm)
但不同协议对延时误差的容忍度天差地别。下面这张表是我从几个实际项目中整理出来的:
| 协议 | 等长容差(mm) | 延时容差(ps) | 说明 |
|---|---|---|---|
| DDR3 | ±5 | ±30 | 相对宽松,但地址/控制组仍需注意 |
| DDR4 | ±2 | ±12 | 数据组要求严格 |
| DDR5 | ±1 | ±6 | 非常严格,建议仿真验证 |
| PCIe Gen4 | ±0.5 | ±3 | 差分对内匹配,极严格 |
| USB 3.0 | ±1 | ±6 | 差分对内等长 |
| 1000Base-T | ±2 | ±12 | 四对差分线间匹配 |
举个例子:DDR4 数据线要求等长容差 ±2mm。如果一组走线全部走在微带层,延时误差约 ±12ps;但要是其中有一段走了内层,那段每毫米多出约 0.85ps,2mm 就多出 1.7ps。看起来不多,但当整组走线跨了多个层,累积误差很容易超限。
4.5 避坑指南与个人经验
做了十几年PCB,在这些坑里栽过跟头,也爬出来过。分享几个最实用的体会:
- 不要混用延时系数。 我曾经在一个项目里,5条DDR4数据线走了3种不同的层,用的却是同一个延时系数去算等长。结果仿真出来最大误差到了 18ps,超了DDR4的容限。后来老老实实按每层实际系数分别算,才收回来。
- 小心过孔带来的附加延时。 一个过孔大概贡献 5~10ps 的延时(取决于孔径、焊盘、反焊盘)。如果一组走线里有的打了过孔、有的没打,这本身就会产生等长误差。我建议在等长规则里把过孔的影响统一考虑进去。
- 高频下 εr 会变化。 FR4 在 1GHz 以下可以用 4.2,到了 5GHz 以上可能会降到 4.0 甚至 3.8。高速设计一定要用材料厂家提供的 Dk(f) 曲线,别死抱着静态值不放。
- 等长不是越长越好。 有些工程师为了匹配长度,把短的走线绕得很远,结果绕线的区域引入了额外的串扰和辐射。我的原则是:在满足等长容差的前提下,尽量让走线短而直,不要为了 0.5mm 的匹配去绕一大圈。
最后说一句:叠层和延时计算是等长设计的底层逻辑,你越早把它吃透,后面走弯路的机会就越少。这块基础打牢了,遇到DDR5、PCIe Gen5这些高速协议时,你心里才有底。