| |||
在DDR(双倍数据速率)内存系统中,延迟锁定环(DLL) 的开启与关闭是关键的初始化及低功耗操作,涉及严格的时序控制和寄存器配置。以下是具体操作流程及注意事项:
一、DLL的核心功能
DLL用于同步内部时钟与外部时钟,解决信号传输延迟问题:
时钟同步:通过动态调整内部时钟相位,确保DRAM数据采样点位于眼图中心。
工作模式:
DLL-on:正常操作模式,需保持锁定状态。
DLL-off:低功耗模式(如自刷新),关闭DLL以省电,但需重新校准才能恢复。
二、DLL开启操作(初始化阶段)
1. 操作流程
上电复位:
电源稳定后,拉低 RESET# 至少 200μs,保持 CKE=0 至少 500μs。
释放 RESET# 后等待 tXPR(典型值 10ns),再拉高 CKE。
配置模式寄存器:
MR1寄存器:设置 A0=0(使能DLL)。
其他寄存器:依次配置 MR2(CWL)、MR0(CL/BL)等。
启动DLL锁定:
发送 MRS 命令配置 MR0 的 DLL复位位(如 DDR3 的 MR0[8]),触发DLL自校准。
等待锁定时间 tDLLK(至少 512个时钟周期**)。
2. 注意事项
时序要求:
连续 MRS 命令间隔需满足 tMRD(典型值 4个时钟周期**)。
MRS 命令后需等待 tMOD(寄存器生效时间,约 24个时钟周期)才能执行后续操作。
信号完整性:时钟必须稳定且无抖动,否则DLL无法锁定。
三、DLL关闭操作(低功耗/调频)
1. 操作流程
进入空闲状态:
所有Bank预充电完成,无数据传输,满足 tRP、tDAL 等时序。
关闭DLL:
配置 MR1 寄存器:A0=1(禁止DLL)。
等待 tMOD 确保设置生效。
进入自刷新模式:
发送 自刷新入口命令(SRE):CS_n=0, RAS_n=0, CAS_n=0, CKE=0。
保持 CKE=0 至少 tCKSRE(DDR4 约 5ns)。
调频或省电:
在自刷新期间可调整时钟频率或保持低功耗状态。
2. 恢复DLL(退出自刷新)
退出自刷新:
拉高 CKE,发送 自刷新退出命令(SRX)。
等待 tXS(DDR4 约 1μs)或 tXSDLL(需DLL锁定的命令)。
重配置寄存器:
重新配置 MR1(A0=0 使能DLL)及其他模式寄存器(如 CL、CWL)。
执行刷新命令:
至少发送一次 刷新命令(REF) 补偿自刷新期间遗漏的刷新操作。
四、关键注意事项
时序冲突风险:
DLL关闭后,读写命令需满足 tXS_Fast 或 tXSDLL时序:
tXS_Fast:允许非DLL依赖命令(如 ZQCL、部分 MRS)。
tXSDLL:需DLL锁定的命令(如读/写操作)需等待更长时间。
阻抗与信号匹配:
关闭DLL前,需禁用片内终结电阻(ODT),避免信号反射。
重新开启DLL后需执行 ZQ校准,补偿电压/温度漂移。
频率切换限制:
仅支持自刷新期间调频:DLL关闭时改变频率需严格在自刷新模式下进行,否则导致时序错乱。
低功耗模式兼容性:
自刷新模式:DLL自动关闭,但需保持 VREFCA、VPP 供电稳定。
Power-Down模式:DLL保持开启,仅降低时钟频率。
五、总结:操作流程对比
操作 | 开启DLL(初始化) | 关闭DLL(低功耗) |
触发条件 | 上电初始化 | 空闲状态 + 需省电/调频 |
关键寄存器 | MR1[A0]=0(使能DLL) | MR1[A0]=1(禁用DLL) |
时序要求 | 等待 tDLLK(512周期) + tMOD(24周期) | 等待 tMOD + 自刷新入口 tCKSRE |
恢复操作 | - | 退出自刷新 + 重配 MR1 + 刷新命令(REF) |
典型应用 | 正常读写操作 | 自刷新调频、低温漂场景 |
六、实际调试建议
眼图监测:使用示波器验证DLL锁定后的信号质量(CK与DQS相位差需≈90°)。
寄存器回读:通过MPR(多用途寄存器)读取配置值,验证 MRS 命令是否生效。
温度补偿:在高温/高负载场景增加重训练频率,避免DLL漂移导致采样偏移。
警告:DLL操作需严格遵循JEDEC规范(如JESD79-4),尤其在高速DDR5中,DFE(决策反馈均衡)的引入进一步增加了时序复杂度。