Pub手册4.2.3, 如何通过MDL来检测电压和温度漂移,并使用补偿逻辑调整延迟线的延迟值。这种机制确保了即使在电压和温度发生变化的情况下,DDR 系统中的延迟线依然保持精确的时序,从而保证数据传输的稳定性和可靠性。
1. VT漂移补偿逻辑
- VT漂移指的是由于 电压 和 温度 的变化,导致电路中的电气特性发生漂移或变化。由于延迟线(DDL)通常是基于电压和温度变化工作的,必须进行补偿,确保它们的延迟精度保持不变。
- 在 PUB(PHY Initialization Block) 中,有一个 VT漂移补偿逻辑,它的作用是 调节每条延迟线的延迟选择输入值,确保延迟时间保持不变,即使在电压和温度发生变化时。
2. 主延迟线 (MDL) 的作用
- MDL(Master Delay Line) 是一种主延迟线,用来监测 DDR 时钟周期 的变化。MDL 会 持续测量 DDR 时钟周期,并通过测量结果调整其他延迟线的延迟值。
- MDL 定期测量 DDR 时钟周期,并且将测量结果存储为以下几个值:
- 初始的 MDL 校准周期 (
MDLinit
) - 上一个 MDL 校准周期
- 当前的 MDL 校准周期
- 初始的 MDL 校准周期 (
3. 延迟线的温度和电压补偿
- 当 电压 或 温度 发生变化时,MDL 会检测到 DDR 时钟周期的漂移,并将漂移值传递给其他延迟线的 状态机,在“更新期”内进行调整。这些更新期是通过在PGCR0寄存器中写入数据来控制的。
- 在 初始校准 后,MDL 会定期进行周期测量,并将每次新的测量值记录下来。如果新测量的 MDL 校准周期和上一个周期的差异超过了某个阈值(该阈值由
PGCR6.DLDLMT
控制),就会触发 VT漂移状态,并通过 vt_drift 输出引脚 表示。
4. 补偿公式
每条延迟线的补偿是通过以下公式来实现的:
$$
D L_{\text {new }}=\frac{M D L_{\text {new }}}{M D L_{\text {init }}} \times D L_{\text {init }}
$$- MDL_init:初始的 MDL 校准周期
- MDL_new:当前(新的)MDL 校准周期
- DL_init:延迟线的初始延迟选择值(在 MDL_init 时的值)
- DL_new:经过 VT 补偿后的延迟线新值
通过这个公式,系统可以根据 MDL 的新周期来调整延迟线的选择值,从而补偿电压和温度漂移的影响。
5. 补偿计算过程
- 当检测到 MDL周期的变化 时,VT 补偿逻辑会被触发。补偿逻辑会根据 MDL 的新校准周期计算一个 补偿后的延迟线值,并将该值存储在 每条延迟线的本地寄存器 中。
- 但是,这个补偿值并不会立即应用到延迟线。只有在 PUB(PHY Initialization Block)服务 VT 更新时,这个补偿值才会被应用到延迟线中。
6. 关键点总结
- VT漂移补偿:用于弥补由于电压和温度变化导致的延迟线性能漂移。
- MDL 作为基准:主延迟线 MDL 定期测量 DDR 时钟周期,并用其校准其他延迟线。
- 周期比较:如果新的 MDL 校准周期与上一个周期的差异超过设定阈值,VT 漂移状态会被触发,表明需要进行补偿。
- 补偿公式:通过使用 MDL 的校准周期差异,计算每个延迟线的补偿值,以调整其延迟。
- 寄存器更新:补偿后的延迟值会被存储在本地寄存器中,并且只有在 VT 更新期间才会被应用到延迟线。
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/11/09/DDR/PUB Architecture-Delay Line VT Drift Detection and Compensation/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/11/09/DDR/PUB Architecture-Delay Line VT Drift Detection and Compensation/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!