当我们手动配置DXnLCDLR0-2与DXnBDLR0-4寄存器时,延迟线的VT计算应该被禁止。以下为禁止VT计算的流程: 1. Write DXCCR[2] (MDLEN) = 1’b0 2. 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 3. Write PGCR0[5:0] = 6’b000000 OR disable the DFI update interface from issuing controller initiated DFI updates 4. Wait for approximately 5000 clock periods for all Master Delay Lines to complete the calibration 5. Calibrations will be completed and the DXnMDLR registers can be written. 6. To re-enable master delay line calibrations, VT calculations and VT compensation 7. Write DXCCR[2] (MDLEN) = 1’b1 8. Write PGCR1[26] (INHVT) = 1’b0 9. Write PGCR0[5:0] = 6’b111111 10. System ready 3 阻抗校准原理
这里写图片描述 如上图所示参与阻抗校准的单元主要有三个:*_PZQ模块,位于IO;*_VREF模块,位于IO;阻抗控制单元(数字电路),位于PUB。 可校准内容: 1、ODT pull-up 2、ODT pull-down 3、驱动电阻 pull-up 4、驱动电阻 pull-down 阻抗控制单元通过ZCTRL将阻抗码输出至每一个VREF单元。VREF单元进行解码,并通过ZIOH总线传输给每一个功能IO单元以及*_PZQ单元。PZQ单元将VREF发来的阻抗码与外接电阻进行比较,并将结果通过ZCOMP反馈给阻抗控制单元。阻抗控制单元根据比较结果调整ZCTRL的值。直到阻抗码与外接电阻相匹配。阻抗控制单通过ZCAL来选择对哪一个电阻进行校准。 阻抗校准可分为以下三种方式,但是在整个Update过程中,PUB都是使用Direct Calibration方式来进行校准的。 A. Direct Calibration,使用ZPROG设置 在此模式下,用户仅需要配置ODT(ZPROG[7:4])与驱动电阻(ZPROG[3:0]),并运行阻抗校准单元内的自动校准程序。在内部程序中,ODT与驱动电阻的上、下拉电阻会独立进行校准。
B. Override Setting,使用ctrl_ovrd_data设置 在此模式下,用户不需要使用校准循环,仅需直接配置zctrl_ovrd_data[19:0]来控制阻抗值。共有32个可编程序列,每一种序列代表一个阻抗值,此阻抗值与corner有关。 例如,假设电流为I,校准电压为VREF,那么序列N的可编程阻值为: Zprog = K * VREF / (N * I ) K为校正因子,近似于1 具体阻值可参考PHY文档中的表格,《dwc_ddr32_phy_gf40lp25_db》第96页。
文章评论(0条评论)
登录后参与讨论