注意:
写入数据掩码: 在写入操作时,如果 DM 信号为高,则写入数据被屏蔽;如果 DM 信号 为低,则写入数据正常锁存。 LDM 控制 DQ0~DQ7,UDM 控制 DQ8~DQ15。
DDR3物理引脚可划分为4类:地址总线、数据总线、控制线、电源与参考电压。
1.数据线
1)DQ[15:0] 数据总线。
2)DQS,DQS# 数据选通;用于数据同步,读时是输出,边缘与读出的数据对齐。写时是输入,中心与写数据对齐。
3)TDQS,TDQS# 数据选通:
功能与DQS相同,只是当两种不同的DIMM混合应用在同一个系统时,DQS的负载就会不同,这样会造成信号完整性问题,TDQS就是为了解决这个问题的。当TDQS使能时,DM禁止,TDQS和TDDS提供终端电阻。注意:TDQS与DM共用一个物理引脚。
4)DM 数据屏蔽:
DM是写数据的输入屏蔽信号,在写期间,当伴随输入数据的DM信号被采样为高时,输入数据被屏蔽。最然DM仅作为输入脚,但是,DM负载被设计成与DQ和DQS脚负载相匹配。DM的参考值是 VREFCA引脚。注意: DQS与DM共用一个物理引脚,所以DM可选作为TDQS。
2.地址线
1)A[14:0] 地址总线:
为地址输入,为 ACTIVATE命令提供行地址,同时为READ/WRTE命令提供列地址和自动预充电位(A10),以便从某个Bank的内存阵列里选出一个位置。LOAD MODE命令期间,地址输入提供一个操作码。地址输入的参考值是 VREFCA引脚。
A12/BC#: 在模式寄存器(MR)使能时,A12在READ和 WRITE命令期间被采样,以决定burst chop(on-the-fly)是否会被执行(HIGH=BL8执行 burst chop),或者LoW-BC4不执行 burst chop。
2)BA[2:0] bank选通线: 确定要操作的Bank,参考值是ⅤREFCA引脚。
3.命令&控制&时钟
1)CKE 时钟使能引脚(输入):
CKE为高电平时,启动内部时钟信号、设备输入缓冲以及输出驱动单元。CKE低电平时则关闭上述单元。当CKE为低电平时,可使设备进入PRECHARGE POWER DOWN、SELF-REFRESH以及ACTIVE POWER DOWN模式。CKE与SELF REFRESH退出命令是同步的。在上电以及初始化序列过程中,VREFCA与VREF将变得稳定,并且在后续所有的操作过程中都要保持稳定,包括SELF REFRESH过程中。CKE必须在读写操作中保持稳定的高电平。在POWER DOWN过程中,除CK_t,CK_c,ODT以及CKE以外的所有输入缓冲都是关闭的。在SELF REFRESH过程中,除CKE以外的所有输入缓冲都是关闭的。在正时钟上升边沿采样。
2)CK. CK# 差分时钟信号(输入):
差分时上钟输入,所有控制和地址输入信号在CK上升沿和CK#的下降沿交叉处被采样,输出数据选通(DQs,DQS#)参考与CK和CK#的交叉点。
3)CS# 片选信号:
使能(低)和禁止(高)命令译码,当CS#为低时DDR芯片使能、CS#的参考值是 VREFCA引脚。
4) RAS#,CAS#,WE#:这3个信号,连同CS#,定义一个命令,其参考值是ⅤREFCA。
5)RESET# 复位信号: 低位有效,参考值是VSS,复位的断言是异步的
6)ODT 片上终端使能:
ODT使能(高)和禁止(低)片内终端电阻,在常操作使能时,ODT仅对下面的引脚有效:DQ[7:0]、DQS、DQS#和DM。如果通过LOADMODE命令禁止,ODT输入被忽略。ODT的参考值是VREFCA引脚。
7)ZQ#: 输出驱动校准的外部参考,这个引脚应该连接240欧姆电阻到VSSQ
初始化
首先上电(RESET#推荐保持在 0.2XVDD;其他的输入没有定义)。RESET#信号需要用稳定电源保持最少200us。在图中可以看出来,CKE需要在RESET#拉高之前被拉低,且最少维持10ns。
在RESET#被拉高之后,需要等待500us直到CKE被拉高。在这段时间内,DRAM会开始内部状态的初始化,这个过程是独立于外部时钟完成的。
在CKE拉高之前,时钟(CK,CK#)必须开始且稳定至少10ns或5个tCK。图中可以看到一个tIS时间,这个时间是CKE关于时钟的setup时间,因为CKE是一个同步信号。在CKE拉高之前且使用tIS设定自己的同时,NOP和Deselect命令也必须registed。在Reset之后当CKE拉高,CKE就必须持续拉高直到初始化过程结束。图中可以看到CKE持续拉高到tDLLK和tZQinit都截止的时候。
在Reset#拉低的时候,DDR3 SDRAM的ODT一直保持高阻态。除此之外,ODT还在RESET#拉高到CKE变高这段时间维持了高阻态。在tIS之前,ODT的输入信号可能在一个未定义的状态。在CKE拉高之后,ODT的输入信号不会变化,一直处于LOW或者HIGH的状态。若是在MR1中设置打开了RTT_NOM,ODT输入信号会处于LOW状态。总的来看,ODT输入信号会维持不动直到初始化过程结束,直到tDLLK和tZQinit截止。
在CKE拉高之后,在发送第一个MRS命令到load mode register之前,需要等待tXPR,这个时间是RESET CKE的exit时间。(tXPR公式: tXPR=Max(tXS,5x tCK))
初始化DRR寄存器
发送MRS命令给MR2(BA0,2=0 and BA1=1)
发送MRS命令给MR3(BA2=0 and BA0,1=1)
发送MRS命令给MR1 且激活DLL(发送DLL enable命令,需要A0=0,BA0=1且BA1,2=0)
发送MRS命令给MR0且 RESET DLL(发送DLL RESET命令,需要A8=1,BA0,1,2=0)
发送ZQCL命令开始ZQ校准过程。
等待tDLLK和tZQinit完成。
DDR3 SDRAM可以开始进行一般操作了。
读写时序
读时序
在读取操作中,DQS/DQS#与输出数据同步,在 DQS/DQS#的上升/下降沿 都会读取到数据。DDR3 SDRAM 的突发读取操作不允许中断或者删减。在突发读取操作后,需要添加一个预充电(PRECHARGE)命令,来关闭激活的 Row。 根据 A10 管脚的不同,决定了预充电命令需要手动添加还是自动添加。在读取操作时,如果地址线 A10 为高,则在读取操作后自动会加一个预充电命令;而 如果地址线 A10 为低,则需要在读取命令之后,按照要求添加一个预充电命令
写时序
突发写入操作通过写入命令实现,DDR3 利用 WL(Write Latency)来表明其延迟时间,与读取操作的 RL 功能一致,而 WL=AL+CWL。在写入操作的时候,提供要写入的起始 Column 地址和 Bank 地址,同时是否加入自动预充电命令。如果加入自动预充电命令,则完成突发写入操作以后,就会自动关闭激活的 Row。
在突发写入操作中,第一个可用的输入数据在 WL 延时后的 DQS 的第一个上升沿被锁存,而后续的输入数据在每个 DQS 的上升沿/下降沿被锁存
模式寄存器(MR0-MR3)用于定义DDR3sdram的各种可编程操作模式。在初始化过程中,模式寄存器通过模式寄存器设置(MRS)命令进行编程,并保留存储的信息(MR0[8]除外,即自清除),直到重新编程,重置#下降,设备断电。可以通过重新执行MRS命令来更改模式寄存器的内容。即使用户只想修改模式寄存器变量的一个子集,在发出MRS命令时也必须编程所有变量。如果正确执行,重新编程模式寄存器将不会改变内存数组的内容。只有当所有bank空闲且处于预充状态(满足tRP且未进行数据爆发)时,才能发出(或重新发出MRS命令)。在发出MRS命令后,必须满足两个参数:tMRD和tMOD。控制器必须等待MRD才能启动任何后续MRS命令。
1、基本寄存器MR0用于定义各种DDR3sdram操作模式。这些定义包括选择突发长度、突发类型、CAS延迟、操作模式、DLL重置、写恢复和预充电断电模式
① Burst Length(BL):突发长度。DDR3 的读写操作都是突发类型的,突发长度决定了在读取操作或写入操作中列空间的最大个数,可根据要求设置为 4(突变模式),8(固定)或利用 A12 管脚在读写命令的时候进行设置(on-the-fly)。
② Burst Type:突发类型。突发类型分为 sequential 或 interleaved,只在读取操作中有用。由 M3 决定。
③ CAS Latency(CL):列地址选通脉冲时间延迟。指在读取数据时,读取命令到数据输出需要等待的时钟周期数,可设置为 5~11。
④ DLL Reset:DLL 复位设置,当设置 M8 为 1 时,激活 DLL 复位功能。
⑤ Write Recovery:定义写恢复时间,WR= tWR/tCK,可设置为 5~12。
⑥ Precharge Power-Down 模式:当 M12 设置为 0 时,在预充电 Power-Down模式下,DLL关闭,芯片处于待机模式;当M12设置为1时,在预充电Power-Down模式下,DLL 打开,芯片处于快速退出预充电 Power-Down 模式。
⑦ Mode Register Definition:模式寄存器定义,由 BA1 和 BA0 决定 LMR命令所操作的模式寄存器属于哪种模式寄存器。
2、模式寄存器1(MR1)模式寄存器1(MR1)控制其他模式寄存器中不可用的附加功能和功能:QOFF(输出禁用)、TDQS(仅用于x8配置)、DLL启用/DLL禁用、RTT、标称值(ODT)、写入调平、发布的CAS附加延迟和输出驱动器强度。这些功能通过图53(第138页)所示的位进行控制。MR1寄存器通过MRS命令进行编程,并保留存储的信息,直到它被重新编程,直到重置#下降,或直到设备断电。重新编程MR1寄存器将不会改变内存数组的内容。当所有银行空闲时,必须加载MR1寄存器。控制器必须满足规定的定时参数tMRD和tMOD。
MR1 模式寄存器定义 DDR3 SDRAM 额外的一些设置,有数据输出使能(QOFF)、DLL 使能/禁止、ODT 的电阻值、写入均衡控制、CAS 附加延迟设置和输出驱动强度选择等。
① DLL Enable/Disable:DLL 使能控制。在正常操作时,DLL 必须被使能,在上电初始化的时候进行使能设置。
② Output Drive Strength:输出驱动强度。正常情况下设置为 RZQ/7(34Ω [NOM]),为了校准输出驱动阻抗,外部需要有 RZQ 电阻(240Ω±10%)连接到 ZQ 管脚上。
③ CAS# Additive Latency(AL):CAS 附加延迟,可设置为 0、CL-1、CL-2。
④ RTT:ODT 电阻的设置和 RZQ 电阻相关,可按需求设置。
⑤ WL:写入均衡功能使能,通过 MR1[7]设置。
⑥ TDQS 使能控制:只有在 8bit 模式下才使用。
⑦ 数据输出使能控制:M12 设置是否正常输出,M12=0 时正常输出,否则输出禁止。
⑧ Mode Register Definition:模式寄存器定义,由 BA1 和 BA0 决定 LMR命令所操作的模式寄存器属于哪种模式寄存器。
3、MR2 模式寄存器定义了 DDR3 SDRAM 的其他一些设置,有 CAS 写入延迟、自动自刷新(ASR)、温度自刷新(SRT)、动态 ODT 等。
① CWL:CAS 写入延迟。定义在写入操作中,在附件延迟(AL)后增加的CWL 延迟时钟数,可设置为 5~8。
② ASR:自动自刷新使能。
③ SRT:自刷新温度范围使能。
④ 动态 ODT:动态 ODT 使能。如果动态 ODT 使能,则在写入操作的时候,DRAM 从正常的 ODT 模式切换到动态 ODT 模式进行工作。
⑤ Mode Register Definition:模式寄存器定义,由 BA1 和 BA0 决定 LMR命令所操作的模式寄存器属于哪种模式寄存器。
MR3 定义了 MULTIPURPOSE REGISTER(MPR)功能的控制位
DDR扫盲——DDR中的名词解析
RAS:Row Address Strobe,行地址选通脉冲;
CAS:Column Address Strobe,列地址选通脉冲;
tRCD:RAS to CAS Delay,RAS至CAS延迟;
CL:CAS Latency,CAS潜伏期(又称读取潜伏期),从CAS与读取命令发出到第一笔数据输出的时间段;
RL:Read Latency,读取潜伏期;
tAC:Access Time from CLK,时钟触发后的访问时间,从数据I/O总线上有数据输出之前的一个时钟上升沿开始到数据传到I/O总线上止的这段时间;
tWR:Write Recovery Time,写回,保证数据的可靠写入而留出足够的写入/校正时间,被用来表明对同一个bank的最后有效操作到预充电命令之间的时间量;
BL:Burst Lengths,突发长度,突发是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(SDRAM),在DDR SDRAM中指连续传输的周期数;
Precharge:L-Bank关闭现有工作行,准备打开新行的操作;
tRP:Precharge command period,预充电有效周期,在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行;
AL:Additive Latency,附加潜伏期(DDR2);
WL:Write Latency,写入命令发出到第一笔数据输入的潜伏期;
tRAS: Active to Precharge Command,行有效至预充电命令间隔周期;
tDQSS:WRITE Command to the first corresponding rising edge of DQS,DQS相对于写入命令的延迟时间;