收藏 分享(赏)

DDR_SDRAM_Spec简介.pdf

上传人:精品资料 文档编号:11227029 上传时间:2020-02-21 格式:PDF 页数:10 大小:863.20KB
下载 相关 举报
DDR_SDRAM_Spec简介.pdf_第1页
第1页 / 共10页
DDR_SDRAM_Spec简介.pdf_第2页
第2页 / 共10页
DDR_SDRAM_Spec简介.pdf_第3页
第3页 / 共10页
DDR_SDRAM_Spec简介.pdf_第4页
第4页 / 共10页
DDR_SDRAM_Spec简介.pdf_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、DDR SDRAM 简介 本小节以 Micron 512 MDDR SDRAM MT46V32M16-75Z 为例介绍 DDR SDRAM 访问方式。 DDR SDRAM 全称 Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM是一种同步 DRAM,因此需要用户提供时钟信号, DDR SDRAM(以下简称 DDR)需要用户提供一对差分的时钟信号,其频率范围会在数据手册中给出, MT46V32M16-75Z 的时钟频率范围为 75133MHz,可接收 的时钟 on占空比范围为 45%55%。 DDR 内部架构由

2、 bank、行、列构成, MT46V32M16-75Z 是一个容量为 512M bit 的 DDR SDRAM,该芯片有 4 个 bank,每个bank 有 8K 行,每行有 1K 列,每一列有 16 个 bit。 DDR 的对外用户接口有时钟及其使能信号、命令信号、地址信号和数据信号四类。表 1 后半以 DDR 为前缀的部分列出了 DDR 用户接口信号及其简要解释。 DDR_CKE FPGA 输出 DDR SDRAM clk enable signal, CKE HIGH activates and CKE LOW deactivates the DDR internal clock DDR

3、_CK, DDR_CK_N FPGA 输出 differential clock outputs for DDR SDRAM DDR_CS_N FPGA 输出 Chip select signal for DDR SDRAM DDR_RAS_N DDR_CAS_N DDR_WE_N FPGA 输出 DDR_RAS_N , DDR_CAS_N , DDR_WE_N (along with DDR_CS_N) define the command being entered to DDR SDRAM DDR_BA1:0 FPGA 输出 Bank address inputs for DDR SDR

4、AM DDR_ADDR12:0 FPGA 输出 row or column address inputs for DDR SDRAM DDR_DQ15:0 双向信号 Data input/output of DDRSDRAM DDR_DQS1:0 双向信号 Data strobe of DDR SDRAM DDR_DM1:0 FPGA 输出 output data mask of DDR SDRAM MT46V32M16-75Z 有四个 bank,因此其 bank 地址总线 BA 为 2 位,每个 bank 有 8K 行,每行有 1K 列,因此其地址总线 ADDR 为 13 位( 213=8K

5、),又由于每列有 16bit,因此其数据DQ 总线为 16 位,相应的,数据同步信号 DQS 为 2 位(每一位 DQS 负责 8 位数据线)。这些信号都是以时钟为参考信号, DDR 会在差分时钟输入的正时钟上升沿和负时钟下降沿交点处寄存所有的控制和地址输入信号 ,而数据输出( DQ、 DQS)也是参考此交点输出的。此外,CS 为片选信号,与 RAS_N、 CAS_N、 WE_N 一起构成 DDR 命令总线,根据命令总线状态分辨DDR 命令如表二所示。 表二: DDR 命令 Name (Function) CS_N RAS_N CAS_N WE_N Address 不选择 DDR (NOP)

6、H X X X X 无操作 (NOP) L H H H X ACTIVE(打开行, ADDR 提供行地址 BA 提供 bank 地址 ) L L H H Bank/row READ ( 读 ADDR 提供列地址 BA 提供 bank 地址 ) L H L H Bank/col WRITE (写 ADDR 提供列地址 BA 提供 bank 地址 ) L H L L Bank/col BURST TERMINATE(突发终止) L H H L X PRECHARGE (关闭 bank) L L H L Code AUTO REFRESH or SELF REFRESH(自动刷新或自刷新) L L

7、L H X LOAD MODE REGISTER (写模式寄存器) L L L L Op-code DDR 在读写某一个指定地址之前,需要“打开”相应的行,而且每个 bank 同时只能有一个行打开。形象的说,一个 4bank DDR 就像一个有着四个独立单元的楼房一样,楼房中有多个房间,而每个房间内依次存放着多列的物品。每个单元相当于一个 bank,每个房间相当于一个 DDR 行,这个楼房的每个单元只有一把钥匙,这把钥匙只能在所有房门都关闭时打开任意一个房间的门,如果已经有打开的房间了,在打开下一个房间时,必须先关闭已打开者,然后才能打开新的 房间。 也就是说,如果我们想在第 i 单元的第 j

8、 房间的第 k 列存放或者拿出物品,就必须先“打开”第 i 单元的第 j 房间,然后再到第 k 列存放或者拿出物品;而且,在打开时,需要保证第 i 单元没有其他房间被打开,否则,需要先 “ 关闭 ” 其他已打开房间,再打开第 j 房间。这个“打开”就是 DDR 的 ACTIVE 命令,在 ACTIVE 命令的同时,需要由 BA 给出 bank 地址,并由 ADDR 给出行地址,而且需要保证打开的那个 bank 处于空闲状态(就是说所有的行都关闭)。一个 ACTIVE 命令如图 4.1 所示。 而“拿出”或“存放”物品则对应 DDR 命令 的“读”、“写” 命令,这两个命令 都只能对已打开行,在

9、进行“读”、“写”时,由 BA 给出 bank 地址、由 ADDR 给出列地址,而在表 2 中可以看出,读和写由 WE_N 区别,图 4.2 、 4.3 分别给出了读、写命令时序。读写完毕后,如果不再需要操作该行时,需要“关闭”该 bank,就是运行“ PRECHARGE”命令,该命令时序见图 4.4, PRECHARGE 命令实施时,如果地址总线的第十一位 ADDR10为 0,则表示关闭 BA 指定的 bank,否则表示关闭所有 bank。 图 4.1 ACTIVE 命令 图 4.2 READ 命令 图 4.3 WRITE 命令 图 4.4 PRECHARGE 命令 除了读写相关的命令之外,

10、还有 AUTO REFRESH(或 SELF REFRESH)命令,这个命令是 DDR刷新命令,由于 DDR是一种 DRAM,基本存储单元是 MOS管的栅极电容,电容保持电荷的时间有限,为了及时补充漏掉的电荷,必须定时给栅极电容补充电荷,这个补充电荷的操作称为刷新操作,其实就是轮流读每个单元,充一次电。刷新操作又分为 AUTO REFRESH 和 SELF REFRESH两种,当发送命令时 CKE为高,则表示发送了 AUTO REFRE命令,否则表示发送了 SELF REFRESH命令。 AUTO REFRESH是正常操作 DDR时使用的命令, MT46V32M16-75Z需要每 7.8us执

11、行一次,否则内部存储数据将丢失; 而 SELF REFRESH是在 DDR省电模式下进行的,做 SELF REFRESH时,由芯片内部计数器控制寻址,即使是芯片其他部分已经停止电供应,也可保持DDR数据不丢失。 此外,还有一个命令称为 LOAD MODE REGISTER,就是装载模式寄存器, DDR由两个控制操作模式的寄存器 ,一个称为模式寄存器 (MODE REGISTER),另一个称为扩展模式寄存器(EXTEND MODE REGISTER), 模式寄存器格式如图 5所示,扩展模式寄存器如图 6所示。运行LOAD MODE REGISTER命令时,使用 BA来标记地址总线 ADDR上的数

12、据是写入模式寄存器 (MR)还是扩展模式寄存器 (EMR)。 图 5 :模式寄存器定义示例( MT46V32M16) 当 BA =00时,写入 MR,用 ADDR12:7标记 DDR操作模式,当 ADDR12:7=6b000000时,表示普通操作;当 ADDR12:7=6b000010时,表示普通操作,并且重启 DLL;当 ADDR12:7为其他数据时,则视为无效操作。而 ADDR6:4标记 CAS延时周期,可谓 2、 2.5和 3,该值表示读命令发出几个时钟周期后, DQ数据总线上出现所读数据; 010代表两 个周期、 011代表三个周期、 110代表 2.5周期。 ADDR3表示突发模式,

13、为 0表示序贯输出,为 1表示交错输出。而ADDR2:0表示突发长度, 001代表 2、 010代表 4、 011代表 8,其他值视为无效。根据突发长度、突发模式和读访问时低位地址,知 DDR数据总线上数据输出如表三所示。 表三、突发操作数据输出顺序 当 BA=01时,写入 EMR,当 ADDR12:2为全 0时,本命令有效,否则,视为无效。 ADDR1表示输出驱动强度, 0为普通强度 SSTL_2 II, 1为弱驱动,其驱动强度大概为 SSTL_2 II的 57%;ADDR0表示 DLL使能, 0为使能, 1反之, DDR初始化操作时,使能 DLL,然后两百个周期后,可以执行读 DDR操作。

14、正常操作时, DLL必须处于使能状态。 图 6:扩展模式寄存器定义示例( MT46V32M16) DDR所有的命令操作都不是瞬间完成了,每发送一个命令,就需要等到该命令执行完毕才能发送下一个命令,每个命令执行时间称为该命令的执行周期,执行周期的时间长短因芯片而异,同一系列的芯片也因速度等级不同而导致执行周期时长不同。 以 MT46V32M16-75为例,发送命令有以下制约: 1、 ACTIVE命令 PRECHARGE 时间间隔 TRAP = 40ns; 2、 ACTIVE命令 READ(带自关闭 ) 时间间隔 TRAP = 20ns; 3、 ACTIVEREA/WRITE 时间间隔 TRCD

15、= 20ns; 4、 ACTIVE bank a ACTIVE bank a, ACTIVEAUTO REFRESH 时间间隔 TRC = 65ns; 5、 AUTO REFRESHAUTO REFRESH TREFI = 7.8us; 6、 AUTO REFRESH命令 周期 TRFC = 75ns; 7、 PRECHARGE命令 周期 TRP = 20ns; 8、 ACTIVE bank a ACTIVE bank b时间间隔 TRRD = 15ns。 9、 LOAD MODE REGISTER 命令周期 TMRD =15ns; 10、 内部写命令到读命令时延 TWTR = TCK;在读命

16、令发出前 TWTR以前出现在数据总线上的写数据才被正确写入,而在读命令发出前 TWTR之后的数据不会写入 DRAM。 11、 从写命令发出到输入数据出现在数据总线上的时延 TDQSS。 下面介绍以 MT46V32M16-75为例,配合时序介绍 DDR 正常操作(除省电模式外)操作 命令。 1、 DDR初始化 在正常操作 DDR之前,必须对 DDR进行上电和初始化操作。这些初始化操作是厂商指定的,用户必须按指定要求执行一系列初始化操作,才能保证 DDR可以正确使用。 MT46V32M16必须按以下步骤进行上电和初始化。命令序列见图 7。 1) 同时对 VDD引脚和 VDDQ引脚通电。 2) 对

17、VREF通电,然后再对 VTT 通电。 VTT必须在 VDDQ 之后通电,以避免设备进入死锁状态,对 DDR造成不可修复的损害。当 VREF通电后,除了 CKE之外的所有输入都当作无效处理。 3) 将 CKE保持在 LVCMOS逻辑低电平。 4) 提供稳 定的时钟信号。 5) 等待 200us。 6) 拉高 CKE,发出一个 NOP或者 DESELECT命令,同时,将 CKE从 LVCOMS电平变成 SSTL_2电平输入,并将一直保持 SSTL_2。 7) 发出一个 PRECHARGE ALL命令。 8) 等待至少一个 TRP时间,这个时间内一定只能给出 NOP或 DESELECT命令(也就是

18、说什么命令都不给。 9) 使用 LMR命令编程 EMR,一定要使 E0 = 0,以便使能 DLL,且要使 E1 = 0来指明做普通输出驱动,或 E1 = 1给出输出弱驱动。而 E2最高位必须为 0。 10) 等待一个 TMRD时间,这个时间内一 定只能给出 NOP或 DESELECT命令。 11) 使用 LMR命令编程 MR,设置操作参数,重启 DLL, DLL重启 200个时钟周期之后,可以给出一个 READ命令。 12) 等待一个 TMRD时间,这个时间内一定只能给出 NOP或 DESELECT命令。 13) 发出一个 PRECHARGE ALL命令。 14) 等待至少一个 TRP时间,这

19、个时间内一定只能给出 NOP或 DESELECT命令。 15) 发出一个 AUTO REFRESH命令(可以在第 13步之前做这一步)。 16) 、等待一个 TRFC时间,这个时间内一定只能给出 NOP或 DESELECT命令。 17) 发出一个 AUTO REFRESH命令(可以在第 13步之前做这一步)。 18) 等待一个 TRFC时间,这个时间内一定只能给出 NOP或 DESELECT命令。 19) 虽然 Micron设备并不需要,但是 JEDEC却要求再发出一个 LMR命令来清掉 DLL位 (设 M8 = 0);用户就发出一个和第 11步参数一样的 LMR命令即可。 20) 等待一个

20、TMRD时间,这个时间内一定只能给出 NOP或 DESELECT命令。 21) 从此时开始, DRAM已经初始化完毕,从第 11步开始,等待 200个时钟周期之后,就可以发出读命令了。 图 7: DDR SDRAM初始化命令序列 2 ACTIVE命令 ACTIVE命令打开一个行 TRCD时间之后,用户可以发出 READ或者 WRITE命令。例如, TRCD为 20ns,系统时钟为 133MHz, 那么 20ns就是 2.7个周期,取整到 3个周期。当运行 ACTIVE命令之后,到对该 bank执行 PRECHARGE之前,该行一直保持打开状态。在一个时刻,每个 bank中只能有一个行处于打开状

21、态。两次打开同一个 bank的时间间隔称为 TRC,而两次打开不同 bank的时间间隔称为 TRRD。图 8例列出了一个当 2 TRCD (TRRD) MIN/TCK 3的情况 的时序图。 图 8: ACTIVE命令举例 3 READ命令 在执行 READ命令时,由 ADDR10的值来区别是不是需要自动关闭。如果 ADDR10的值为 1。则在读完之后,该行自动关闭,无须再执行一个关闭命令。否则,则读命令执行完之后,该行仍维持打开状态。读命令发出后的 CL时间后,有效数据会出现在数据总线上。图 9例列出了一个读PRECHARGEACTIVE同一个 bank的例子。 图 9: READ命令举例 4

22、 WRITE命令 在执行 WRITE命令时,由 ADDR10的值来区别是不是需要自动关闭。 如果 ADDR10的值为 1。则在读完之后,该行自动关闭,无须再执行一个关闭命令。否则,则写命令执行完之后,该行仍维持打开状态。根据 DM输入的内容,决定是不是不要将 DQ总线上的输入数据写入 DRAM( DM为 1,表示不写入),一个被读指令打断的写时序举例见图 10。未被打断的写时序如图 11。 图 10:被读指令打断的 WRITE命令举例 图 11:未被读指令打断的 WRITE命令举例 图 10中,只有在读命令发出 TWTR之前的数据才被写入。图 11中,所有数据都被写入。 5、 PRECHARG

23、E 除了自动关闭之外,被关 闭的 bank在 TRP之后 就可以接受 行操作了(行打开)。在执行自动关闭的同时,允许对另一个 Bank进行读或写操作(再不破坏本 bank的数据传输的情况下)。 在执行 PRECHARGE的同时, ADDR10的值决定是关闭所有 bank,还是关闭 BA所决定的 bank。 在发送读或者写命令的同时, 可以由 ADDR10( 1执行、 0不执行)的值决定是否执行自动关闭的操作。自动关闭是指在读或者写完成之后,对读 /写的 bank执行关闭操作,而无须再发出一个 PRECHARGE命令。而且,在执行完读突发或写突发之后尽早执行 PRECHARGE命令,这个“尽早”表示不打断 TRAS的情况下,用户在使用自动关闭的同时,一定要注意不可以打断该操作(在 TRP时间内)。图 12和图 13分别例示带自动关闭的读、写指令。 图 12 带自动关闭的读 图 13 带自动关闭的写 6、 AUTO REFRESH 要注意,自刷新命令执行之前,所有 bank必须出于 idle状态。每 TREFI时间一到,必须执行一次自刷新操作,自刷新时,必须保持 CKE为高电平,从执行自刷新命令开始的 TRFC时间内,不允许执行任何命令。自刷新时序举例见图 14。 图 14 自刷新时 序举例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报