3. SerDes基础与Layerscape SerDes架构

在Layerscape这类高性能通信处理器中,SerDes(Serializer/Deserializer,串行器/解串器)是几乎所有高速接口的物理层基础。无论是PCIe、SATA、SGMII、XFI还是USXGMII,最终都要落到SerDes的Lane上完成高速串行收发。理解SerDes的工作原理和Layerscape的SerDes模块组成,是后续配置各类高速接口的前提。

一、串行器/解串器基本原理

SerDes的核心任务,是在芯片内部的并行低速域与芯片外部的串行高速域之间做双向转换。发送方向(TX)上,并行数据先经过编码(如8b/10b或64b/66b),再由串行器以位时钟速率逐位移出,经驱动器送到差分对上;接收方向(RX)上,差分信号先经均衡和采样恢复出串行位流,再由解串器还原为并行数据,并完成时钟恢复与对齐。

高速串行链路没有随路时钟,接收端必须从数据跳变中恢复时钟,这就是CDR(Clock Data Recovery)。CDR通过相位检测不断调整采样相位,使采样点落在眼图中央。同时,发送端的预加重/去加重(Pre-emphasis/De-emphasis)和接收端的均衡(CTLE、DFE)共同补偿信道的高频损耗,把闭合的眼图重新打开。判断链路是否可用的直接依据,就是接收端眼图张开度、误码率(BER)以及均衡后的信号幅度。

需要特别区分两个速率概念:Lane速率(Gbps)指单条差分对上的串行位速率;参考时钟频率(MHz)则是PLL的输入基准。二者通过PLL倍频关系联系,而不是同一个量。

二、Layerscape SerDes模块组成

Layerscape的SerDes通常以“SerDes模块(block)”为单位组织,每个模块包含若干Lane,并配有独立的PLL、参考时钟输入和寄存器接口。一个典型模块内部可划分为以下几部分:

  • PLL与时钟树:为TX和RX提供位时钟,决定Lane速率。
  • TX通道:并行输入、编码、串行化、驱动、预加重。
  • RX通道:均衡、CDR、采样、解串、对齐。
  • 参考时钟选择:可从外部晶振、专用时钟芯片或片内时钟源选择。
  • 寄存器与状态:用于协议选择、速率设置、复位、锁定与误码状态读取。

在Layerscape中,SerDes模块往往与协议控制器(PCIe控制器、以太网控制器等)通过内部复用网络连接。同一个物理Lane可以被不同协议复用,具体由RCW(Reset Configuration Word)和SerDes寄存器共同决定。因此,配置SerDes本质上是在“物理Lane—协议控制器—参考时钟—PLL”之间建立正确的映射关系。

Layerscape SerDes 模块组成与信号链 参考时钟源 外部晶振 / 时钟芯片 100MHz / 125MHz / 156.25MHz REFCLK 选择 SerDes PLL 倍频生成位时钟 f_lane = f_ref × N 锁定状态 LOCK TX 通道 编码 → 串行化 驱动 + 预加重 差分输出 TX± RX 通道 CTLE / DFE 均衡 CDR + 采样 解串 → 对齐 协议控制器 PCIe / SATA SGMII / XFI USXGMII 差分链路 Lane 配置与协议映射(由 RCW + SerDes 寄存器决定) Lane0 → PCIe Lane1 → SGMII Lane2 → XFI Lane3 → USXGMII 未使用 Lane 可关闭省功耗

三、Lane配置与协议映射

Layerscape的SerDes Lane是物理资源,协议控制器是逻辑资源,二者通过交叉开关或固定映射连接。配置时通常要回答三个问题:这条Lane接哪个控制器?该控制器需要什么速率?参考时钟从哪里来?

以一条PCIe Gen3 Lane为例,目标速率8GT/s,若参考时钟为100MHz,则PLL需要产生8GHz位时钟(考虑编码后有效数据率),倍频比N=80。配置流程大致为:先在RCW中指定该Lane的协议类型为PCIe,再通过SerDes寄存器设置PLL倍频比和TX/RX均衡参数,最后检查PLL LOCK位和链路训练状态。若LOCK未置位,应优先排查参考时钟是否存在、频率是否正确、电源和复位是否正常。

Lane速率与参考时钟的关系必须通过PLL倍频比计算,不能直接把参考时钟频率当作Lane速率。配置前先确认参考时钟频率,再反推PLL参数。

四、参考时钟与PLL配置要点

参考时钟的质量直接影响CDR和PLL的抖动性能。Layerscape通常支持多种参考时钟输入,包括外部晶振、专用时钟发生器以及从其他模块分频得到的时钟。选择时要注意:同一SerDes模块内的多个Lane若共享PLL,则它们必须使用相同的参考时钟和倍频比;若协议要求的速率不同,就需要分配到不同PLL或不同模块。

PLL配置的关键参数包括:参考时钟频率、倍频比、VCO频率范围、锁定时间。实际调试中,常用以下顺序确认PLL工作正常:

  1. 用示波器或时钟测量点确认参考时钟频率和幅度在规格范围内。
  2. 读取SerDes PLL状态寄存器,确认LOCK位为1。
  3. 若LOCK为0,检查复位是否释放、参考时钟是否丢失、PLL配置是否超出VCO范围。
  4. LOCK正常后,再检查TX/RX通道的均衡和CDR状态。

下面给出一个参考时钟与PLL参数的示例配置表,用于说明各字段的含义和填写方式(数值为教学示例,实际应以芯片手册和板级设计为准):

参数示例值说明
参考时钟频率100 MHz外部时钟源输入
目标Lane速率8 GT/sPCIe Gen3
PLL倍频比 N808 GHz / 100 MHz
VCO频率8 GHz需在PLL支持范围内
TX预加重3.5 dB根据信道损耗调整
RX均衡CTLE + DFE补偿高频衰减
LOCK状态1PLL锁定标志

五、配置检查与常见问题

SerDes配置完成后,不能只看寄存器写入是否成功,还要看链路是否真正建立。判断依据包括:PLL LOCK位、CDR锁定状态、接收信号幅度、眼图张开度以及协议层的链路训练结果。若PLL锁定但链路训练失败,常见原因有:Lane映射与协议控制器不匹配、参考时钟频率错误、TX/RX极性接反、均衡参数不适合当前信道、以及电源或复位时序问题。

修改SerDes配置通常需要复位相关模块甚至整芯片。在线调试时,应先保存当前配置,再逐项修改并记录每次改动后的LOCK和链路状态,避免多个变量同时变化导致无法定位问题。

掌握SerDes的串行化/解串行化原理、Layerscape模块组成、Lane与协议的映射关系,以及参考时钟和PLL的配置逻辑,就具备了后续配置PCIe、以太网等具体高速接口的基础。实际项目中,建议把每条Lane的协议、速率、参考时钟来源和PLL参数整理成一张配置表,作为板级调试和问题排查的依据。