第一章 信号训练概述:什么是信号训练,为什么需要它
各位好,我是老张,做了十几年高速互连设计。今天咱们聊聊信号训练(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为例:
- 检测阶段:发射端发送训练序列(TS1/TS2),接收端检测到后回复ACK。
- 配置阶段:交换链路能力(速率、宽度、预加重档位)。
- 调优阶段:发送端调整去加重系数,接收端调整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 本章小结
信号训练是高速互连的“入场券”。它通过检测、协商、调优三个步骤,自适应地克服信道损耗、工艺偏差和连接器变化。没有训练的链路,就像没调音的乐器——能响,但不好听。
后面的章节里,我们会深入具体的训练算法、参数计算方法、以及仿真和调试技巧。今天就先到这,希望这张图能帮你把训练流程理顺。