2、高速收发器基础:PMA与PCS层结构、TX/RX通道组成、参考时钟架构与PLL配置
Agilex 高速收发器(Transceiver)是 PCIe Gen5/6、Ethernet 400G/800G 等高速协议的物理层基石。理解其内部 PMA(物理介质适配层)与 PCS(物理编码子层)的分工、TX/RX 通道的模拟与数字处理路径、参考时钟树以及 PLL 配置策略,是进行高速接口联合调试的前提。本章将拆解这些核心模块,并给出工程配置要点。
2.1 PMA 与 PCS 层结构
Agilex 收发器采用经典的 PMA + PCS 两层架构,分别处理模拟前端与数字编码逻辑。下表总结了二者的核心分工:
| 层级 | 全称 | 主要功能 | 关键子模块 |
|---|---|---|---|
| PMA | Physical Media Attachment | 模拟信号处理、时钟恢复、串行/解串 | TX 串行器、RX 解串器、CDR、PLL、DCC |
| PCS | Physical Coding Sublayer | 数字编码/解码、通道绑定、速率协商 | 8B/10B 或 64B/66B 编解码、SKP 插入/删除、弹性缓冲 |
工程要点: 在 PCIe 应用中,PCS 层负责处理 Ordered Set(如 SKP、TS1/TS2)的插入与对齐,而 PMA 层则保证串行链路的眼图质量与时钟抖动满足规范。调试时,PMA 的 CDR 锁定状态与 PCS 的通道对齐状态是两个关键观测点。
2.2 TX/RX 通道组成
每个收发器通道(Channel)包含独立的 TX 和 RX 路径。理解每条路径上的处理单元,有助于在调试时快速定位信号劣化或链路训练失败的原因。
TX 通道路径
- PCS 发送 FIFO:跨时钟域同步,将 FPGA 逻辑时钟域的数据同步到收发器时钟域。
- 字节串行器:将并行数据(如 32/40/64 bit)转换为串行比特流。
- 预加重 / 去加重:补偿高频损耗,提升眼图质量。PCIe Gen3+ 要求支持 3-tap 去加重。
- TX PLL:产生高速串行时钟,通常由 LC 振荡器或环形振荡器实现。
- 差分驱动器:输出符合协议规范的差分电压摆幅(如 PCIe 要求 800~1200 mVpp)。
RX 通道路径
- 差分接收器:接收来自 PCB 的微弱差分信号,通常带有 CTLE(连续时间线性均衡)。
- CDR(时钟数据恢复):从数据流中提取时钟,并调整采样相位。CDR 锁定是链路建立的第一步。
- 解串器:将串行比特流转换为并行数据。
- DFE(判决反馈均衡):消除码间串扰(ISI),PCIe Gen4/5 必须启用 DFE。
- PCS 接收 FIFO:弹性缓冲,补偿 TX/RX 时钟频率偏差,处理 SKP 符号。
调试提示: 当链路训练卡在 Polling.Configured 或 Recovery 状态时,优先检查 RX 侧的 CDR 锁定指示(
rx_is_lockedtoref 和 rx_is_lockedtodata)。若 CDR 无法锁定,通常意味着信号质量或参考时钟有问题。
2.3 参考时钟架构与 PLL 配置
参考时钟是收发器工作的“心跳”。Agilex 收发器支持多种参考时钟拓扑,包括专用差分时钟输入、全局时钟网络分发以及内部 PLL 级联。错误的时钟配置是导致链路训练失败或误码率升高的常见原因。
参考时钟架构要点
- 专用参考时钟引脚:每个收发器 bank 有独立的 REFCLK 差分输入对(如 REFCLK_GXB),建议优先使用,避免时钟抖动劣化。
- 时钟分发网络:Agilex 内部有 ATX PLL(Advanced Transmit PLL)和 fPLL(Fractional PLL)两种类型。ATX PLL 用于整数倍频率合成,抖动性能更优;fPLL 支持分数分频,适用于非标准速率。
- PLL 级联:当需要极低抖动或特殊频率时,可将 fPLL 的输出作为 ATX PLL 的参考,形成级联结构。
PLL 配置关键参数
| 参数 | 说明 | PCIe Gen4 典型值 |
|---|---|---|
| 参考时钟频率 | 输入到 PLL 的基准频率 | 100 MHz(差分) |
| VCO 频率 | PLL 内部压控振荡器频率 | 8.0 ~ 12.5 GHz |
| 数据速率 | 串行链路比特率 | 16.0 Gbps |
| PLL 倍频因子 | VCO 频率 / 参考时钟频率 | 80 ~ 125 |
| 环路带宽 | PLL 锁定带宽,影响抖动传递 | 典型 1~5 MHz |
常见配置陷阱:
- 参考时钟抖动超过规范(PCIe Gen4 要求 REFCLK 抖动 < 0.5 ps RMS),会导致 CDR 无法锁定或误码率升高。
- PLL 倍频因子设置过大(超过 VCO 范围),PLL 无法锁定,需检查
pll_locked信号。 - 多个收发器通道共享同一 PLL 时,需确保所有通道的数据速率一致,否则需使用独立 PLL。
PLL 配置步骤(基于 Agilex 开发套件)
- 在 Quartus Prime 中打开 Transceiver Toolkit,选择目标收发器 bank。
- 设置参考时钟源:选择专用 REFCLK 引脚或内部时钟网络。
- 配置 PLL 类型:PCIe 应用优先选择 ATX PLL,若需要分数分频则选 fPLL。
- 输入目标数据速率(如 16.0 Gbps),工具自动计算 VCO 频率和倍频因子。
- 检查 PLL 锁定状态:上电后读取
pll_locked寄存器,确认锁定后再启动 TX/RX 通道。 - 使用 Eye Viewer 或 BER Test 验证实际链路质量。
联合调试技巧: 在 PCIe 链路训练过程中,若发现 Training Sequence 1 (TS1) 无法被接收端正确识别,首先检查参考时钟是否稳定、PLL 是否锁定。使用 Signal Tap 或 Transceiver Toolkit 实时监测
rx_is_lockedtodata 和 rx_signaldetect 信号,可以快速区分是时钟问题还是信号质量问题。