在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(决策反馈均衡)的引入进一步增加了时序复杂度。
想了解更多关于DDR中DLL开启和关闭操作的内容,请扫微信
或微信搜索jiemingpan
版权说明:本文版权由作者自行负责,如有侵权请联系本站删除。