Learning Record learning from practice

· cpu / memory

为什么需要 RCOMP、校准和 Training

从电路节点到 DDR5:一步步理解高速信号反射(11)

前面把 RON 和 ODT 当成了等效阻抗。真实芯片里,它们并不是温度、电压和工艺变化下永远不动的理想电阻,所以系统需要校准和训练。

1. RON 不是一个固定的物理电阻

输出驱动器由晶体管和封装寄生组成。它的等效阻抗会随下列因素变化:

  • 工艺角;
  • 电源电压;
  • 温度;
  • 输出高、输出低以及电流工作点;
  • 上拉和下拉支路;
  • 封装、焊盘和封装到板级的寄生参数。

所以文档中出现的 $R_\mathrm{ON}=x\ \Omega$,通常应理解为特定条件下的目标或等效范围,而不是可以脱离条件测量的理想定值。

2. RCOMP 解决什么

可以把 RCOMP 抽象成一条“参考、比较、调整”的路径:

参考电阻/参考条件
        |
        v
比较实际驱动强度与目标
        |
        v
更新控制码或模拟偏置
        |
        v
I/O 驱动器和终端得到补偿

它的具体电路可能因控制器和 DRAM 不同而不同。这里最重要的不是背名称,而是理解它把 PVT 变化转换成了可控的 I/O 参数。

3. 校准和训练不是一件事

这两个词经常被放在同一段初始化流程里,但关注点不同:

阶段 主要问题 典型结果
阻抗校准 当前驱动器/终端大致应呈现什么阻抗 补偿状态或控制码
时序训练 何时采样数据最可靠 延迟、相位或窗口中心
电压训练 哪个参考电压有足够裕量 Vref 或接收阈值
结果写回 把选出的设置应用到运行状态 最终运行配置

实际平台可能把多个动作合并在一个流程函数里,但分析时仍应把问题分开。

4. 一个不绑定厂商的初始化抽象

电源和时钟准备
  -> DDRIO / pad 基础配置
  -> 阻抗相关校准
  -> DRAM / DB 基础初始化
  -> 读写时序训练
  -> Vref、CA、DQS 等相关训练
  -> 结果检查和写回
  -> 正常读写

这里的顺序只是分析框架,不是所有平台都必须完全遵循的固定步骤。尤其要注意:训练前固定配置、训练过程扫描、训练结果写回和正常运行时状态不是同一个概念。

5. JEDEC、平台和控制器各自负责什么

讨论“某个参数是不是 JEDEC 要求”时,至少要分三层:

协议/器件规范:定义外部可见的命令、模式和电气边界
平台设计:选择拓扑、走线、控制器和模块组合
固件实现:按当前平台设置寄存器、执行校准和训练

一个平台中的 RCOMP、Vref 或 pad 字段,不能因为名字出现在初始化代码里,就直接说成“协议规定了这个寄存器”。需要查看具体器件数据手册、控制器设计指南和平台代码。

6. 训练不是“调一个延迟”

训练的本质是用已知模式或反馈结果搜索一个可用窗口。例如某个参数扫描过程可以抽象成:

候选参数 p0, p1, ... pn
  -> 发送或接收训练模式
    -> 检查 pass / fail
      -> 找到连续可用区间
        -> 选择中心或满足约束的工作点

这类训练结果通常是当前 PVT、拓扑和频率条件下的选择。温度或电压变化后,系统可能需要重新校准、重新训练或使用平台定义的补偿机制。

本篇结论

RCOMP:帮助阻抗相关电路对抗 PVT 变化
校准:建立可用的阻抗/模拟基线
Training:搜索时序、电压和接口参数的工作窗口

下一篇把这些概念落到代码阅读:如何沿调用链识别基础配置、校准、训练接口和最终结果,而不把一个函数名直接当成物理结论。

References

  • Micron DDR5 SDRAM:DDR5 的 DFE、ODT、DQS 监控以及 CA/CS/读写训练特性概览。
  • Transmission line:PVT 变化最终如何通过阻抗和反射影响链路的基础模型。