您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页DDR总结

DDR总结

来源:宝玛科技网


1. DDR controller clock architecture

IDELAY Reference Clock

A 200 MHz IDELAY clock must be supplied to the IDELAYCTRL module. The IDELAYCTRL module continuously calibrates the IDELAY elements in the I/O region to account for varying environmental conditions. The IP core assumes an external clock signal is driving the IDELAYCTRL module. If a PLL clock drives the IDELAYCTRL input clock, the PLL lock signal needs to be incorporated in the rst_tmp_idelay signal inside the IODELAY_CTRL.v/vhd module. This ensures that the clock is stable before being used.

PHY_Clk: This is the PHY interface clock for the control word FIFO. PHY control word signals are

captured on the rising edge of this clock. 1/4 or 1/2 the frequency of the DDR2 or DDR3 SDRAM clock

frequency.

mem_refclk: This is the DDR2 or DDR3 frequency clock.

Sync_pulse: PLL output generated at 1/16 of mem_Refclk and is a synchronization signal sent to the PHY hard blocks that are used in a multi-bank implementation. 0.0625 x memory clock. This signal must have

a duty cycle of 1/16 or 6.25%.

Freq_refclk: This signal is the same frequency as mem_refclk between 400 MHz to 933 MHz, and 1/2 or 1/4 of mem_refclk for frequencies below 400 MHz. PLL output clock to provide the FREQREFCLK input to the Phaser.

2. DDR PHY interface

PHY Control Block

The calibration logic or the memory controller initiates a DDR2 or DDR3 SDRAM

command sequence by writing address, command, and data (for write commands) into the IN/OUT_FIFOs and simultaneously or subsequently writes the PHY control word to the PHY control block. The PHY control word defines a set of actions that the PHY control block does to initiate the execution of a DDR2 or DDR3 SDRAM command.

Control Offset: This field is used to control when the address and command IN/OUT_FIFOs are read and transferred to the IOIs. The control offset is in units of the DDR2 or DDR3 SDRAM clock cycle. Data Offset: This field is used to control when the data IN/OUT_FIFOs are read or written based on the PHY command. The data offset is in units of the DDR2 or DDR3 SDRAM clock cycle.

Each IN/OUT_FIFO has a storage array of memory elements arranged as 10 groups 8 bits wide and 8 entries deep. During a write, the OUT_FIFO receives 8 bits of data for each DQ bit from the calibration logic or memory controller and writes the data into the storage array in the PHY_Clk clock domain, which is 1/4 the frequency of the DDR2 or DDR3 SDRAM clock. The OUT_FIFO serializes from 8 bits to 4 bits and outputs the 4-bit data to the OSERDES in the OCLKDIV domain that is half the frequency of the DDR2 or DDR3 SDRAM clock. The OSERDES further serializes the 4-bit data to a serial DDR data stream in the OCLK domain. The PHASER_OUT clock output OCLK is used to clock DQ bits whereas the OCLK_DELAYED output is used to clock DQS to achieve the 90-degree phase offset between DQS and its associated DQ bits during writes. During write leveling, both OCLK and OCLK_DELAYED are shifted together to align DQS with CK at each DDR2 or DDR3 component.

The IN_FIFO shown in Figure 1-39 receives 4-bit data from each DQ bit ISERDES in a given byte group and writes them into the storage array. The IN_FIFO is used to further deserialize the data by writing two of the 4-bit datagrams into each 8-bit memory element. This 8-bit parallel data is output in the PHY_Clk clock domain which is 1/4 the frequency of the DDR2 or DDR3 SDRAM clock. Each read cycle from the IN_FIFO contains all the byte data read during a burst length 8 memory read transaction. The data bus width input to the dedicated PHY is 8X that of the DDR2 or DDR3 SDRAM when running the FPGA logic at 1/4 the frequency of the DDR2 or DDR3 SDRAM clock.

Write Leveling

为了更好地提高信号完整性,DDR3采用了fly-by的拓扑结构。地址线、控制线、时钟线均采用此种方式进行布线。Fly-by拓扑结构本身特性减小了走线的stub和长度,但是它同时也带来了CK-CK#和DQS-DQS#之间的走线延迟(DQS为点到点的信号)。为了消除走线延时带来的误差,DDR3引入了write leveling这一特性

基本功能

读写时,选定一个起始地址,并按照事先编程设定的突发长度(4或8)和突发顺序来依次读写。访问操作开始一个激活命令, 后面紧跟的就是读或者写命令。

和激活命令同步送达的地址位包含了所要存取的簇和行(BA0, BA1 选定簇; A0-A13 选定行). 和读或写命令同步送达的地址位包含了突发存取的起始列地址,并决定是否发布自动预充电命令。

上电和初始化

DDR2 SDRAM必须以预定义的时序进行上电和初始化. 不按规定的操作将导致不可预期的情况出现。.

上电和初始化时序

1. 对于上电和初始化来说,下列时序是必须的。

供电且保持CKE 低于0.2*VDDQ , ODT*1 要处于低电平状态(所有的其余脚可以都没有定义.) 电源上升沿不可以有任何翻转,上升沿时间不能大于200mS;

并且要求在电压上升沿过程中满足, VDD>VDDL>VDDQ且VDD-VDDQ<0.3 volts. - VDD*2, VDDL*2 和VDDQ必须由同一个电源芯片供电, 并且 - VTT 最大只能到0.95 V, 并且

- Vref 要时刻等于VDDQ/2.,紧跟VDDQ变化。 或者

-在给VDDL上电的同时或之前就给VDD*2.上电 -在给 VDDQ上电的同时或之前就给VDDL*2上电 -在给VTT & VREF上电的同时或之前就给VDDQ上电. 上面的两个条件至少要满足一个。 2. 开始时钟信号并保持信号稳定.

3.在稳定电源和时钟(CK, /CK)之后至少200s, 然后发布NOP 或者取消选定命令 &拉高CKE. 4. 等待至少400ns然后发布预充电所有簇命令.在等待的400ns过程中要发布NOP或者取消选定命令. 5. 发布EMRS(2)命令. (EMRS(2) 命令, 需要将BA0拉低, 将BA1拉高.) 6. 发布EMRS(3) 命令. (为了发布EMRS(3)命令,将BA0和BA1拉高.)

7.发布EMRS命令以激活DLL. (为了发布\"DLL激活\" 命令,将A0拉低, BA0拉高并且将BA1-2和A13-A15置低.) 8. 发布MRS命令实现 “DLL复位”*2.

(为了发布DLL 复位命令, 需要将A8拉高并使BA0-1为低) 9. 发布预充电所有簇命令。 10. 至少发布两次自动刷新命令.

11. 将A8拉低,发布模式寄存器设定命令(MRS)对芯片进行初始化操作. (也就是不对DLL复位,编程芯片的操作参数) 12.在第8步之后至少过200个时钟周期,执行OCD 校准( 片外驱动电阻调校).

如果不使用OCD校准, EMRS OCD 校准模式结束命令(A9=A8=A7=0) 必须在EMRS OCD默认命令(A9=A8= A7=1)之后发布,用来设定EMRS的其它操作参数。

13. 现在, DDR2 SDRAM 就准备好可以进行普通的操作了。. *1) 为了保证ODT关闭, VREF必须有效并且ODT脚必须拉低.

*2) 如果VDDL或VDD 的电平值在正常操作过程中人为改变, (例如e, 为了VDD 相交测试, 或者节省功率) 则必须执行“DLL 复位”.

编程(扩展)模式寄存器

为了增强使用灵活性, 突发长度, 突发类型, /CAS延迟, DLL 复位功能, 写恢复时间(WR) 都是可以定义的变量。通过预先编程模式寄存器就可以设定它们. 除此之外, DLL 禁止功能, 驱动电阻, 附加CAS 延迟, ODT(终结电阻), 单线选通, 和OCD(片外驱动电阻调整) 同样也是可以定义的变量,通过预先编程扩展模式寄存器就可以设定它们. 模式寄存器或者扩展模式寄存器的内容可以通过对他们进行重新设

定来改变它们. 如果用户只是想改变寄存器中某些特定的位,也必须通过MRS或EMRS命令对全部寄存器位进行重新设定。MRS, EMRS和t DLL 复位这些命令并不会影响存储阵列的内容,这意味着上电后的任意时间执行初始化操作不会改变存储的内容。

DDR2 SDRAM 模式寄存器设定(MRS)

模式寄存器中的数据控制着DDR2 SDRAM的操作模式.它控制着CAS 延迟, 突发长度, 突发顺序, 测试模式, DLL复位, WR等各种选项,支持着DDR2 SDRAM 的各种应用. 模式寄存器的默认值没有被定义, 所以上电之后必须按规定的时序规范来设定模式寄存器的值. 通过将 CS, RAS, CAS, WE, BA0 ,BA1置低来发布模式寄存器设定命令, 操作数通过地址脚A0 ~ A15同步送出. DDR2 SDRAM 在写模式寄存器之前,应该通过拉高CKE而完成了所有簇的预充电。模式寄存器设定命令的命令周期 (tMRD)必须满足完成对模式寄存器的写操作。在进行正常操作时,只要所有的簇都已经处于预充电完成状态,模式寄存器都可以使用同一命令重新设定. 模式寄存器不同的位表示不同的功能. A0 ~ A2 设定突发长度是4还是8。突发长度的译码规则与DDR SDRAM相同. A3定义了突发地址顺序。A4 ~ A6定义了CAS延迟。. DDR2不支持半时钟延迟。A7 设定测试模式. A8设定DLL 复位。对通常的MRS操作,A7必须设定为低。 A9 ~ A11定义了写恢复时间WR. 详细情况见下面的示意图:

*1 : A13现在保留,以后备用,设置模式寄存器时要设为0。BA2 和A14 对于512Mb DDR2不使用,但对于1Gb 和2Gb DDR2 SDRAMs使用. A15 保留,以被后用

*2 : WR(自动预充电的写恢复时间)的最小值由 tCK的最大值决定,而WR最大值由tCK 最小值决定. WR 的计算方法是看tWR 有几个时钟周期,如果是小数,则进位为大一的整数(WR[cycles] = tWR(ns)/tCK(ns)). 模式寄存器必须编程为这个值. 同样的方法用tRP决定tDAL.

DDR2 SDRAM 扩展模式寄存器设定

EMRS(1)

扩展模式寄存器(1) 存储着激活或禁止DLL的控制信息, 输出驱动强度, ODT 值的选择和附加延迟等信息. 扩展寄存器(1)的默认值没有被定义, 因此,上电之后,扩展模式寄存器(1)的值必须按正确的步骤来设定。写扩展模式寄存器(1)是通过拉低CS, RAS, CAS, WE ,置袄BA0, 同时控制地址线A0 ~ A13的状态。在写扩展模式寄存器(1)之前,DDR2 SDRAM 应该通过将CKE拉高完成所有簇的预充电。扩展模式寄存器(1)设定命令的命令周期 (tMRD)必须满足完成对扩展模式寄存器(1)的写操作。在进行正常操作时,只要所有的簇都已经处于预充电完成状态,扩展模式寄存器(1)都可以使用同一命令重新设定.. A0控制着DLL 激活或禁止。A1被用于激活数据输出驱动能力为一半。A3~A5 决定着附加延迟, A2和A6 用语ODT 值的选定,A7~A9 用于控制OCD, A10 被用于禁止 DQS#, A11 被用于RDQS 的激活。

DLL 激活/禁止

对通常的操作, DLL必须被激活。在上电初始化过程中,必须激活 DLL, 在开始正常操作时,要先关闭DLL。在进入自我刷新操作时,DLL会被自动禁止,当结束自我刷新时,DLL会被自动激活。一旦DLL被激活(随之将复位),为了使外部时钟和内部始终达到同步,在

发布读命令之前必须至少要过200个时钟周期。没有等待同步可能会导致tAC 或tDQSCK参数错误

EMRS(2)

扩展模式寄存器r(2)控制着刷新和相关的特性。扩展模式寄存器(2)的默认值没有被定义, 因此在上电后,必须按规定的时序对扩展模式寄存器(2) 进行设定。通过拉低S, RAS, CAS, WE,置高BA1 拉低BA0来发布扩展模式寄存器(2)的设定命令。同时控制地址线A0 ~ A15的状态. 在写扩展模式寄存器(2)之前,DDR2 SDRAM 应该通过将CKE拉高完成所有簇的预充电。扩展模式寄存器(2)设定命令的命令周期 (tMRD)必须满足完成对扩展模式寄存器(2)的写操作。在进行正常操作时,只要所有的簇都已经处于预充电完成状态,扩展模式寄存器(2)都可以使用同一命令重新设定.

*1 : EMRS(2) 的其余位保留作为以后扩展用,并且初始化时,EMRS(2)的所有位除了A0-A2, A7, BA0 和BA1在设定扩展寄存器(2)时都要设为0。

*2 : 由于电子的迁移特性,用户需要确保DRAM在进入自我刷新命令时,即使温度高达85度也可工作. JEDEC 标准规定 DDR2 SDRAM 模块拥护可以查看DDR2 SDRAM模块的SPD 字段的第49字节的0位。.如果支持高温自我刷新模式,那么万一在自我刷新时温度高于85度,控制器可以设定EMRS2[A7]位以激活自我刷新率。对于要求比较宽松的用户,可以查阅DRAM制造商的手册来检查高温自我刷新率。 *3 : DDR2 SDRAM的可选项。如果PASR(部分阵列自我刷新)被激活, 未指明地址的存储空间中的内容将丢失。如果满足tREF 的条件,数据的完整性将得到保证,且不会发布自我刷新命令。

片外驱动(OCD) 电阻调整

DDR2 SDRAM 支持驱动校准特性, 调整的流程如下图所示。每执行一次校准命令,都要在之后紧跟着“OCD 校准模式结束” 命令,之后才可以发布其它的命令。在进行OCD 电阻调整之前必须要设置MRS.并且根据系统的环境,要小心控制ODT (终结电阻) 。

针对OCD电阻调整的扩展模式寄存器设定

可以使用下面的 EMRS 模式完成OCD电阻调整。在驱动模式(drive)下,所有的输出都由DDR2 SDRAM驱动,且RDQS的驱动依赖于EMRS寄存器的RDQS激活位。在驱动(1) 模式下, 所有的DQ, DQS (和RDQS) 信号都被拉高,并且所有的/DQS都被置低电平。在驱动(0)模式下, 所有的DQ, DQS(和RDQS) 信号都被清0并且所有的/DQS都被拉高。在调整(adjust)模式下, BL = 4 的操作码必须被使用。如果OCD 校准失败, 那么在标准温度和电压情况下,输出驱动有一个18欧姆的标准电阻。OCD 校准失败情况下的输出驱动标准在表格中有详细说明。OCD 应用只是针对由EMRS(1)定义的最大驱动力的情况。如果定义为半驱动力,那么OCD默认的输出启动特性将无效。当OCD 校准调试模式使用之后,OCD默认的输出驱动特性将无效。当OCD校准完成或者驱动力被设置成为默认的情况,随之而来的EMRS命令不可以再调整OCD.所以A9-A7必须设置为000。这样就可以保持默认的值或者之前调整好的值。 片外驱动编程

为了调整输出驱动电阻,控制器必须同EMRS调整命令同步发送4位的突发码到DDR2 SDRAM,如下表。为进行此步操作,必须在激活OCD之前通过设定MRS命令将突发长度必须设定为 BL = 4 ,并且控制器必须同时驱动突发码到所有的DQs 。下表中的DT0 意思是所有DQ在位时间0的时刻,DT1在时间1,依次类推。在OCD之后或同时,DDR2 SDRAM所有的DQs的驱动输出电阻的值被调整好。

这样,所有的DDR2 SDRAM 的DQs的驱动能力被调整为一致。.每一步最大可调整16,如果达到了这个,则要求更快的增大或减小则是无效的。默认的设置可以是16以内的任何值. 当校准命令发布以后, 以前设定的AL值必须被应用起来。

为了正确的操作调整模式, WL = RL - 1 = AL + CL – 1个时钟和tDS/tDH 要满足下面的时序图.对于调整模式的输入数据来说, DT0 - DT3是固定顺序的,并且不会被MRS的地址模式所影响。(ie.连续情况或间隔情况).

驱动模式

驱动模式, 包括Drive(1) 和Drive(0), 被控制器用来测量DDR2 SDRAM 驱动电阻。在这种模式下,执行完“进入驱动模式”命令之后,所有的输出都被逐出tOIT 。并且在“OCD校准模式结束”命令之后,所有的输出驱动都被关闭tOIT.具体详情见下图

ODT (终结电阻)

终结电阻(ODT) 是DRAM的一个特点,它允许通过ODT控制脚对每一个或每一对DQ, DQS/DQS, RDQS/RDQS, 和x4/x8的DM打开和关闭电阻,对于x16 ,它允许通过ODT控制脚对每一个或每一对DQ, UDQS/UDQS, LDQS/LDQS,LDM和UDM信号。ODT特性用来提升存储通道的信号完整性,因为它可以允许DRAM控制器的打开或关闭所有DRAM芯片的终结电阻。 ODT功能指出 ACTIVE 和STANDBY两种模式, 在SELF REFRESH 模式下不支持关闭功能。

注意1 : Rtt 测量的测试条件

Rtt(eff) 的测试定义: 在测试脚分别测试VIH (AC)和VIL (AC),然后分别测量电流I(VIH (AC)) and I( VIL (AC)). VIH (AC), VIL (AC), 和VDDQ的值在SSTL_18中定义

VM 的测试定义: 测试脚空负载是测量其电压(VM)。.

簇激活命令

通过在时钟上升沿时保证/CAS和/WE为高,/CS和/RAS为低即可发布簇激活命令。簇地址BA0和BA选定希望激活哪一簇。行地址A0 到A13 决定要激活该簇的哪些行,在执行读写命令之前,必须先执行簇激活命令。在簇激活命令发布之后, DDR2 SDRAM在下一个时钟周期就可以接受读或者写命令。如果 R/W命令不能满足tRCD最小值的规格,那么,在编程时,一定要在R/W命令后加上附加延迟。附加延迟的值必须满足tRCD最小值的要求。附加延迟的值可以是0, 1, 2, 3, 4。一旦某一个簇被激活了,那么在下一个簇激活命令应用到这一个簇之前,要先对其预充电。簇激活和预充电时间被分别定义为tRAS 和tRP。

对同一个簇的两个成功的簇激活命令的时间间隔由芯片的RAS周期时间来决定(tRC)。 T簇激活命令之间的最小时间间隔是tRRD. 为了保证8簇的芯片的瞬时电流不会超过4簇芯片的电流供应能力, 针对8簇的芯片在操作上有一定的。有两条规则,第一条是连续可以发布激活命令条数的显示,另一个是对于预充电所有簇命令允许更多的RAS裕充电时间。详细的描述如下:

• 8 簇芯片的连续的簇激活命令的约束: 在一个滚动的tFAW 窗内,最多可以激活4个簇。转化为时钟个数就是将tFAW除以tCK,得到的数取相邻的大的整数。举一个滚动窗的实例,如果(tFAW/tCK)达到10,并且一个簇激活命令在第N个时钟发布,那么,在N到N+9个时钟内,最多只能发布3个簇激活命令。

• 8簇芯片最大能力预充电:tRP for a Precharge All command for an 8 Bank device will equal to tRP + 1 * tCK, where tRP is the value for a single bank precharge.

读写访问模式

簇激活命令之后,就可以执行读或者写周期了。通过在时钟上升沿设置/RAS为高, /CS 和/CAS为低,. 同时还必须定义/WE的值以决定访问动作是读还是写(/WE为高表示读操作,/WE为低表示写操作。)

DDR2 SDRAM提供了一种快速的列访问操作。单个的读或者写命令会导致在接下来的时钟周期中进行一系列的读或者写操作。突发周期的边界被严格到指定页的详细位置。.例如, 32Mbit x 4 I/O x 4 Bank的芯片一页的大小是2048位(由CA0-CA9, CA11所定义). 每一页的2048 位依据突发长度被分成512或256 个可寻址的片段, 突发长度为4位时是512个,突发长度是8位是256个。一个4位或8位的突发访问将对一页的512或256分之一,进行完全的访问,访问的开始地址就是在读或者写命令中的CA0-CA9, CA11,随后的此片段的第二个,第三个和第四个地址也被被访问。突发的顺序由之前的寄存器来定义。

新的突发访问操作不可以中断正在进行的突发长度为4的存取操作。然而,如果正在进行的是突发长度为8的操作,那么在两种情况下,可以对其中断。第一种情况是,正在进行的是读操作,而中断它的也是读操作。第二种情况是,正在进行的是写操作,而中断它的是突发长度为4的写操作。最小的CAS 到CAS 的延迟被定义做tCCD, 对于读或者写命令来说至少要2个时钟。任何的系统或者应用都必须设计为能够随机的对内存芯片进行操作或测试,如果过多的对某些特定的地址进行读或者写可能会导致缩短产品的使用寿命

登记CAS

登记CAS 操作命令可以使DDR2 SDRAM的数据线有效的保持足够的带宽。在此操作中, DDR2 SDRAM 允许在/RAS簇激活命令之后立即发布一个CAS读或者写命令(或者是在RAS-CAS 延迟时间tRCD周期内的任意时间)。在真正在芯片内部发布之前,命令要被锁定一个附加延迟时间(AL)。读延迟(RL)等于AL和CAS 延迟(CL)的和。因此如果用户选择在tRCD最小值之前发布读或者写命令的话,AL(大于0)一定要先写进EMR(1)。写延迟(WL) 始终都被定义成RL - 1(读延迟-1),这里读延迟被定义为附加延迟和CAS延迟的和(RL=AL+CL)。使用AL 的读或者写操作允许无缝的突发(参考在读突发和写突发的章节的无缝操作时序图的示例)

突发模式操作

突发操作可以向存储器的地址中提供一种恒定的数据流(写周期), 或者从存储区中得到一种恒定的数据流(读周期). 寄存器的参数定义了突发模式包括突发长度和突发顺序。DDR2 SDRAM 支持 4位突发和 8位突发模式。对于8位突发模式,支持全间隔地址顺序, 然而,基于执行的方便,通常使用连续的地址顺序。突发类型,或者是间隔的或者是连续的, 由MRS寄存器的第3位的值决定,这一点同DDR SDRAM 的操作相似。同样也支持无缝的突发读或者写操作。同DDR器件不同,在BL=4时,中断操作是被禁止的。然而当BL = 8 时,在两种情况下读命令可以中断读操作,写命令可以中断写操作。因此,DDR2SDRAM并不支持突发中断命令。 突发长度和顺序:

突发读命令

在系统时钟的上升沿,保持 /CS 和/ CAS 低电平和/RAS和/ WE 高电平既发布了突发读命令. 同时的地址输入决定了突发操作开始的列地址。从命令开始到第一个数据出现在输出端的延迟时间叫做读延迟(RL)。在数据脚DQ给出有效数据前一个时钟周期DQS脚被拉低。第一位有效数据将同DQS信号的上升沿同步。以后依次出现的有效数据输出都同DQS脚保持源同步模式。RL等于附加延迟(AL)和CAS 延迟 (CL)的和。 CL的值由模式寄存器设定(MRS), 同SDR 和DDR SDRAMs 相似。AL的值有扩展模式寄存器1设定(1)(EMRS(1))。 DDR2 SDRAM 管脚时序或者是单端的或者是差分的,这一点由扩展模式寄存器的EMRS的 “激活DQS” 模式位来决定。

在系统设计时,差分模式有它的优点。测量DDR2 SDRAM管脚时序的方法根据是单端的还是差分的而不同。在单端模式下,时序关系在DQS下降或上升到VREF的时候测量。在差分模式下,时序关系在DQS和/DQS相交的时候测量。这种时序上的差别在设计和描述的时候都要考虑到。注意当差分数据选通模式被EMRS禁止的时候,/DQS脚必须连一个20-10K欧姆大小的电阻,并接地以确保DDR2的正确工作。

无缝的突发读操作可以通过在每隔一个时钟(BL=4)或两个时钟(BL=8)发布一个读命令来实现。只要簇被 激活,这种操作允许在同一簇内或不同的簇之间动作

读命令中断读操作

突发的读操作只可以被另一个突发长度为4位的突发读命令中断。任何其它的情况都不可以被中断。

注意:

1. 读突发中断只是在突发长度为8时允许,突发长度为4时是禁止的。

2. 长度为8个读突发操作只可以被另一个读命令所中断。读突发是不可以被写命令或者预充电命令所中断的。 3. 读突发中断只可以发生在从前的读命令发布了2个时钟周期之后。任何其它的时序都是错误的。 4.读突发中断可以发生在DRAM内的任何簇内。 5. 带自动预充电的读突发操作是不可以被中断的。

6. 读突发操作可以被另一个在自动预充电的读突发操作所中断。

7. 突发长度由模式寄存器来设定. 他们不一定就是实际的情况。例如, 最小的读到预充电的时间是AL + BL/2,这里BL是在模式寄存器中设定的突发长度

而不是实际的突发长度(实际的短,因为被中断了)。

写数据隐藏

在DDR2 SDRAM中,每8个DQ都有一个写数据隐藏脚(DM),同DDR SDRAM 的情况一致。他同数据位有同一的操作时序。虽然是在双向行为中使用, 它内部下载数据确保系统时序。在读周期时,x4 和x16 位组织时,并不使用DM功能。因此, x8 的DM 位组织可以通过EMRS(1)设定在读周期时使用RDQS。

预充电操作

可以通过激活预充电命令对某一簇进行预充电或者关闭某一簇。在时钟上升沿时保持/CS,/RAS,和/WE为低并且/WE为高就可以发布预充电充电命令。预充电命令可以对某一个簇操作,也可以对所有簇同时操作。在发布预充电命令时,256Mb和512Mb的3个地址位A10, BA0 和BA1 或者1G Mb大小以上的器件的的地址位A10, BA0 ~ BA2 被用于定义对哪一个簇预充电。对于 8 簇器件, 参考簇激活的章节

突发读操作后跟预充电命令

针对同一个簇从读命令到预充电命令的最小时间是= AL + BL/2 + max(RTP, 2) – 2个时钟.

为了尽快的预充电, 预充电命令在读命令发布之后的“附加延迟(AL) + BL/2 个时钟” 的上升沿发布。针对同一簇的簇激活命令可以在预充电之后(tRP)长时间发布。直到tRAS条件满足才可以发布预充电命令。

最小的读到预充电必须满足一个从开始最新的4位读命令的预取到下一次预充电的最小的模拟时间,对于BL = 4 这就是实际读(读命令之后的AL)到预充电命令的时间。对于BL = 8 来说,这就是读命令之后的AL + 2 个时钟到预充电命令。

突发写后面紧跟预充电

从写命令到对同一簇的预充电命令最小的时间= WL + BL/2 clks + WR ,对于写周期来说, 必须满足从上一个写命令到能够发布预充电命令的延迟。这个延迟被称做写恢复时间(WR),是从上一个写命令到能够发布预充电命令的延迟。在WR 延迟之前不可以发布预充电命令

自动预充电操作

在对一个处于激活状态的簇的新的行打开之前,这个处于激活状态的簇必须被预充电,可以用预充电命令或自动预充电命令。当对 DDR2 SDRAM进行读或者写操作之前, CAS 时序接受附加的列地址A10, 以允许在突发读或者写周期时,被激活的簇可以自动的尽快进行预充电。如果在读写命令发布的时候,A10是低,执行通常的读写操作,并且在完成突发操作后,那一簇依然保持激活状态。如果在读写命令发布的时候,A10是高,那么自动预充电功能就被激活了。在自动预充电过程中,读命令被照常执行,只是处于激活状态的行在突发读结束之前的CL个时钟的上升沿就开始预充电。

在写命令时同样可以执行自动预充电操作。在突发写操作的最后一个数据正确的存入存储器之前,不会执行自动预充电命令的充电操作。 这种特点允许在突发读操作时部分的或者全部的隐藏预充电操作(依赖于CAS 延迟)。这样,提升了随机数据访问时的系统性能。RAS 保持电路了内部的延迟直到阵列恢复操作完成(tRAS 得到满足) ,因此自动预充电操作可以同任何的读或者写命令一起发布

带自动预充电的突发读命令

如果在发布读命令时,A10是高电平,那么一个带自动预充电功能的读命令就开始了。如果tRAS和tRTP满足条件,那么DDR2 SDRAM将在带自动预充电功能的读命令之后的Al+BL/2个周期的上升沿开始自动预充电操作。

如果 tRAS(min)在时钟边沿不满足, 那么自动预充电命令将延后直到t tRAS(min) 条件得到满足时开始。 如果 tRTP(min)在时钟边沿不满足, 那么自动预充电命令将延后直到tRTP(min) 条件得到满足时开始。

尽管内部预充电由tRTP 所, tRP 开始于内部预充电发生的时候(并不是那一时候时候的下一个时钟上升沿). 因此对于BL = 4 从自动预充电的读到下一个激活命令的最少时间是AL + (tRTP + tRP)* (参见例2),对于BL = 8 从自动预充电的读到下一个激活命令的最少时间是AL + 2 + (tRTP + tRP)*, 这里 “*” 的意思是: “比自己大的邻近的整数”。在任何情况下,内部预充电操作不会早于最新的4位数据预存取之前的两个周期。

如果下面两个条件同时满足,那么针对同一个簇的簇即或命令就可以发布了。(1)在自动预充电开始的时候, RAS 预充电时间 (tRP)被满足。(2) 从之前的簇激活的RAS 周期时间 (tRC) 条件得到满足

带自动预充电的突发写

当发布写命令时,如果A10是高电平,那么就是执行了带自动预充电的突发写操作。DDR2 SDRAM 在突发写操作完成之后的写恢复时间满足之后就开始自动预充电操作。如果下面两个条件满足,那么在写周期完成之后进行自动预充电操作。 (1) 数据输入到簇的激活延迟时间(WR + tRP) 满足条件。 (2) 之前簇的激活的/RAS 周期时间(tRC)条件被满足

刷新命令

当在时钟上升沿时保持/ CS,/ RAS 和/CAS 为低并且/WE 为高,那么芯片就进入了刷新模式(REF).在执行刷新模式前所有的簇都要被预充电并且至少要保持(tRP) 的空闲状态。芯片内部的地址计数器在刷新周期中提供簇地址。一旦命令周期开始,则不需要任何的外部地址线。

当刷新周期结束以后, DDR2 SDRAM 的所有簇都处于空闲状态。一个刷新命令到下一个激活命令或刷新命令的延迟必须大于或者等于刷新周期时间(tRFC).为了提升在时序安排和多任务切换是的效率,在完全刷新的间隔提供了一些灵活的选择。对于任何给定的DDR2 SDRAM,最多可以连续发布8次刷新命令,也就是一说,任何的刷新命令和接下来的刷新命令的最大时间间隔是9 * tREFI。

自我刷新操作

当系统其余部分断电时,自刷新指令是用来维持数据的。处于自刷新模式,DDR2无需外部时钟就可维持数据。DDR2使用内建计数器进行自刷新超作。在CS,RAS,CAS与CKE为0,WE为高时,自刷新指令在时钟上沿写入。在自刷新指令执行前ODT要关闭,将ODT脚拉低或使用EMRS指令。一旦指令进入寄存器,CKE要拉低以使器件保持在自刷新模式。进入自刷新模式后DLL自动禁用,推出后自动打开。DDR2进入自刷新模式后所有的外部信号(除了CKE)都被忽略。所有电源脚(VDD, VDDQ, VDDL and Vref) 必须供电以保证自刷新超作正确进行。进入自刷新模式后,DRAM在TCKE时期内会激活几条内部刷新指令。为了省电,时钟也会被禁止。DDR2维持自刷新的最小时间是TCKE.自刷新入口被存入寄存器,用户可以改变外部时钟频率或停止一个外部时钟周期。但在退出自刷新模式前必须恢复时钟。 退出自刷新模式需要一系列指令。首先,在CKE为高前时钟必须稳定。一旦自刷新出口进入被寄存,在有效指令允许器件内部刷新以前,至少要满足tXSNR的延时.在整个自刷新出口期间TXSRD,CKE必须为高,除非重新进入自刷新。一旦退出自刷新,在等待至少TXSNR后,并写入一条刷新指令(TRFC刷新时间)后,DDR2才能再次进入自刷新。在自刷新出口期间TXSNR,NOP或去选择指令必须在上沿写入。在自刷新期ODT因该关闭。出了自刷新后,想要再次进入,DDR2需要至少需要一条的自刷新指令。

下电

CKE为低时(随NOP或DESELET指令),同时进入下电模式。当执行模式寄存器或扩展寄存器指令,或读写操作时,CKE不能为低。其他超作时,如行激活,预充电,自充或者自刷新,CKE可以为低;但是直到这些操作结束后,才能施加下电IDD spec。详细情况在时序图中显示。

进入下电模式后,DLL应处于锁定状态。否则在退出下电模式时DLL应该被重启。只要DRAM控制器与DRAM规范兼容,DRAM设计保证所有AC,DC时序和电压要求以及正确的DLL操作伴随CKE精确操作。下图显示两个CKE应用

当所有的块空闲时,如果进入下电,这时是指预充下电;如果是某一行被选中时,这是指选中(active)下电.下电模式禁用输入输出缓冲,

但CK,-CK,ODT,CKE除外。一旦进入预冲下电或慢退出选中下电模式时DLL被禁用。但是在快速退出选中下电模式时,DLL是开启状态。下点模式时,CKE为低,时钟必须维持稳定,ODT有效,但所有的输入信号是“无关”,CKE须为低直到TCKE满足要求。下电时期必须在9×TREFI内。CKE为高时(伴随NOP,DESELET指令),退出下电状态,CKE须为高直到TCKE满足要求。CKE为高后,就可以参考下电退出时序(TXP,TXARD,TXARDS), 施加有效的指令。下电退出时序参考AC特性表

异步CKE低电平事件

数据表显示DRAM要求CKE始终保持高电平,以维持所有的有效操作。如果在任何有效操作过程中,CKE异步地变为低电平,则DRAM

将无法保证所保存的数据内容有效。如果这样的事件发生了,则存储控制器必须在关掉时钟信号之前满足DRAM的定时规范。CKE再次升为高电平之前,在进行DRAM输入时,必须保证稳定时钟信号存在。正如初始化程序中描述,DRAM必须完全重新初始化(步骤4到13)。初始化程序后,DRAM可供正常运行。见AC定时参数表中的tDelay规范

在预充电下电时改变输入时钟频率

根据以下条件,可以改变DDR2 SDRAM输入时钟频率:

DDR2 SDRAM是在预掉电模式下。必须关闭ODT,并且CKE必须为逻辑低电平。CKE变为低电平后必须等待至少两个时钟,时钟频率才能发生改变。只有当最小和最大频率为特定的速度等级时,SDRAM输入时钟频率才允许改变。输入频率改变时,ODT和CKE必须保持稳定的低电平。一旦输入频率改变,在退出预掉电之前,必须提供给DRAM新的稳定时钟,并且在退出预掉电之后,通过EMRS将DLL重新复位。依靠新的时钟频率,一个额外的MRS指令用以设置适合的WR,CL等。DLL重新锁定时期,ODT必须关闭。DLL锁定时间后,DRAM在新的时钟频率下提供正常运行。

空操作指令

空操作指令主要应用于当DDR2SDRAM处于空闲或等待的状态时。空操作指令的目的是为了防止DDR2 SDRAM在运行期间执行任何不需要的指令。必须在CS,RAS,CAS,且时钟处于上升沿时,才能执行无操作指令。一个空操作指令将不会终止之前的exe文件切割操作,如一个读写周期。

取消指令

取消指令与空操作指令具有相同的功能。取消指令发生于当时钟处于上升沿时,CS为高电平。此时,RAS, CAS, 和WE等都处于无效状态。

注意事项:

1 DDR2 SDRAM的所有指令都由时钟处于上升沿时, /CS,/RAS,/CAS,/WE和CK的状态来决定。 2.簇地址BA0, BA1, BA2 (BA) 确定哪一个簇进行操作。(E)MRS BA 用于选择一个模式寄存器。 3.突发读写在BL=4 时,不能够被终止或中断。

4.在掉电模式下,不进行任何刷新操作。刷新要求叙述对掉电的持续时间有所。 5. ODT的状态对该表所描述的状态无任何影响。自刷新中,ODT的功能不起作用。 6. “X” 意思为“高电平or低电平 (必须是一个确定的电平)”. 7. 自刷新输出是异步的。

8. 自刷新操作时必须提供参考电压

注意事项:

1. CKE (N) 是第N个时钟沿的CKE的逻辑状态; CKE (N–1)是先前时钟沿得CKE的状态。 2.当前状态是先于第N个时钟沿时DDR SDRAM的状态。

3. COMMAND (N) 是在第N个时钟沿积存的指令,ACTION (N)是COMMAND (N)的结果。 4.如果在这个文件中没有明确的描述,所有的状态或序列都属于非法的。

5. 在Txsnr、时期,每一个时钟沿都必须执行自刷新结束中的中止或空指令。tXSRD(200个时钟)后,执行读取指令。 6. 所有簇处于空闲状态时,才能进入自刷新模式。 7. 在指令真值表中所定义的必须是一个合法指令。 8. 掉电启动和结束的有效指令只有空和中止。 9. 自刷新结束的有效指令只有空和中止。

10. 当正在运行读取或写入操作时,掉电和自刷新操作不能执行。

11.三个时钟的tCKEmin表示CKE必须存储于三个连续的正时钟边沿。整个时钟期间,CKE必须保持有效输入。因此,在tIS+ 2*tCK + tIH 时期,任何CKE过渡后,CKE不必过渡有效输入。

12.该表所描述的状态均不受ODT的状态影响。自刷新中,ODT的功能不起作用。 13. 在掉电模式下,不进行任何刷新操作。刷新要求叙述对掉电的持续时间有所。 14. SDRAM在OCD模式下时,CKE必须保持高电平。

15. “X”表示在自刷新和掉电中不起作用。然而,如果ODT实现功能,则ODT必须在掉电中以高电平或低电平启动。 16. 自刷新操作时必须提供参考电压

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务