来自于Synopsys PHY
4.2.3 Delay Line VT Drift Detection and Compensation
在芯片操作时,电压与温度都会随着运行时间增加而变化。PUB中包含了VT漂移补偿逻辑,用来动态地调整延迟单元的延迟选择输入,以保持延迟单元的延时为一个固定值。DATX8中的DDL都是可以进行补偿的,而AC中的DDL则不能进行补偿。AC中的DDL都是用来匹配DATX8中的数据路径的,所以不会对这些延迟设置0以外的值。
一旦使能VT补偿功能,DATX8中的主延迟线(MDL)会持续的以选择的延迟时间为单位测量DDR的时钟。在每个更新周期内,由VT漂移造成的变化,将会传递到其他的延迟线状态机中,以适应期望的延迟时间。每个延迟线的更新使能可通过配置 PGCR0-2 寄存器。
在初始校准或数据训练被触发时,MDL控制逻辑将第一次测量的MDL周期存储为MDL校准周期,前期MDL校准周期和当前MDL校准周期。
在MDL初始校准之后,MDL会继续周期性的进行周期测量。随后每一次的测量MDL周期都会被存储为当前的校准周期。如果当前周期与前期周期不符,且超过PGCR.DLDLMT规定的VT阈值,VT漂移补偿就会开启。 参考PUB文档420页,“VT Drift Status and Update Timing” 可得到更详细的VT漂移状态与VT更新时序描述。
DATX8中需要补偿的延时参数可通过以下公式得到:
MDLinit 为初始MDL校准周期
MDLnew 为当前MDL校准周期
DLinit 为初始延迟线的延迟选择值,与MDLinit一起计算得到
DLnew 为延迟线的VT补偿值
当MDL周期的变化被检查到,VT补偿逻辑就就会计算出DDL的VT补偿值。此计算结果会被存储到一个内部本地寄存器里,并且在VT更新被PUB触发前都不会被使用到DDL上去。
4.2.3.1 禁止VT计算与VT更新
当我们手动配置DXnLCDLR0-2与DXnBDLR0-4寄存器时,从延迟线的VT计算应该被禁止。
- Write DXCCR[2] (MDLEN) = 1’b0
- Write PGCR1[26] (INHVT) = 1’b1 to stop VT compensation and write PGCR[22:15]=8’b0 to prevent a
PHY initiated DFI update request- Write PGCR0[5:0] = 6’b000000 OR disable the DFI update interface from issuing controller initiated
DFI updates- Wait for approximately 5000 clock periods for all Master Delay Lines to complete the calibration
- Calibrations will be completed and the DXnMDLR registers can be written.
- To re-enable master delay line calibrations, VT calculations and VT compensation
- Write DXCCR[2] (MDLEN) = 1’b1
- Write PGCR1[26] (INHVT) = 1’b0
- Write PGCR0[5:0] = 6’b111111
- System ready