DDR读写

本文详细解释了DDR3SDRAM的关键组件如数据线、地址线、控制信号以及初始化过程。文章还涵盖了读写时序和模式寄存器的作用,如MR0至MR3的设置和功能。
摘要由CSDN通过智能技术生成

 注意:

写入数据掩码: 在写入操作时,如果 DM 信号为高,则写入数据被屏蔽;如果 DM 信号 为低,则写入数据正常锁存。 LDM 控制 DQ0~DQ7UDM 控制 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 利用 WLWrite 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 LengthBL):突发长度。DDR3 的读写操作都是突发类型的,突发长度决定了在读取操作或写入操作中列空间的最大个数,可根据要求设置为 4(突变模式),8(固定)或利用 A12 管脚在读写命令的时候进行设置(on-the-fly)。

Burst Type:突发类型。突发类型分为 sequential interleaved,只在读取操作中有用。由 M3 决定。

CAS Latency(CL):列地址选通脉冲时间延迟。指在读取数据时,读取命令到数据输出需要等待的时钟周期数,可设置为 5~11

DLL ResetDLL 复位设置,当设置 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/DisableDLL 使能控制。在正常操作时,DLL 必须被使能,在上电初始化的时候进行使能设置。

Output Drive Strength:输出驱动强度。正常情况下设置为 RZQ/734Ω [NOM]),为了校准输出驱动阻抗,外部需要有 RZQ 电阻(240Ω±10%)连接到 ZQ 管脚上。

CAS# Additive Latency(AL)CAS 附加延迟,可设置为 0CL-1CL-2 

RTTODT 电阻的设置和 RZQ 电阻相关,可按需求设置。

WL:写入均衡功能使能,通过 MR1[7]设置。

TDQS 使能控制:只有在 8bit 模式下才使用。

⑦ 数据输出使能控制:M12 设置是否正常输出,M12=0 时正常输出,否则输出禁止。

Mode Register Definition:模式寄存器定义,由 BA1 BA0 决定 LMR命令所操作的模式寄存器属于哪种模式寄存器。

 

3、MR2 模式寄存器定义了 DDR3 SDRAM 的其他一些设置,有 CAS 写入延迟、自动自刷新(ASR)、温度自刷新(SRT)、动态 ODT 等。

CWLCAS 写入延迟。定义在写入操作中,在附件延迟(AL)后增加的CWL 延迟时钟数,可设置为 5~8

ASR:自动自刷新使能。 

SRT:自刷新温度范围使能。 

④ 动态 ODT:动态 ODT 使能。如果动态 ODT 使能,则在写入操作的时候,DRAM 从正常的 ODT 模式切换到动态 ODT 模式进行工作。

Mode Register Definition:模式寄存器定义,由 BA1 BA0 决定 LMR命令所操作的模式寄存器属于哪种模式寄存器。

 

 MR3 定义了 MULTIPURPOSE REGISTERMPR)功能的控制位

 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相对于写入命令的延迟时间; 

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA(现场可编程门阵列)是一种可让用户自行定义和配置其内部电路功能的集成电路芯片。DDR(双倍数据速率)是一种内存技术,可实现数据的高速读写FPGADDR可以结合使用来实现高性能的数据处理和存储。 首先,FPGA需要通过相应的接口与DDR进行连接。常见的接口包括DDR控制器和PHY(物理层接口)。DDR控制器负责配置DDR芯片的操作,设置读写时序和控制信号等。PHY则负责物理层的信号转换和数据传输。 在进行DDR读操作时,FPGA首先发送读请求到DDR控制器,控制器根据请求的地址和时序来控制DDR芯片进行读取。DDR芯片将请求的数据从存储器中读取出来,并通过PHY转换成符合FPGA内部电路处理的格式,然后传输给FPGA。 在进行DDR写操作时,FPGA将待写入的数据发送到DDR控制器,控制器负责将数据写入DDR芯片的相应地址。DDR芯片接收到数据后,通过PHY转换成电信号,然后将数据写入到存储器中。 为了保证DDR读写正确性和稳定性,需要进行时序和电气参数的校准。时序校准可以确保读写操作在正确的时钟边沿进行。电气参数校准可以通过发送特定的测试信号来调整和校准DDR控制器和PHY之间的电气参数,以提高数据稳定性和传输质量。 总结而言,FPGADDR可以配合使用,实现高速和大容量的数据处理和存储。使用适当的接口、控制器和PHY,可以实现稳定可靠的DDR读写操作。时序和电气参数的校准对于保证DDR读写的正确性和稳定性非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值