MIG IP核对DDR3的输出时序分析记录

这篇博客主要分析一下复位的时候MIG IP核都对DDR3干了些什么。

首先大家可以着重关注RAS#、CAS#、WE#这三个信号,只有当这三个引脚同时被拉低时BA2:0上的信号才会被DDR3判定为MR命令。

第一步:上电后RESET先拉低,期间CKE也拉低,当RESET拉高后过一段时间CKE再拉高。

上电后RESET#信号需要保持低电平200us,CKE需要在RESET#拉高之前被拉低,且最少维持10ns; 在RESET#被拉高之后,需要等待一段时间后CKE才能被拉高。在这段时间内,DRAM会开始内部初始化;

在CKE拉高之前,时钟(CK、CK#)必须开始且稳定至少10ns或5个tCK,此外在这个期间必须标记一个NOP或Deselect命令。在RESET#拉高之后当CKE拉高,CKE就必须持续拉高至初始化过程结束; 在CKE拉高之后,在发送第一个MRS命令之前,需要等待tXPR;

第二步:通过BA引脚向DDR3发送MR指令。

当CS#、RAS#、CAS#、WE#四个引脚全部拉低时,BA上的数据才会被DDR3识别为MR(Mode Register Set模式寄存器配置指令)指令。指令发送的先后顺序为MSR2、MSR3、MSR1、MSR0,分别对应BA2:0分别等于2'b010、2'b011、2'b001、2'b000(也就是对应的二进制数)。与此同时地址线上的数据(图中0x0008就是要写入MSR2寄存器中的数据)

MSR2配置时地址线14bit对应:

|----|----|----|----|----|---|---|---|---|---|---|---|---|---|---|
| 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 ||||| RTT_WR: Dynamic On Die Termination during Write 写操作期间的片内终端阻抗 ||| 保留 |||| CWL: CAS Write Latency CAS延迟 |||

MSR3配置时地址线14bit对应:

|----|----|----|----|----|---|---|---|---|---|---|---|------------|-------|-----|
| 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 |||||||||||| MPR Enable | MPR位置 | MPR |

MSR1配置时地址线14bit对应:

|----|----|----|----|----|---------|---------|----|---|---|------------|---|---|-----|----|
| 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 ||||| RTT_NOM | RTT_NOM | AL | 输出驱动 || DLL Enable | ODS || DLL | 保留 |

MSR0配置时地址线14bit对应:

|----|----|--------------|----|----|---|-----------|---------------|---|---|---|---|---|---|---|
| 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 || Precharge PD | Write Recovery ||| DLL Reset | CAS Latency高位 | CAS Latency低位 ||| Burst Type || Burst Length ||

第三步:发送ZQCL(ZQ Calibration Long,阻抗长校准指令,左边蓝框)以及一个NOP空指令(右边白框)

阻抗校准指令的作用是校准DDR3内部:

  1. 输出驱动阻抗(Output Driver Impedance)
  2. ODT终端阻抗(On Die Termination)

然后校准指令有两种:ZQCL(阻抗长校准)和ZQCS(阻抗短校准),前者在复位的时候执行(时长512个时钟周期(约640ns),是核心校准),后者在正常运行期间周期性执行(时长64个时钟周期(约80ns),主要进行微调)。发送ZQCL命令后DDR3会比较ZQ引脚上接的240Ω电阻来对内部的输出驱动阻抗 Ron和ODT终端阻抗 RTT,通过内部电路设置这两个电阻以及标定IO上的MOS导通电阻什么的。(所以这个外接240Ω电阻精度一定要高)

ZQCL的命令为:CS# = 0、RAS# = 1、CAS# = 1、WE# = 1,同时BAQ全0、地址线的第10位为1其余为0。

而NOP的指令为CS# = 0、RAS# = 0、CAS# = 1、WE# = 1,同时BA和地址线全0

为了方便大家阅读接下来的仿真图中我把信号线改了个名字

第四步:现在开始进入物理层初始化阶段,这个阶段主要包含读平衡和写平衡

)环节。

写平衡期间MIG IP核会持续翻转DQS,同时DDR3向DQ上发送相位反馈数据,用来告诉MIG IP核DQS相对时钟边沿是超前还是落后,这里使用示例工程的缘故DQS上的数据是固定的。

相关推荐
YWamy5 小时前
如何降低RTC SDK在复杂网络环境下的运行成本
网络·音视频·实时音视频
北京盛世宏博5 小时前
信创国产化智慧档案馆管库系统:十二防一体化管控平台落地笔记
网络·方案·温湿度·智慧档案馆建设
w-w0w-w5 小时前
SQL注入
网络·数据库·sql
一条泥憨鱼6 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
北京盛世宏博6 小时前
数字孪生 3D 可视化实战:档案十防体系温湿度数据联动与告警定位实现
网络·档案八防·十防
Lynne3097 小时前
EtherCAT网络中,多个节点如何配置才能互不干扰?
网络·网络配置·ethercat·工业网络
Yang96118 小时前
实验室里的多面手:鼎讯信通TM-150信号发生器技术拆解与实测思考
网络
cyf318 小时前
第 05 篇:IP 协议—— 网络层的“快递单号与物流追踪“
网络协议·tcp/ip·路由表·traceroute·ip协议·ping·ip分片
默|笙10 小时前
【Linux网络】传输层协议TCP(1)---TCP报文介绍
linux·网络·tcp/ip