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,时序直接崩了。

工程简化建议:如果叠层已经固定,拿一块测试板或者用场求解器跑一下实际延时系数,比查表准得多。我个人的习惯是:微带线取 6.0 ps/mm,带状线取 6.9 ps/mm,留一点余量。

下面这张知识体系图,帮你把从叠层到等长设计的整个链路串起来:

PCB叠层与走线延时计算知识体系 PCB叠层 → 延时计算 → 等长设计 叠层结构 微带线(外层)| 带状线(内层) 介电参数 εr | εeff | 线宽 W | 介质高 H 传播速度 v = c / √εeff 延时计算 Tpd = Len / v(ps/mm) 等长设计 容差匹配 ±5%~10% 注意参考平面 单侧 vs 双侧 光速 c = 3×10⁸ m/s 高频下εeff会变化 不同协议不同容差 DDR4 / PCIe / USB

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 四对差分线间匹配
注意:上表中的延时容差是按微带线 6 ps/mm 估算的。如果走线在内层(带状线),同样的长度差会产生更大的延时误差。设计时一定要按实际叠层换算。

举个例子:DDR4 数据线要求等长容差 ±2mm。如果一组走线全部走在微带层,延时误差约 ±12ps;但要是其中有一段走了内层,那段每毫米多出约 0.85ps,2mm 就多出 1.7ps。看起来不多,但当整组走线跨了多个层,累积误差很容易超限。

4.5 避坑指南与个人经验

做了十几年PCB,在这些坑里栽过跟头,也爬出来过。分享几个最实用的体会:

  1. 不要混用延时系数。 我曾经在一个项目里,5条DDR4数据线走了3种不同的层,用的却是同一个延时系数去算等长。结果仿真出来最大误差到了 18ps,超了DDR4的容限。后来老老实实按每层实际系数分别算,才收回来。
  2. 小心过孔带来的附加延时。 一个过孔大概贡献 5~10ps 的延时(取决于孔径、焊盘、反焊盘)。如果一组走线里有的打了过孔、有的没打,这本身就会产生等长误差。我建议在等长规则里把过孔的影响统一考虑进去。
  3. 高频下 εr 会变化。 FR4 在 1GHz 以下可以用 4.2,到了 5GHz 以上可能会降到 4.0 甚至 3.8。高速设计一定要用材料厂家提供的 Dk(f) 曲线,别死抱着静态值不放。
  4. 等长不是越长越好。 有些工程师为了匹配长度,把短的走线绕得很远,结果绕线的区域引入了额外的串扰和辐射。我的原则是:在满足等长容差的前提下,尽量让走线短而直,不要为了 0.5mm 的匹配去绕一大圈。
一个实用技巧:在 Allegro 或 Altium 里设置等长约束时,把延时规则和物理规则关联起来。比如 DDR4 数据线设置成 ±12ps,软件会自动换算成不同层的长度范围。这样既直观又不容易出错。

最后说一句:叠层和延时计算是等长设计的底层逻辑,你越早把它吃透,后面走弯路的机会就越少。这块基础打牢了,遇到DDR5、PCIe Gen5这些高速协议时,你心里才有底。