最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

DDR2学习笔记

IT圈 admin 55浏览 0评论

2024年8月29日发(作者:撒清舒)

个人笔记整理,可能存在错误,仅供参考

DDR2初识

1.1 基础

SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指

内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列

需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进

行数据读写。

DDR2第二代双倍数据率同步动态随机存取存储器(Double-Data-Rate Two Synchronous

Dynamic Random Access Memory),双倍速率主要体现在采用了在时钟的上升延和下降延同

时进行数据传输的基本方式。另外,DDR2内存核心在于其拥有两倍于标准DDR内存的4Bit

预读取能力,即一次将4Bit数据读入到IO缓存中,在需要时内存既可快速进入处理环节,

这样减少了数据查找、等待、排队的时间,提高效率。

DDR2规格 传输标准

DDR2 -400

DDR2 -533

DDR2 -667

DDR2 -800

核心频率 总线频率

200MHz

266MHz

333MHz

400MHz

等效传输频率

400MHz

533MHz

667MHz

800MHz

数据传输率

3200MB/S

4300MB/S

5300MB/S

6400MB/S

PC2 3200 100MHz

PC2 4300 133MHz

PC2 5300 166MHz

PC2 6400 200MHz

OCD(Off-Chip Driver):

片外驱动电阻调整技术。DDR2通过OCD可以提高信

号的完整性。通过调整上拉(pull-up)/下拉(pull-down)的电阻值使两者电压相等。使用OCD通

过减少DQ-DQS的倾斜来提高信号的完整性;通过控制电压来提高信号品质。不过,OCD技

术在普通的应用领域所发挥的作用并不明显,而在服务器上使用,它的功能才能被充分发挥

出来。

ODT(On Die Terminator):

即内建核心的终结电阻器。它的主要作用是

能够直接提升系统的稳定性。使用DDR SDRAM的主板上面为了防止数据线终端反射信号需

要大量的终结电阻。它大大增加了主板的制造成本。实际上,不同的内存模组对终结电路的

要求是不一样的,终结电阻的大小决定了数据线的信号比和反射率,终结电阻小则数据线信

号反射低但是信噪比也较低;终结电阻高,则数据线的信噪比高,但是信号反射也会增加。

因此主板上的终结电阻并不能非常好的匹配内存模组,还会在一定程度上影响信号品质。可

以根据自已的特点内建合适的终结电阻,这样可以保证最佳的信号波形。简单来说,ODT

可以和内存颗粒的“特性”相符,从而减少内存与主板的兼容问题的出现。

Posted CAS(RAS紧接着CAS):

它为了解决DDR内存中指令冲突问题,

提高DDR II内存的利用效率而设计的功能。在Post CAS操作中,CAS信号(读写/命令)能够被

插到RAS信号后面的一个时钟周期,CAS命令可以在附加延迟(Additive Latency)后面保持有

效。原来的tRCD(RAS到CAS和延迟)被AL(Additive Latency)所取代,AL可以在0,1,2,3,

4中进行设置。由于CAS信号放在了RAS信号后面一个时钟周期,因此ACT和CAS信号永

远也不会产生冲突。不过要注意的是,Posted CAS功能的优势只有在那些读写命令非常频繁

的运作环境下才能体现,对于一般的应用来说,开启Posted CAS功能反而会降低系统的整体

性能。

DDR2数据总线位宽X4/X8/X16:

区别在于DQS(数据同步)/RDQS(读

数据同步)/UDQS(高位数据同步15:0)/LDQS(地位数据同步7:0)这些数据同步信号,

1.2 接口

端口

CK,CK#

方向

input

功能

时钟信号,差分时钟,所有地址和控制信号都在CK的上升

沿和CK#的下降沿的交叉处被锁存;输出数据与CK和CK#

的交叉对其(双沿输出)。

时钟使能,为“高”时使能内部时钟信号,输入缓存。输

出驱动;为“低”时进入PRECHARGE、Power-Down、

SELF-Refresh等模式。

片选信号,低有效,为高时所有命令无效。

On Die Termination,使能内部终结电阻

行选通脉冲信号,列选通脉冲信号,写使能信号

数据屏蔽信号,在写操作过程中,当DM为高时,输入数

据将会被屏蔽;在读操作过程中DM可以为高、低或者悬

BANK地址选通信号,用于确定对哪一个BANK进行激活、

读写、预充电等操作

地址输入信号,为ACTIVE命令提供行地址;为读写命令、

AUTO PERCHARGE提供列地址;A10位只在precharge命令

是被采样,当A10为低时,对一个BANK进行precharge操

作;当A10为高时,对所有BANK进行precharge操作。

CKE input

CS#

ODT

input

input

RAS#,CAS#,WE# input

DM(UDM,LDM) input

BA0-BA2

A0-A15

input

input

DQ

DQS,DQS#

(UDQS,UDQS#)

(LDQS,LDQS#)

(RDQS,RDQS#)

NC

VDDQ

VSSQ

VDDL

VSSDL

VDD

VSS

VREF

input/output

数据总线

input/output

数据总线触发信号,读操作是DQS为输出,与数据边沿对

齐;写操作是DQS为输入,与数据中心对齐。

supply

supply

supply

supply

supply

supply

supply

不连接

DQ工作电压:1.8V+/-0.1V

DQ工作地

DLL工作电压:1.8V+/-0.1V

DLL工作地

芯片供电电压:1.8V+/-0.1V

芯片供电地

刷新参考电压

DDR2 SDRAM操作

2.1DD2协议

2.1.1简单状态及

2.1.2操作指令

2.1.3电气特性

2.2上电和初始化过程

2.2.1上电初始化过程

a)上电初始化必须满足:

a1)上电保持CKE低于0.2*VDDQ;ODT要处于低电平状态(其他的管脚可以没有定义);

电源上升沿不可以有任何翻转,且上升沿不能大于200ms,并且要求在电压上升沿过程

中满足VDD>VDDL>VDDQ且VDD-VDDQ<0.3V;

-VDD,VDDL和VDDQ必须由同一电源芯片供电;

-VTT最大只能到0.95V;

-VREF时刻等于VDDQ/2。

a2)

b)时钟信号要保持稳定;

c)在电源和时钟稳点之后至少要保持200us,然后执行NOP或Deselect取消选定命令&拉

高CKE;

d) 等待至少400ns然后执行预充电所有簇命令,期间执行NOP或Deselect(取消选定命令);

e)执行EMRS(2)命令,(EMRS(2)命令,需要将BA0、BA2拉低,BA1拉高);

f)执行EMRS(3)命令,(EMRS(2)命令,需要将BA2拉低,BA0、BA1拉高);

g)执行EMRS命令激活DLL,(需要将A0拉低,BA0拉高,BA1-2拉低,A13-15,A9-7拉低);

h)执行MRS命令实现DLL复位,(需要将A8拉高,BA0-2,A13-15拉低);

i)再次执行预充电所有簇命令;

j)执行至少两次自动刷新命令;

k)将A8拉低,执行MSR命令对芯片进行初始化操作(即不对DLL进行复位下的模式寄存

器设置命令);

l)从第h开始后至少200个时钟周期后执行OCD校准命令((Off Chip Driver impedance

adjustment);

m)可以开始执行DDR2 SDRAM的常规操作;

2.2.2模式寄存器和扩展模式寄存器设置

为了使用更加灵活,可以通过预先设置模式寄存器和扩展模式寄存器的方法,设置DDR2

SDRAM的突发长度、突发类型、CAS延时,DLL复位和禁止、写恢复时间长度、设置驱动电

阻,ODT,附加CAS延时、OCD(片外驱动电阻调节)等。

MRS和EMRS以及DLL这些命令不会影响存储器阵列的内容,所以上电后任意时间执行

初始化操作都可以。

2.2.2.1模式寄存器设定

模式寄存器中的数据控制DDR2 SDRAM的操作模式,默认值没有被定义,通过拉低CS、

RAS、CAS、WE和BA0-1计入模式寄存器设置模式(MRS)。在写模式寄存器之前必须对所

有簇进行预充电,并且命令保持的时间必须满足tMRD(查表大于等于2个时钟周期)。以

下是各参数具体设置的内容:

2.2.2.2扩展寄存器设定

EMRS(1)

扩展模式寄存器(1)设置激活或禁止DLL的控制信息,输出驱动强度,ODT(内部终

结电阻)值和附加延时等。扩展寄存器(1)的默认值也没有被定义,通过拉低CS、RAS、

CAS、WE、BA1和拉高BA0进入设置。

DLL(延迟锁相环)激活与禁止

优势在于可以做到很高精度,可以排除温度、电压变化带来的影响,使得skew 可以作

得很小,而且可以调整时钟占空比。对通常的操作,DLL必须被激活。在上电初始化过程中,

必须激活DLL,在开始正常操作时,要先关闭DLL。在进入自我刷新操作时,DLL会被自动禁

止,当结束自我刷新时,DLL会被自动激活。一旦DLL被激活(随之将复位),为了使外部

时钟和内部始终达到同步,在发布读命令之前必须至少要过200个时钟周期。没有等待同步

可能会导致tAC或tDQSCK参数错误

EMRS(2)

扩展模式寄存器(2)控制着刷新和相关的特性。扩展模式寄存器(2)的默认值没有被定义,

因此在上电后,必须按规定的时序对EMRS(2)进行设定。通过拉低CS,RAS,CAS,WE,置高BA1

拉低BA0来发布EMRS(2)的设定命令。

2.2.3片外驱动电阻(OCD)调整

DDR2 SDRAM支持驱动校准特性,调整的流程如下图所示。每执行一次校准命令,都要

在之后紧跟着“OCD校准模式结束”命令,之后才可以发布其它的命令。在进行OCD电阻调

整之前必须要设置MRS.并且根据系统的环境,要小心控制ODT (终结电阻)。

2.2.4片内终结电阻(ODT)的激活或禁止

终结电阻(ODT)是DDR2 SDRAM的一个特点,目的是为了提高存储通道信号完整性,

允许独立的打开或者关闭DQ、DQS、RDQS、DM等数据总线传输信号的片内终结电阻。ODT

管脚与EMR控制开关打开不同的组合产生相应的阻值。图中每个电阻300欧姆,标准要求

ODT电阻提供50/75/150欧姆的电阻。

2.3簇激活命令

在时钟上升沿时保持CAS#、WE#为高,CS#、RAS#为低即可发布簇激活命令,其中BA0

和BA1为要激活的簇地址,行地址A0-A13决定要激活该簇的那些行。BANK被激活后才能

正常的进行读写操作。

2.4读写操作

Bank激活后,读写周期就可以开始执行了。

突发读写

DDR2允许执行突发读写操作,突发长度有MRS寄存器的值决定。

读中断

DDR2允许突发长度为8的模式下的读操作被另一个读操作中断,其他任何命令不能中

断突发读操作。

写掩码操作

DQM就是掩码控制位,在sdram中每个DQM控制8bit Data。在读操作的时候没什么

大的影响,比如读32位的sdram module,但只要其中低8bit的数据,没有关系,只要读出

32bit数据,再在软件里将高24位bit和0“与”就可以了,有没有DQM关系不大。但在执行

写操作时。如果没有DQM就麻烦了,可能在软件上是写一个8bit数据,但实际上32根数

据线是物理上连接到SDRAM的,只要WR信号一出现,这32位就会写sdram中去,高24bit

数据就会被覆盖。通过使用DQM就可以将其对应的8bit屏蔽,不会因为写操作而覆盖数据

了。

2.5预充电操作

预充电命令用于对某一个BANK进行预充电,或者关闭某一个激活的BANK准备对另外

一个BANK进行读写操作。

2.6自动预充电

当对一个已经激活的BNAK的新的一行进行读写时,必须执行预充电或者自动预充电命

令,预充电和自动预充电的区别在于,发布读写命令的时候A10的状态,如果A10为低则

执行常用的读写操作,如果A10为高则执行带有自动预充电的读写操作

2.7自动刷新(Auto -rf)与自刷新(self-rf)命令

自动刷新就是每隔固定的时间对DDR2的进行一次刷新,周而复始的循环刷新。在执行

刷新前所有的BANK都要被预充电且至少保持tRP处于空闲。当开始执行刷新命令后,芯片

内部的地址计数器提供地址,不需要外部提供地址。

自刷新是当系统其他部分断电后,自刷新命令用来维持数据,在自刷新模式中,DDR2

无需外部时钟就可以维持数据

2.8下电

CKE为低时,DDR2进入下电模式。

当执行模式寄存器或者扩展模式寄存器,以及读写操作时CKE不能为低,其他操作,如

行激活、预充电、自动预充电、刷新时,CKE可以为低。

DDR2 控制器

3.1控制器原理概述

如下图,DDR2控制器与DDR-PHY使用同步时钟,其中同步时钟最好产生于PLL;DDR PHY

Interface (DFI)即DDR2内存与控制器的物理层接口;控制器设计包括图像左侧的用户接口以

及总线仲裁器,右侧为产生符合DDR2时序的core logic。

3.2系统同步

我们可以看到DDR2控制器与DDR2内存组成的系统是一个同步设计,综合时需要针对

CK,CKE与CMD信号、ADD信号、DATA信号进行同步约束;另外,在高速频率工作的情况下,

信号从控制器到达DDR2的延时可能需要一整个时钟周期或者更多。所以在控制器设计与系

统实现上面临也很大挑战,下面介绍一种延时门时钟电路设计和系统布局设计。

如下图延时门时候电路是在调节读操作时的DQS(数据同步)信号,将

pad_gate_open_out与pad_gate_open_in在控制器外部相连形成ddr_gate_open_delayed信号,

将ddr_gate_open_delayed于ddr_close进行XOR产生resulting _gate。使控制器能更精确的

补获有效的数据

在布局时, 的供电管脚要靠近电源以减少Jitter; 2.尽量将PLL放在靠近DFI的位

置,并且

3.3控制器的其他组件

控制器其他组件,包括多通道的仲裁器、配置寄存器组以及部分DFT设计。

Databahn控制器IP

Databahn是denali公司推出的针对DDR存储控制的可定制的IP核。提供一整套的控制

器生成工具,PHY模型,完整的设计文档,验证工程以及使用综合和静态时序分析的脚本等。

1 FPGA实现

2 DDR2验证套件原理及使用

3国科大的整套工程

2024年8月29日发(作者:撒清舒)

个人笔记整理,可能存在错误,仅供参考

DDR2初识

1.1 基础

SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指

内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列

需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进

行数据读写。

DDR2第二代双倍数据率同步动态随机存取存储器(Double-Data-Rate Two Synchronous

Dynamic Random Access Memory),双倍速率主要体现在采用了在时钟的上升延和下降延同

时进行数据传输的基本方式。另外,DDR2内存核心在于其拥有两倍于标准DDR内存的4Bit

预读取能力,即一次将4Bit数据读入到IO缓存中,在需要时内存既可快速进入处理环节,

这样减少了数据查找、等待、排队的时间,提高效率。

DDR2规格 传输标准

DDR2 -400

DDR2 -533

DDR2 -667

DDR2 -800

核心频率 总线频率

200MHz

266MHz

333MHz

400MHz

等效传输频率

400MHz

533MHz

667MHz

800MHz

数据传输率

3200MB/S

4300MB/S

5300MB/S

6400MB/S

PC2 3200 100MHz

PC2 4300 133MHz

PC2 5300 166MHz

PC2 6400 200MHz

OCD(Off-Chip Driver):

片外驱动电阻调整技术。DDR2通过OCD可以提高信

号的完整性。通过调整上拉(pull-up)/下拉(pull-down)的电阻值使两者电压相等。使用OCD通

过减少DQ-DQS的倾斜来提高信号的完整性;通过控制电压来提高信号品质。不过,OCD技

术在普通的应用领域所发挥的作用并不明显,而在服务器上使用,它的功能才能被充分发挥

出来。

ODT(On Die Terminator):

即内建核心的终结电阻器。它的主要作用是

能够直接提升系统的稳定性。使用DDR SDRAM的主板上面为了防止数据线终端反射信号需

要大量的终结电阻。它大大增加了主板的制造成本。实际上,不同的内存模组对终结电路的

要求是不一样的,终结电阻的大小决定了数据线的信号比和反射率,终结电阻小则数据线信

号反射低但是信噪比也较低;终结电阻高,则数据线的信噪比高,但是信号反射也会增加。

因此主板上的终结电阻并不能非常好的匹配内存模组,还会在一定程度上影响信号品质。可

以根据自已的特点内建合适的终结电阻,这样可以保证最佳的信号波形。简单来说,ODT

可以和内存颗粒的“特性”相符,从而减少内存与主板的兼容问题的出现。

Posted CAS(RAS紧接着CAS):

它为了解决DDR内存中指令冲突问题,

提高DDR II内存的利用效率而设计的功能。在Post CAS操作中,CAS信号(读写/命令)能够被

插到RAS信号后面的一个时钟周期,CAS命令可以在附加延迟(Additive Latency)后面保持有

效。原来的tRCD(RAS到CAS和延迟)被AL(Additive Latency)所取代,AL可以在0,1,2,3,

4中进行设置。由于CAS信号放在了RAS信号后面一个时钟周期,因此ACT和CAS信号永

远也不会产生冲突。不过要注意的是,Posted CAS功能的优势只有在那些读写命令非常频繁

的运作环境下才能体现,对于一般的应用来说,开启Posted CAS功能反而会降低系统的整体

性能。

DDR2数据总线位宽X4/X8/X16:

区别在于DQS(数据同步)/RDQS(读

数据同步)/UDQS(高位数据同步15:0)/LDQS(地位数据同步7:0)这些数据同步信号,

1.2 接口

端口

CK,CK#

方向

input

功能

时钟信号,差分时钟,所有地址和控制信号都在CK的上升

沿和CK#的下降沿的交叉处被锁存;输出数据与CK和CK#

的交叉对其(双沿输出)。

时钟使能,为“高”时使能内部时钟信号,输入缓存。输

出驱动;为“低”时进入PRECHARGE、Power-Down、

SELF-Refresh等模式。

片选信号,低有效,为高时所有命令无效。

On Die Termination,使能内部终结电阻

行选通脉冲信号,列选通脉冲信号,写使能信号

数据屏蔽信号,在写操作过程中,当DM为高时,输入数

据将会被屏蔽;在读操作过程中DM可以为高、低或者悬

BANK地址选通信号,用于确定对哪一个BANK进行激活、

读写、预充电等操作

地址输入信号,为ACTIVE命令提供行地址;为读写命令、

AUTO PERCHARGE提供列地址;A10位只在precharge命令

是被采样,当A10为低时,对一个BANK进行precharge操

作;当A10为高时,对所有BANK进行precharge操作。

CKE input

CS#

ODT

input

input

RAS#,CAS#,WE# input

DM(UDM,LDM) input

BA0-BA2

A0-A15

input

input

DQ

DQS,DQS#

(UDQS,UDQS#)

(LDQS,LDQS#)

(RDQS,RDQS#)

NC

VDDQ

VSSQ

VDDL

VSSDL

VDD

VSS

VREF

input/output

数据总线

input/output

数据总线触发信号,读操作是DQS为输出,与数据边沿对

齐;写操作是DQS为输入,与数据中心对齐。

supply

supply

supply

supply

supply

supply

supply

不连接

DQ工作电压:1.8V+/-0.1V

DQ工作地

DLL工作电压:1.8V+/-0.1V

DLL工作地

芯片供电电压:1.8V+/-0.1V

芯片供电地

刷新参考电压

DDR2 SDRAM操作

2.1DD2协议

2.1.1简单状态及

2.1.2操作指令

2.1.3电气特性

2.2上电和初始化过程

2.2.1上电初始化过程

a)上电初始化必须满足:

a1)上电保持CKE低于0.2*VDDQ;ODT要处于低电平状态(其他的管脚可以没有定义);

电源上升沿不可以有任何翻转,且上升沿不能大于200ms,并且要求在电压上升沿过程

中满足VDD>VDDL>VDDQ且VDD-VDDQ<0.3V;

-VDD,VDDL和VDDQ必须由同一电源芯片供电;

-VTT最大只能到0.95V;

-VREF时刻等于VDDQ/2。

a2)

b)时钟信号要保持稳定;

c)在电源和时钟稳点之后至少要保持200us,然后执行NOP或Deselect取消选定命令&拉

高CKE;

d) 等待至少400ns然后执行预充电所有簇命令,期间执行NOP或Deselect(取消选定命令);

e)执行EMRS(2)命令,(EMRS(2)命令,需要将BA0、BA2拉低,BA1拉高);

f)执行EMRS(3)命令,(EMRS(2)命令,需要将BA2拉低,BA0、BA1拉高);

g)执行EMRS命令激活DLL,(需要将A0拉低,BA0拉高,BA1-2拉低,A13-15,A9-7拉低);

h)执行MRS命令实现DLL复位,(需要将A8拉高,BA0-2,A13-15拉低);

i)再次执行预充电所有簇命令;

j)执行至少两次自动刷新命令;

k)将A8拉低,执行MSR命令对芯片进行初始化操作(即不对DLL进行复位下的模式寄存

器设置命令);

l)从第h开始后至少200个时钟周期后执行OCD校准命令((Off Chip Driver impedance

adjustment);

m)可以开始执行DDR2 SDRAM的常规操作;

2.2.2模式寄存器和扩展模式寄存器设置

为了使用更加灵活,可以通过预先设置模式寄存器和扩展模式寄存器的方法,设置DDR2

SDRAM的突发长度、突发类型、CAS延时,DLL复位和禁止、写恢复时间长度、设置驱动电

阻,ODT,附加CAS延时、OCD(片外驱动电阻调节)等。

MRS和EMRS以及DLL这些命令不会影响存储器阵列的内容,所以上电后任意时间执行

初始化操作都可以。

2.2.2.1模式寄存器设定

模式寄存器中的数据控制DDR2 SDRAM的操作模式,默认值没有被定义,通过拉低CS、

RAS、CAS、WE和BA0-1计入模式寄存器设置模式(MRS)。在写模式寄存器之前必须对所

有簇进行预充电,并且命令保持的时间必须满足tMRD(查表大于等于2个时钟周期)。以

下是各参数具体设置的内容:

2.2.2.2扩展寄存器设定

EMRS(1)

扩展模式寄存器(1)设置激活或禁止DLL的控制信息,输出驱动强度,ODT(内部终

结电阻)值和附加延时等。扩展寄存器(1)的默认值也没有被定义,通过拉低CS、RAS、

CAS、WE、BA1和拉高BA0进入设置。

DLL(延迟锁相环)激活与禁止

优势在于可以做到很高精度,可以排除温度、电压变化带来的影响,使得skew 可以作

得很小,而且可以调整时钟占空比。对通常的操作,DLL必须被激活。在上电初始化过程中,

必须激活DLL,在开始正常操作时,要先关闭DLL。在进入自我刷新操作时,DLL会被自动禁

止,当结束自我刷新时,DLL会被自动激活。一旦DLL被激活(随之将复位),为了使外部

时钟和内部始终达到同步,在发布读命令之前必须至少要过200个时钟周期。没有等待同步

可能会导致tAC或tDQSCK参数错误

EMRS(2)

扩展模式寄存器(2)控制着刷新和相关的特性。扩展模式寄存器(2)的默认值没有被定义,

因此在上电后,必须按规定的时序对EMRS(2)进行设定。通过拉低CS,RAS,CAS,WE,置高BA1

拉低BA0来发布EMRS(2)的设定命令。

2.2.3片外驱动电阻(OCD)调整

DDR2 SDRAM支持驱动校准特性,调整的流程如下图所示。每执行一次校准命令,都要

在之后紧跟着“OCD校准模式结束”命令,之后才可以发布其它的命令。在进行OCD电阻调

整之前必须要设置MRS.并且根据系统的环境,要小心控制ODT (终结电阻)。

2.2.4片内终结电阻(ODT)的激活或禁止

终结电阻(ODT)是DDR2 SDRAM的一个特点,目的是为了提高存储通道信号完整性,

允许独立的打开或者关闭DQ、DQS、RDQS、DM等数据总线传输信号的片内终结电阻。ODT

管脚与EMR控制开关打开不同的组合产生相应的阻值。图中每个电阻300欧姆,标准要求

ODT电阻提供50/75/150欧姆的电阻。

2.3簇激活命令

在时钟上升沿时保持CAS#、WE#为高,CS#、RAS#为低即可发布簇激活命令,其中BA0

和BA1为要激活的簇地址,行地址A0-A13决定要激活该簇的那些行。BANK被激活后才能

正常的进行读写操作。

2.4读写操作

Bank激活后,读写周期就可以开始执行了。

突发读写

DDR2允许执行突发读写操作,突发长度有MRS寄存器的值决定。

读中断

DDR2允许突发长度为8的模式下的读操作被另一个读操作中断,其他任何命令不能中

断突发读操作。

写掩码操作

DQM就是掩码控制位,在sdram中每个DQM控制8bit Data。在读操作的时候没什么

大的影响,比如读32位的sdram module,但只要其中低8bit的数据,没有关系,只要读出

32bit数据,再在软件里将高24位bit和0“与”就可以了,有没有DQM关系不大。但在执行

写操作时。如果没有DQM就麻烦了,可能在软件上是写一个8bit数据,但实际上32根数

据线是物理上连接到SDRAM的,只要WR信号一出现,这32位就会写sdram中去,高24bit

数据就会被覆盖。通过使用DQM就可以将其对应的8bit屏蔽,不会因为写操作而覆盖数据

了。

2.5预充电操作

预充电命令用于对某一个BANK进行预充电,或者关闭某一个激活的BANK准备对另外

一个BANK进行读写操作。

2.6自动预充电

当对一个已经激活的BNAK的新的一行进行读写时,必须执行预充电或者自动预充电命

令,预充电和自动预充电的区别在于,发布读写命令的时候A10的状态,如果A10为低则

执行常用的读写操作,如果A10为高则执行带有自动预充电的读写操作

2.7自动刷新(Auto -rf)与自刷新(self-rf)命令

自动刷新就是每隔固定的时间对DDR2的进行一次刷新,周而复始的循环刷新。在执行

刷新前所有的BANK都要被预充电且至少保持tRP处于空闲。当开始执行刷新命令后,芯片

内部的地址计数器提供地址,不需要外部提供地址。

自刷新是当系统其他部分断电后,自刷新命令用来维持数据,在自刷新模式中,DDR2

无需外部时钟就可以维持数据

2.8下电

CKE为低时,DDR2进入下电模式。

当执行模式寄存器或者扩展模式寄存器,以及读写操作时CKE不能为低,其他操作,如

行激活、预充电、自动预充电、刷新时,CKE可以为低。

DDR2 控制器

3.1控制器原理概述

如下图,DDR2控制器与DDR-PHY使用同步时钟,其中同步时钟最好产生于PLL;DDR PHY

Interface (DFI)即DDR2内存与控制器的物理层接口;控制器设计包括图像左侧的用户接口以

及总线仲裁器,右侧为产生符合DDR2时序的core logic。

3.2系统同步

我们可以看到DDR2控制器与DDR2内存组成的系统是一个同步设计,综合时需要针对

CK,CKE与CMD信号、ADD信号、DATA信号进行同步约束;另外,在高速频率工作的情况下,

信号从控制器到达DDR2的延时可能需要一整个时钟周期或者更多。所以在控制器设计与系

统实现上面临也很大挑战,下面介绍一种延时门时钟电路设计和系统布局设计。

如下图延时门时候电路是在调节读操作时的DQS(数据同步)信号,将

pad_gate_open_out与pad_gate_open_in在控制器外部相连形成ddr_gate_open_delayed信号,

将ddr_gate_open_delayed于ddr_close进行XOR产生resulting _gate。使控制器能更精确的

补获有效的数据

在布局时, 的供电管脚要靠近电源以减少Jitter; 2.尽量将PLL放在靠近DFI的位

置,并且

3.3控制器的其他组件

控制器其他组件,包括多通道的仲裁器、配置寄存器组以及部分DFT设计。

Databahn控制器IP

Databahn是denali公司推出的针对DDR存储控制的可定制的IP核。提供一整套的控制

器生成工具,PHY模型,完整的设计文档,验证工程以及使用综合和静态时序分析的脚本等。

1 FPGA实现

2 DDR2验证套件原理及使用

3国科大的整套工程

发布评论

评论列表 (0)

  1. 暂无评论