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国科大的整套工程