三、SerDes技术原理:从并行到高速串行的核心机制

SerDes(Serializer/Deserializer,串行器/解串器)是FPGA高速接口设计的基石。无论是PCIe、10G以太网、JESD204B还是SRIO,其物理层核心都是SerDes通道。理解SerDes的工作原理,不能停留在“并行转串行、串行转并行”的表面认知,而必须深入到时钟架构、信号完整性补偿和编码容错三个维度。本章将从架构分层出发,逐步拆解PISO/SIPO转换、CDR时钟恢复、CTLE/DFE均衡以及8b/10b与64b/66b编码的工程实现要点。

SerDes 发送/接收链路架构与关键技术映射 发送链路 TX 并行数据 N bit @ PCLK 编码器 8b/10b 或 64b/66b PISO 并行→串行 TX 驱动 PCLK (并行时钟) SCLK (串行时钟) TX_P TX_N 信道 PCB走线 连接器 光模块 损耗/串扰 接收链路 RX RX 前端 CTLE 模拟均衡 DFE 判决反馈 CDR 时钟恢复 RX_P RX_N SIPO 串→并 解码器 10b/8b 并行数据 N bit 恢复 时钟 关键工程要点 PISO/SISO:串行时钟 = 并行时钟 × 位宽 / 编码开销(如 8b/10b 为 ×1.25) CDR:从数据边沿提取时钟,需保证足够跳变密度(编码保证) CTLE:高频增益提升,补偿信道低通特性;DFE:消除ISI后尾 8b/10b:DC平衡、游程≤5、专用控制字符;64b/66b:同步头+扰码 误码率(BER)目标:≤1e-15(PCIe Gen3/4),需均衡与CDR联合调优 预加重/去加重:发送端补偿高频损耗,与接收端均衡配合 眼图模板:高度/宽度/抖动/信噪比是评估SerDes链路质量的核心指标

3.1 SerDes架构分层:从PISO到SIPO的完整链路

SerDes的核心价值在于用一对差分线替代多根并行数据线,从而减少引脚数量、降低PCB布线复杂度,并从根本上消除并行总线中的时钟偏斜(Clock Skew)问题。一个完整的SerDes通道由发送端(TX)和接收端(RX)两大部分组成,发送端完成并行到串行的转换,接收端则执行串行到并行的逆过程。

发送端核心模块:

  • PISO(Parallel-In Serial-Out): 将N位并行数据按照串行时钟逐位输出。例如,10Gbps SerDes若内部并行总线为32位,则并行时钟为312.5MHz,串行时钟为10GHz。PISO本质上是一个高速移位寄存器,其设计难点在于最后一级的时序收敛——从并行时钟域跨越到串行时钟域时,必须保证亚稳态不会传播到输出。
  • TX驱动器: 将串行数据转换为差分电流或电压信号输出。典型输出摆幅为800mV~1200mV(峰峰值),可通过寄存器配置。驱动器还需支持预加重(Pre-emphasis)或去加重(De-emphasis),用于补偿信道的高频损耗。
  • 发送时钟树: 通常由PLL(锁相环)产生串行时钟,并分发到PISO的每一级。时钟抖动(Jitter)直接影响发送端的眼图质量,因此PLL的环路带宽和电源噪声抑制是关键设计指标。

接收端核心模块:

  • RX前端: 包含输入缓冲器和可调增益放大器(VGA),用于将接收到的微弱差分信号调整到ADC或判决器可处理的幅度范围。
  • SIPO(Serial-In Parallel-Out): 将串行比特流按照恢复时钟逐位捕获,并组装为并行数据。SIPO的位对齐(Word Alignment)依赖于编码层提供的对齐字符(如8b/10b中的K28.5)。
  • 时钟恢复与均衡: 这是接收端最复杂的部分,将在后续小节详细展开。
工程经验: 在FPGA中例化SerDes时,不要只关注数据通路,还要关注复位时序和时钟使能。Xilinx GTY/UltraScale+ SerDes要求复位释放顺序为:PLL复位 → TX复位 → RX复位,且每个复位信号需保持至少若干个参考时钟周期。若复位时序不当,可能出现通道初始化失败或误码率异常升高。

3.2 时钟恢复(CDR):从数据边沿提取时钟的艺术

CDR(Clock and Data Recovery)是SerDes接收端最核心的模块。由于发送端和接收端使用独立的参考时钟(通常来自不同的晶振),且数据在信道中传输存在延迟,接收端无法直接使用本地时钟采样数据。CDR的任务是从接收到的数据流中提取出与发送端同步的时钟信号,并用该时钟对数据进行最佳采样。

CDR的三种主流架构:

架构类型 工作原理 优势 劣势 典型应用
PLL型CDR 使用鉴相器比较数据边沿与本地VCO时钟相位,通过环路滤波器控制VCO频率 结构成熟、抖动性能好 锁定时间较长,对参考时钟要求高 PCIe、SATA等中低速接口
DLL型CDR 使用延迟锁定环调整时钟相位,不改变频率 锁定快、稳定性好 频率捕获范围窄,需外部参考 源同步接口(如DDR)
过采样型CDR 用N倍数据率的时钟对数据过采样,通过数字逻辑选择最佳采样点 无需模拟VCO,适合数字实现 功耗高,适合中低速 USB 2.0、千兆以太网

CDR的工程调优要点:

  1. 环路带宽设置: 环路带宽决定了CDR对输入抖动的跟踪能力和对噪声的抑制能力。带宽过宽会引入更多高频噪声,带宽过窄则无法跟踪发送端的频率漂移。通常建议环路带宽为数据率的1/500~1/2000。
  2. 锁定检测: 大多数SerDes提供锁定状态寄存器(如RXCDRLOCK),但该信号在信号质量极差时可能误报。建议同时监控误码率计数器和眼图张开度。
  3. 参考时钟要求: CDR的捕获范围通常为±100ppm~±300ppm。若参考时钟精度不足或抖动过大,可能导致CDR失锁。FPGA中SerDes的参考时钟必须使用专用时钟引脚(如MGTREFCLK),且走线需远离其他高速信号。
风险提示: 当接收信号的信噪比(SNR)极低时,CDR可能锁定到谐波或伪边沿上,导致数据持续出错。此时应检查信号完整性——先测量接收端眼图,确认眼高和眼宽是否满足芯片手册要求,再调整CDR参数。切勿盲目修改CDR环路带宽来“硬锁”信号。

3.3 均衡技术:CTLE与DFE的协同作战

高速信号在PCB走线、连接器和电缆中传输时,由于趋肤效应和介质损耗,高频分量衰减远大于低频分量,导致码间干扰(ISI)。均衡技术的本质是对信道进行逆滤波,恢复信号的频率响应。SerDes接收端通常采用CTLE(连续时间线性均衡)和DFE(判决反馈均衡)两级级联。

CTLE(连续时间线性均衡器):

  • 原理: CTLE是一个模拟高通滤波器,在奈奎斯特频率附近提供增益提升。其传递函数通常包含一个低频极点和一个高频零点,通过调节零点/极点位置和直流增益来匹配信道损耗曲线。
  • 工程实现: FPGA SerDes的CTLE通常提供4~8档可编程增益(如0dB~12dB),部分芯片支持自适应CTLE(如Xilinx GTM的LPM模式)。
  • 局限性: CTLE在提升高频增益的同时会放大高频噪声,因此增益不能无限增大。当信道损耗超过20dB时,单靠CTLE无法满足误码率要求。

DFE(判决反馈均衡器):

  • 原理: DFE利用已判决的符号来估计当前符号的ISI,并从输入信号中减去该估计值。它不放大噪声,因此在高损耗信道中比CTLE更有效。
  • 抽头数: 典型SerDes DFE有1~5个抽头。第一个抽头(h1)消除主光标后的第一个ISI分量,后续抽头依次消除更远的拖尾。抽头系数可通过自适应算法(如LMS)实时调整。
  • 工程约束: DFE的反馈环路必须在1个UI(单位间隔)内完成计算,因此对时序要求极高。FPGA中DFE通常由硬核实现,用户只能配置抽头数和自适应使能。
实战调优流程: 当SerDes链路误码率超标时,建议按以下步骤排查均衡配置:
① 使用眼图监视器(如Xilinx IBERT)测量接收端眼高和眼宽;
② 若眼高不足,逐步增加CTLE增益,观察眼图变化;
③ 若眼图存在明显拖尾(后ISI),启用DFE并增加抽头数;
④ 若眼图存在预振铃(前ISI),考虑调整发送端去加重;
⑤ 每次调整后运行至少1分钟误码率测试(10Gbps下约7.5e11比特),确保BER ≤ 1e-15。

3.4 编码方案:8b/10b与64b/66b的工程权衡

编码方案在SerDes链路中承担三个关键任务:DC平衡(避免信号长时间处于同一电平)、时钟恢复辅助(保证足够跳变密度)、错误检测(提供基本的误码监测能力)。

8b/10b编码:

  • 原理: 将8位数据映射为10位码字,保证每个码字中0和1的数量差不超过2,且连续相同比特不超过5个。编码表包含256个数据字符(D0.0~D31.7)和12个控制字符(K28.0~K28.7等)。
  • 开销: 25%的带宽开销。例如10Gbps线速率实际有效数据吞吐为8Gbps。
  • 应用: PCIe Gen1/2、千兆以太网、SATA、JESD204B等。

64b/66b编码:

  • 原理: 每64位数据前附加2位同步头(01表示数据块,10表示控制块),然后对64位数据进行自同步扰码(Scrambling)。同步头保证接收端能识别块边界,扰码保证数据流中0/1分布近似随机。
  • 开销: 仅3.125%的带宽开销,远低于8b/10b。
  • 应用: 10G/25G/100G以太网、PCIe Gen3/4/5。
对比维度 8b/10b 64b/66b
带宽开销 25% 3.125%
DC平衡 严格保证(游程≤5) 统计保证(依赖扰码)
错误检测 无效码字检测 CRC(可选)+ 同步头校验
实现复杂度 低(查找表) 中(扰码器+状态机)
适用速率 ≤ 10Gbps ≥ 10Gbps
常见误区: 很多工程师认为64b/66b比8b/10b“更好”,因为开销更低。但在低速链路(如1Gbps以下)中,8b/10b的DC平衡特性可以显著降低对交流耦合电容和接收端直流偏置的要求,且实现简单、调试方便。选择编码方案应综合考虑速率、功耗、成本和调试复杂度,而非一味追求低开销。

3.5 案例拆解:10Gbps JESD204B链路误码率优化实战

背景与约束: 某数据采集系统使用FPGA(Xilinx Kintex UltraScale+)通过JESD204B接口连接4片ADC(采样率2.5GSPS,分辨率14bit)。链路配置为4通道(Lane)× 10.3125Gbps,参考时钟122.88MHz。PCB走线长度约12英寸,过孔2个,连接器1个。

初始现象: 系统上电后,JESD204B链路偶尔能同步成功,但运行几分钟后出现误码,误码率约1e-9。使用IBERT测试同一通道,眼图眼高仅80mV(芯片要求≥100mV),眼宽0.45UI(要求≥0.5UI)。

分析过程:

  1. 首先排除参考时钟问题:使用频谱分析仪测量122.88MHz参考时钟,抖动RMS为1.2ps,满足要求。
  2. 检查发送端配置:TX去加重设置为-3.5dB,属于中等强度,初步判断合理。
  3. 重点检查接收端均衡:当前CTLE增益为6dB,DFE关闭。根据走线长度估算信道损耗约15dB@5GHz,CTLE增益明显不足。
  4. 进一步观察眼图:发现眼图拖尾严重,存在明显的后ISI,说明DFE必须启用。

实际操作步骤:

// 以Xilinx IBERT为例,调整RX均衡参数
// 1. 打开IBERT,选择目标Lane
// 2. 设置CTLE增益为9dB(从6dB提升)
// 3. 启用DFE,设置抽头数为2
// 4. 运行自适应算法(约30秒)
// 5. 重新测量眼图:眼高提升至135mV,眼宽0.58UI
// 6. 运行长时间误码率测试:BER < 1e-15

结果对比: 调整后,JESD204B链路连续运行72小时无任何误码。系统同步时间从原来的平均3次尝试缩短为1次成功。

风险与代价: DFE的启用增加了约15%的接收端功耗,且自适应算法在极端温度下可能需要重新收敛。为此,我们在固件中增加了周期性误码率监测,当BER超过1e-12时自动触发均衡参数重新训练。

复盘经验: ① SerDes链路调试必须遵循“先眼图、后参数”的原则,不要盲目修改寄存器;② CTLE和DFE是互补关系,CTLE负责粗调、DFE负责精调;③ 任何均衡参数的修改都必须以长时间误码率测试为最终验证标准。

设计建议: 在FPGA高速接口设计初期,建议预留以下调试接口:① 每个SerDes通道的眼图监视器(如IBERT);② 误码率计数器(硬核自带);③ 均衡参数的可编程接口(通过AXI-Lite或SPI)。这些资源在系统联调阶段的价值远超其占用的逻辑资源。

SerDes技术原理是FPGA高速接口设计的“内功”。只有深入理解PISO/SIPO的时钟架构、CDR的锁定机制、CTLE/DFE的均衡逻辑以及编码方案的权衡,才能在面对实际链路故障时快速定位问题。下一阶段的学习应聚焦于具体协议(如PCIe、JESD204B)如何基于这些底层机制实现链路训练和错误恢复。