第四章 差分走线规则设置:线宽、线距、耦合长度设置
各位工程师朋友,咱们接着聊差分信号。前面讲了差分对的基本概念,这一章我重点说说走线规则怎么设。说白了,就是三个参数:线宽、线距、耦合长度。这三个东西设好了,你的差分信号质量就有保障了。
4.1 线宽设置——别小看这根线的粗细
线宽这东西,很多人觉得随便设个5mil、6mil就行。我刚开始做设计时也这么想,结果有一次项目回来,信号眼图就是打不开。查了半天,原来是线宽太细,阻抗跑偏了。
线宽怎么定?主要看阻抗要求。一般差分信号要求100Ω或90Ω差分阻抗。你想想看,线宽越宽,阻抗越低;线宽越窄,阻抗越高。所以你得根据叠层结构来算。
经验公式(仅供参考):
4层板,介质厚度约4mil,铜厚1oz:
- 100Ω差分:线宽5mil,线距7mil(微带线)
- 90Ω差分:线宽6mil,线距8mil(微带线)
我个人习惯是先让SI工程师给个叠层参数,然后用Polar Si9000算一下。别偷懒,每个项目都要重新算。因为板材、铜厚、介质都不一样。
小技巧:在Allegro里,你可以用Setup → Constraints → Constraint Manager,在Physical选项卡里设置线宽。我一般设一个范围,比如4.5mil到5.5mil,这样布线时有点余量。
4.2 线距设置——耦合的关键
线距,就是差分对里两根线之间的距离。这个距离决定了耦合强度。距离越近,耦合越强;距离越远,耦合越弱。
为什么会这样?因为差分信号靠的是电磁场耦合。两根线靠得近,磁场互相作用强,信号就能保持对称。我遇到过有人把线距拉到20mil,结果差分信号变成了两根单端线,共模噪声大得吓人。
线距怎么设?一般遵循这个原则:
- 线距 = 2~3倍线宽,这是最常用的范围
- 比如线宽5mil,线距就设10~15mil
- 高速信号(10Gbps以上),线距可以适当缩小到1.5倍线宽
注意:线距不是越小越好。太近了,加工时容易短路,而且串扰也会增加。我曾经吃过这个亏,板厂反馈说线距3mil做不了,良率太低。后来改到5mil,问题就解决了。
在Allegro里设置线距,用Constraint Manager → Spacing。找到Diff Pair Primary Gap,填上你的目标值。我习惯再设一个Diff Pair Neck Gap,用于BGA出线时的窄线距。
4.3 耦合长度设置——别让信号走散了
耦合长度,指的是差分对两根线保持平行且等距的那段长度。这个长度越长,信号质量越好。但实际布线中,总有拐弯、过孔、BGA出线的地方,耦合会被打断。
我记得有个项目,DDR4的差分时钟,我布了很长一段,但中间有个地方两根线分开了约50mil。结果仿真一看,时序偏差了15ps。后来我把那段改成了等长绕线,问题就解决了。
耦合长度怎么设?一般要求:
- 耦合长度 ≥ 信号上升沿对应的物理长度的3倍
- 比如上升沿100ps,在FR4中传播速度约6in/ns,物理长度就是0.6in。那么耦合长度至少1.8in
- 实际项目中,我建议能耦合就耦合,尽量不断开
避坑指南:我曾经遇到一个设计,差分对在BGA下面出线时,两根线走了不同的层。结果耦合完全没了,信号质量一塌糊涂。后来我强制要求:差分对必须同层走线,除非万不得已。
4.4 差分对等长规则——Pin Pair与Relative Propagation Delay
等长,是差分信号布线的另一个核心。两根线长度不一样,信号到达时间就不一样,差分信号就变成了共模信号。嗯,这里要注意。
Allegro里等长规则有两种:
| 规则类型 | 说明 | 适用场景 |
|---|---|---|
| Pin Pair | 直接设置两个引脚之间的长度差 | 简单差分对,如时钟、复位 |
| Relative Propagation Delay | 设置相对传播延迟,单位是ps | 高速总线,如DDR、PCIe |
Pin Pair设置方法:
1. 打开Constraint Manager
2. 选择Electrical → Net → Routing
3. 找到你的差分对网络
4. 在Min/Max Propagation Delay里设置长度差
5. 一般差分对等长要求:±5mil以内
Relative Propagation Delay设置方法:
1. 在Constraint Manager里选择Electrical → Relative Propagation Delay
2. 创建一组差分对
3. 设置目标延迟(比如0ps)
4. 设置公差(比如±10ps)
5. 布线时用Delay Tune功能绕线
我个人更喜欢用Relative Propagation Delay。为什么?因为它考虑了信号传播速度,比单纯的长度更准确。你想想看,不同层的信号传播速度不一样,用长度来约束其实有误差。
经验分享:在Allegro里绕等长时,我习惯用Route → Delay Tune。选中差分对,然后拉出绕线。注意绕线时保持线距不变,别为了等长把耦合搞坏了。
4.5 实战中的常见问题
说了这么多,我总结几个实战中容易踩的坑:
- 线宽线距不匹配:设了线宽5mil,线距10mil,结果阻抗算出来是110Ω。记住,线宽和线距要一起调。
- 耦合长度不够:BGA出线时,差分对分开了很长一段。我建议在BGA下面用neck模式,线距缩小到5mil,保持耦合。
- 等长绕线破坏了耦合:有人为了等长,把一根线绕得弯弯曲曲,另一根线直着走。结果耦合全没了。正确做法是两根线一起绕。
重要提醒:差分对的等长,不是越长越好。绕线太多会增加寄生电容,影响信号质量。我一般控制在总长度的5%以内。超过这个数,建议重新布局。
好了,这一章的内容就这些。线宽、线距、耦合长度、等长规则,这四个东西搞明白了,差分信号布线就成功了一大半。下一章我们聊聊差分信号的阻抗控制,那也是个技术活。