第一章 信号训练概述:什么是信号训练,为什么需要它

各位好,我是老张,做了十几年高速互连设计。今天咱们聊聊信号训练(Signal Training)——说白了,就是让发射端和接收端在数据传输前,先“握个手、对个暗号”,把信号质量调到最佳状态。

你可能会问:为什么非要这么麻烦?直接发数据不行吗?

嗯,我开始也这么想。直到有一次,一个PCIe Gen3项目,板子跑在8GT/s,眼图死活睁不开。调预加重、调均衡、甚至换了PCB材料……最后才发现,是信号训练流程里一个参数没配对。

核心结论:信号训练是高速串行链路的“出厂校准”。没有它,再好的硬件也是白搭。

1.1 什么是信号训练?

信号训练是一套在链路初始化阶段执行的“握手-协商-调优”流程。包含三步:

  • 链路初始化:检测对方是否存在,确定通道极性、位宽。
  • 参数协商:交换双方支持的能力(速率、预加重强度、均衡档位)。
  • 自适应调优:根据实际信道特性,动态调整发送端和接收端的参数,让眼图达到最优。

举个例子:你插上一根USB 3.0线,电脑不会立刻传数据,它会先让两端的PHY芯片“聊几句”——把信号摆幅、去加重、均衡器的系数定下来。这个“聊天”就是信号训练。

我个人习惯:把信号训练看作一场“信号版的婚礼”——先认识,再磨合,最后过日子。不经过这个流程,直接发数据就像闪婚,迟早出问题。

1.2 为什么高速链路离不开信号训练?

原因有三个,我一个个说。

原因一:信道是不完美的

实际PCB走线有损耗、有反射、有串扰。频率越高,信号畸变越严重。具体数据看下表:

信号速率 无训练时眼高(mV) 有训练时眼高(mV) 改善幅度
5 GT/s (PCIe Gen2) 320 420 +31%
8 GT/s (PCIe Gen3) 190 310 +63%
16 GT/s (PCIe Gen4) 90 220 +144%

你看,速率越高,训练带来的收益越大。没有训练,16 GT/s的眼图几乎闭死。

原因二:芯片工艺偏差

同一批晶圆产出的PHY芯片,驱动能力、接收灵敏度也会有差异。信号训练能自动补偿这种差异,让每一块板子都工作在“最优个体”状态下。

避坑指南:我曾经遇到过一批板子,其中几块在低温下链路起不来。查了两周,发现是信号训练里接收端均衡系数初始值不适合低温特性。后来我们增加了温度补偿因子,问题才解决。所以,芯片的工艺-温度-电压(PVT)变化,设计时一定要留余量。

原因三:连接器和线缆的影响

对于可插拔接口(如SFP+、QSFP、HDMI),连接器的接触电阻、线缆长度、老化程度都会改变通道特性。信号训练能在每次热插拔后重新校准,保证链路质量。

1.3 信号训练的典型流程

大多数高速串行标准(PCIe、USB、SATA、DisplayPort)的训练流程大同小异。我们以PCIe为例:

  1. 检测阶段:发射端发送训练序列(TS1/TS2),接收端检测到后回复ACK。
  2. 配置阶段:交换链路能力(速率、宽度、预加重档位)。
  3. 调优阶段:发送端调整去加重系数,接收端调整CTLE/DFE均衡,双方反复迭代,直到眼图指标达标。
  4. 锁定阶段:确认参数有效,进入正常数据传输。

关键点:调优阶段通常有几百次微调迭代。每一次迭代,发送端发一个码型,接收端测量眼高/眼宽,反馈给发送端“再大一点”或“再小一点”。这个过程必须在几十微秒内完成。

下面这张图把整个信号训练的核心流程画出来了,方便你对照理解:

信号训练核心流程 链路检测 (TS序列) 能力协商 (速率/宽度) 调优循环 (去重+均衡迭代) 发送端调去加重 → 接收端测眼图 → 反馈调整 达标? 否 是 锁定 说明 1. 检测阶段: 发射端发送训练序列TS1/TS2,接收端检测并回复ACK。 2. 协商阶段: 交换支持的能力(速率、宽度、预加重档位等)。 3. 调优阶段: 发射端调去加重,接收端调CTLE/DFE,反复迭代直到眼图合格。

1.4 信号训练常见的实现方式

不同标准有不同的玩法。我列个对比表:

协议 训练序列 调优方式 最大迭代次数
PCIe 3.0/4.0 TS1/TS2 + EIOS 去加重+CTLE+DFE 1024
USB 3.2 Gen2 TSEQ/TS1 摆幅+去加重+CTLE 512
SATA 3.0 COMWAKE/COMRESET 摆幅+均衡 256
DisplayPort 1.4 Training Pattern 1-4 摆幅+预加重+CTLE 384

我的一点建议:设计跨协议兼容的芯片时,最好把训练状态机做成可配置的。我在一个SERDES项目中就吃过亏——不同协议的调优时序差异很大,写死在RTL里,后期改协议时苦不堪言。

1.5 信号训练失效的常见场景

你想想看,既然训练这么重要,那它失效怎么办?我总结了几种典型情况:

  • 训练超时:链路抖动太大,双方永远无法达成一致。通常是因为电源噪声太大或参考时钟精度不够。
  • 错误收敛:调优进入局部最优,但实际眼图质量差。我在一个10Gbps项目上遇到过,DFE系数收敛到了一个次优解,导致误码率忽高忽低。
  • 协议不匹配:发射端和接收端对训练序列的理解不同。比如LSB/MSB顺序反了,训练直接失败。

我曾经处理过一个疑难杂症:某客户反馈SAS链路在拔插几次后训练不成功。反复测试发现,连接器插拔导致PIN脚磨损,接触电阻从15mΩ增大到80mΩ。信号反射把训练序列破坏了。最后方案是增加了训练重试次数,并在连接器选型上提高了镀金厚度。硬件和训练软件必须一起看,不能只盯着代码。

1.6 本章小结

信号训练是高速互连的“入场券”。它通过检测、协商、调优三个步骤,自适应地克服信道损耗、工艺偏差和连接器变化。没有训练的链路,就像没调音的乐器——能响,但不好听。

后面的章节里,我们会深入具体的训练算法、参数计算方法、以及仿真和调试技巧。今天就先到这,希望这张图能帮你把训练流程理顺。