4. 校准流程总览:校准的目的、校准阶段划分

DDR4 内存控制器与物理层(PHY)之间的时序窗口极其狭窄,尤其是在 Agilex 这类高端 FPGA 平台上,运行速率可达 3200 MT/s 甚至更高。任何由于 PVT(工艺、电压、温度)变化引起的信号偏移,都可能导致数据采样错误。校准流程的核心目的,就是通过硬件自适应的方式,动态调整读写路径上的延迟与电压参考,确保数据眼图中心对准采样时钟,从而保证数据传输的可靠性。

校准的根本目标: 消除 FPGA 与 DDR4 颗粒之间的时序不确定性,将数据有效窗口最大化,使系统能在最高频率下稳定运行。

4.1 校准的四大核心目的

目的 说明 Agilex 平台关键点
补偿 PVT 变化 芯片制造差异、温度漂移、电压波动会改变信号传播延迟。 Agilex 的硬核内存控制器内置了温度补偿电路,但校准仍需要定期触发。
对齐 DQ/DQS 时序 确保数据信号(DQ)与数据选通信号(DQS)在接收端保持正确的相位关系。 写均衡和读均衡分别解决写入和读取路径上的 skew 问题。
优化电压参考(Vref) 找到最佳的判决电压电平,使数据采样时的噪声容限最大。 Agilex 支持 Vref 训练,可独立调整 DQ 和 CA 的参考电压。
保证数据眼图中心采样 通过延迟链调整,将采样时钟精确地移动到数据眼图的中央位置。 这是所有校准阶段的最终落脚点,直接决定系统稳定性。

4.2 校准阶段划分与执行顺序

Agilex 的 DDR4 校准流程遵循 JEDEC 标准规范,并在此基础上增加了针对 FPGA 架构的优化。整个流程分为多个阶段,必须严格按照顺序执行,前一阶段的结果是后一阶段的基础。下图展示了完整的校准流水线。

Agilex DDR4 校准流程总览 Agilex DDR4 校准流程总览 1. 初始化与复位 时钟使能、CKE、复位序列 2. 写均衡 (Write Leveling) 对齐 DQS 与 CK 3. 读均衡 (Read Leveling) 对齐 DQ 与 DQS 读取 4. Vref 训练 优化 DQ/CA 参考电压 5. 时序修调 (Timing Fix) 精细调整读写延迟 6. 进入用户模式 正常读写操作 说明 校准顺序不可逆:写均衡必须在读均衡之前完成,Vref 训练通常在时序修调前执行。

4.3 各阶段详细说明

4.3.1 初始化与复位

这是所有校准的前提。FPGA 首先完成 PLL 锁定,产生稳定的系统时钟和内存参考时钟。然后按照 JEDEC 规定的上电序列,依次拉高 CKE(时钟使能)、发送 NOP 命令、等待复位完成。Agilex 的硬核控制器会自动处理这些时序,但开发者需要确保 PHY 层的初始化状态机正确启动。

4.3.2 写均衡(Write Leveling)

在 DDR4 中,DQS 信号与 CK 时钟在颗粒内部必须保持特定的相位关系。写均衡的目的就是调整 FPGA 发送 DQS 的延迟,使得 DQS 的上升沿与 CK 的上升沿对齐。Agilex 通过向颗粒写入特定的数据模式,并读取反馈信号来判断对齐状态。

  • 关键操作: 调整每个字节通道的 DQS 延迟。
  • 成功标志: 颗粒返回的写均衡状态位被置位。

4.3.3 读均衡(Read Leveling)

读均衡解决的是读取路径上的时序问题。由于 PCB 走线长度和颗粒内部延迟的差异,从颗粒返回的 DQS 与 DQ 信号到达 FPGA 时可能已经发生偏移。读均衡通过调整 FPGA 内部的 DQS 延迟链,确保 DQS 的边沿正好位于 DQ 数据眼图的中央。

  • 关键操作: 发送读命令,捕获返回的 DQS 相位,调整延迟。
  • 成功标志: 所有字节通道的读 DQS 门控(DQS Gating)窗口正确打开。

4.3.4 Vref 训练

Vref(参考电压)训练是 DDR4 引入的一项重要功能。它允许系统动态调整 DQ 和 CA 的输入参考电压,以补偿芯片间的工艺差异和电压噪声。Agilex 的 PHY 支持精细的 Vref 步进调整。

训练类型 调整对象 典型步长 Agilex 实现方式
DQ Vref 训练 数据线输入参考电压 0.5% ~ 1% VDDQ 通过 MR6 寄存器配置,硬件自动扫描最佳点
CA Vref 训练 命令/地址线输入参考电压 0.5% ~ 1% VDDQ 通过 MR5 寄存器配置,通常与 DQ Vref 独立
实战提示: 在 Agilex 平台上,Vref 训练通常与读均衡配合使用。先通过读均衡找到粗略的时序窗口,再通过 Vref 训练找到最佳的电压点,最后进行微调,可以显著提升系统裕量。

4.3.5 时序修调(Timing Fix)

这是校准流程的最后一步,也称为“精细校准”。在前几个阶段的基础上,对每个字节通道的读写延迟进行微调,补偿剩余的 skew。Agilex 的硬核控制器会执行一个内部搜索算法,遍历所有可能的延迟设置,找到使数据眼图张开最大的那个点。

4.4 校准流程的层次结构

从软件和硬件的角度来看,校准流程可以划分为三个层次,理解这个层次结构有助于调试和问题定位。

校准流程层次结构 校准流程层次结构 应用层 (Application Layer) 用户逻辑、DMA、CPU 子系统 控制器层 (Controller Layer) 命令调度、时序管理、校准状态机 PHY 层 (Physical Layer) 延迟链、I/O 缓冲、Vref 生成、DQS 门控 校准执行者 Agilex 硬核
常见误区: 很多开发者认为校准只需要在系统启动时执行一次。实际上,在 Agilex 平台上,由于温度变化可能导致时序漂移,建议在长时间运行的应用中,通过用户逻辑或固件定期触发“在线校准”或“温度补偿校准”,以维持系统稳定性。

4.5 校准流程清单

在实际项目中,建议按照以下清单检查校准流程的完整性:

  1. 上电初始化: 确认 PLL 锁定、时钟稳定、复位释放。
  2. 写均衡: 检查所有字节通道的写均衡完成标志。
  3. 读均衡: 检查读 DQS 门控窗口是否正常打开。
  4. Vref 训练: 确认 DQ 和 CA 的 Vref 值已写入 MR5/MR6 寄存器。
  5. 时序修调: 验证读写延迟参数已锁定。
  6. 用户模式: 执行简单的读写测试(如 PRBS 或 Walking 1),确认数据无误。