信号完整性问题简介:为什么需要Repeater/Retimer?
大家好,我是你们的硬件讲师。今天我们来聊聊一个非常底层、但又绕不开的话题——信号完整性。
说白了,为什么我们的高速信号需要Repeater或者Retimer来“帮忙”?根源就在于信号传输过程中,它自己会“坏掉”。
我记得刚入行时,做过一个PCIe Gen3的项目。板子回来,插上测试卡,死活link不上。那时候我经验少,以为是驱动或者配置问题。折腾了两天,最后用示波器一看眼图——眼睛几乎闭上的。嗯,从那以后,我养成了一个习惯:在设计高速链路之前,先把损耗和抖动算清楚。
这一章,我们就把这些“坏掉”的根源讲清楚。
链路损耗:信号的“体力下降”
任何信号在PCB上走,它都会衰减。你把一根1米长的水管想象成PCB走线,水就是信号。水管越长,水压越小。这就是损耗。
损耗主要由两部分组成:
- 导体损耗:铜箔有电阻,高频电流会集中在导线表面(趋肤效应),等效电阻变大。频率越高,损耗越大。
- 介质损耗:PCB板材(如FR4、Megtron 6)在高频下会吸收能量。材料不同,损耗因子(Df)差异很大。
设计高速串行链路时,我习惯先做仿真,算算从发送端到接收端的总插损。如果插损超过芯片的能力,那眼图大概率会塌掉。
一个简单的经验值:对于PCIe Gen3 (8 GT/s),常规FR4走线,8英寸时插损约6-8 dB。很多接收器只能容忍15 dB左右的总损耗。你想想看,如果走线到12英寸以上,加Repeater就成了硬需求。
下面这个表,是我整理出的常见协议的链路损耗预算参考。注意,这只是“预算”,实际要看具体芯片的手册。
| 协议/速率 | 典型损耗限制(@Nyquist频率) | 常用板材 | 无中继最大走线长度(估算) |
|---|---|---|---|
| PCIe Gen3 (8 GT/s) | 16-20 dB | FR4 / 低损FR4 | 8-12 英寸 |
| SATA 6 Gbps | 12-15 dB | FR4 | 10-15 英寸 |
| USB 3.0 (5 Gbps) | 10-12 dB | FR4 | 8-10 英寸 |
| 100GE (25.78 Gbps) | 20-25 dB | Megtron 6 / 高损板材专用 | 3-6 英寸 |
如果你走线超过这个长度,信号连到达接收器的体力都没有了。这时候,单靠接收端的均衡器(EQ)有时也救不回来。
码间干扰(ISI):信号的“回声”
码间干扰,简称ISI,是另一个让眼睛闭上的元凶。
为什么会出现ISI?因为信号在传输时,不是瞬间就能稳定下来的。每个比特都会留下一点“尾巴”——后冲和振铃。这些尾巴会叠加到下一个比特上,干扰它的判断。
你可以把它想象成你对着山谷喊话,回音还没消失,你又喊了一句。后面那句话就会被前面的回音干扰。
在高速信号里,一个长序列的“1”会导致电平被拉到很高,紧接着一个“0”可能就跳不回来。我踩过这个坑,分享给你们:有一次测试DDR4的信号,没加CTLE均衡的通道,读出的数据就是“01110”这种码型老出错。后来算了算,就是ISI搞的鬼。
ISI的强弱,主要取决于信道的频率响应。如果信道不平坦,低频成分和高频成分走过的延迟不一样,就会产生符号间干扰。用示波器看眼图,如果眼睛位置有非常明显的“双线”或“模糊区域”,大概率就是ISI严重。
抖动来源:信号的“颤抖”
抖动,就是信号的边沿在时间轴上不再整齐,左右摇摆不定。接收器在采样时,如果抖动太大,就可能采到错误的数据。
我个人习惯把抖动来源分成两大类:
- 随机抖动(RJ):主要是热噪声、散弹噪声引起。数学上可以用高斯分布描述。它不是我们能通过设计完全消除的。
- 确定性抖动(DJ):这个我们能找到原因,也最有优化的余地。包括:
- 数据相关抖动(DDJ):其实就是我们上面说的ISI。不同码型造成的边沿位置差异。
- 占空比失调抖动(DCD):时钟的占空比不是50%,导致上升沿和下降沿不对称。
- 有界不相关抖动(BUJ):串扰、电源噪声耦合过来引起的干扰。
为什么抖动对接收器是致命的?因为接收器内部有个时钟恢复电路(CDR),它会在信号边沿处锁定相位。但如果抖动太大、太快,CDR可能就跟不上,相位失锁,数据直接报废。
我在一个PCIe Gen4项目里遇到过这种情况。芯片规格书上写的总抖动容限是0.7 UI,结果板子实测有0.9 UI。最后查出来是开关电源的噪声通过耦合电容串到了数据线上。嗯,从那以后,我在做布局时都会特别注意电源和信号的隔离。
为什么要用Repeater/Retimer?
现在我们总结起来,信号在长距离传输后,面临三大问题:
- 损耗:幅度不够,接收器无法识别。Repeater主要解决这个。
- ISI 和 抖动:信号边沿模糊,时间偏差大。Retimer能做到幅度恢复+时钟再定时,把抖动和ISI清理得干干净净。
下面这张SVG图,清晰展示了信号从发送端到接收端的完整问题链路,以及Repeater和Retimer各自在哪个环节起作用。
重要提醒:不要以为加一颗Repeater就能解决所有问题。如果你在25 Gbps以上的链路上用普通Repeater,信号抖动依然会累积。我见过一个案例,设计者用的Repeater,结果因为边沿抖动未消除,整个链路的误码率(BER)差到没法用。最后换成Retimer才搞定。
所以,解决信号完整性问题,关键是诊断损耗、ISI和抖动的“权重”。如果只是损耗大,Repeater够用。如果抖动和ISI是主要矛盾,直接上Retimer,省心多了。