信号完整性问题简介:为什么需要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):这个我们能找到原因,也最有优化的余地。包括:
    1. 数据相关抖动(DDJ):其实就是我们上面说的ISI。不同码型造成的边沿位置差异。
    2. 占空比失调抖动(DCD):时钟的占空比不是50%,导致上升沿和下降沿不对称。
    3. 有界不相关抖动(BUJ):串扰、电源噪声耦合过来引起的干扰。

为什么抖动对接收器是致命的?因为接收器内部有个时钟恢复电路(CDR),它会在信号边沿处锁定相位。但如果抖动太大、太快,CDR可能就跟不上,相位失锁,数据直接报废。

我在一个PCIe Gen4项目里遇到过这种情况。芯片规格书上写的总抖动容限是0.7 UI,结果板子实测有0.9 UI。最后查出来是开关电源的噪声通过耦合电容串到了数据线上。嗯,从那以后,我在做布局时都会特别注意电源和信号的隔离。

为什么要用Repeater/Retimer?

现在我们总结起来,信号在长距离传输后,面临三大问题:

  1. 损耗:幅度不够,接收器无法识别。Repeater主要解决这个。
  2. ISI 和 抖动:信号边沿模糊,时间偏差大。Retimer能做到幅度恢复+时钟再定时,把抖动和ISI清理得干干净净。

下面这张SVG图,清晰展示了信号从发送端到接收端的完整问题链路,以及Repeater和Retimer各自在哪个环节起作用。

信号完整性问题与解决方案框架 发送端 TX 信道(损耗+ISI) 信号退化结果 幅度下降 抖动增大 Repeater 只放大幅度 Retimer 放大 + 时钟再定时 接收端 RX 接收端 RX 关键说明 1. Repeater 不处理时序抖动 2. Retimer 会彻底清理信号 3. 高速链路(>10 Gbps) 强烈建议用 Retimer

重要提醒:不要以为加一颗Repeater就能解决所有问题。如果你在25 Gbps以上的链路上用普通Repeater,信号抖动依然会累积。我见过一个案例,设计者用的Repeater,结果因为边沿抖动未消除,整个链路的误码率(BER)差到没法用。最后换成Retimer才搞定。

所以,解决信号完整性问题,关键是诊断损耗、ISI和抖动的“权重”。如果只是损耗大,Repeater够用。如果抖动和ISI是主要矛盾,直接上Retimer,省心多了。