什么是计数过程中出现的瞬态模糊状态?它是怎样出现的?如何避免或如何纠正?

《DDR简介及设计基础指南8》由会员分享,可在线阅读,更多相关《DDR简介及设计基础指南8(67页珍藏版)》请在人人文库网上搜索。

1、 DDR简介及设计基础指南 版本:V1.3版本编号变更内容变更人变更日期V1.0初始发布V1.1Update 文档架构V1.2增加寄存器设置,layout分析、增加电源完整性PI部分。V1.3增加DDR4部分 目录第1章 前言3第2章内存简介32.1 基本存储原理32.2 内存的频率42.3

前言近年来CPU的发展速度之快让人目不暇接,新产品的运算能力成倍提升,而内存在发展的过程中随着CPU的飞速发展,其运行速度也在显著提升。此时对内存的设计也提出了更为苛刻的要求,尤其在工业控制领域和车载应用领域,恶劣的运行环境以及用户对系统

4、的苛刻要求,就需要更为稳定的硬件系统作为保证。内存设计,作为硬件系统中核心的部分,越来越受到重视。规范的硬件设计,能在系统方案设计之初,就能避免很多诸如量产后高低温下不稳定、容易死机、蓝屏甚至电磁兼容性等一些列的各种问题。我们在使用内存芯片的时候,遇到的困难比较多,其相对复杂的时序和较多的专用英文名词经常让人摸不到头脑,因此需要我们对其名词和基本的时序有很好的理解,这对以后的开发应用有很大的帮助。内存的规范化设计,需要工程师对内存的工作原理,性能参数,layout布局以及可靠性测试方面有比较深入的了解。主要目的是让开发人员更好的了解内存的相关知识,规范公司板载内存产品的设计,提高内存板卡的兼容

5、性,减少错误的发生,降低开发的成本。本文主要从以下几个方面进行了介绍,包括内存基本知识简介、硬件设计规范及注意事项、Hyperlynx仿真、内存实物验证测试方法及DDR4简介等。如有错误,欢迎指正,不足之处,请大家提出宝贵意见,不胜感激!第2章 内存简介 本章内容主要是介绍了内存的基本工作原理,以及一些重要参数的介绍。2.1 基本存储原理 DRAM的全名是动态随机存储(Dynamic Random Access Memory)。基本原理就是利用电容存储电荷的多少来代表0和1,这就是一个二进制位元(bit),内存的最小单位。行选与列选信号将使存储电容与外界间的传输电路导通,从而可进行放

6、电(读取)与充电(写入)。图1 DRAM的存储单元结构图DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管加一个电容。但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。2.2 内存的频率内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。核心频率即为内存Cell阵列(Memory Cell Array,即内部电容)的刷新频率,它是内存的真实运行频率;时钟频率即I

7、/O Buffer(输入/输出缓冲)的传输频率;而有效数据传输频率就是指数据传送的频率(即等效频率)。我们通常比较关注等效频率,测试的时候关注时钟频率。 图2 内存对应频率实例例如DDR-400、DDR2-800、DDR3-1600中的频率等,其实并非是内存的真正频率,而是业界约定俗成的等效频率,这些DDR1/2/3内存相当于老牌SDR内存运行在400MHz、800MHz、1600MHz时的带宽,频率看上去很夸张,其实真正的核心频率都只有200MHz而已。如下图:图3 SDR和DDR1/2/3全系列频率对照表内存的频率虽然在成倍增长,可真正存储单元的频率一直在133MHz-200MHz之间徘徊

8、,这是因为电容的刷新频率受制于制造工艺而很难取得突破。为了保证数据的带宽,DDR1/2/3内存最关键的技术就分别采用了2/4/8bit数据预取技术(Prefetch),与此同时I/O控制器也必须做相应的改进。  预取,顾名思义就是预先/提前存取数据,也就是说在I/O控制器发出请求之前,存储单元已经事先准备好了2/4/8bit数据。简单来说这就是把并行传输的数据转换为串行数据流,我们可以把它认为是存储单元内部的Raid多通道技术,可以说是以电容矩阵为单位的。 图4 内存数据预取技术示意图:并行转串行这种存储阵列内部的实际位宽较大,但是数据输出位宽却比较小的设计,就是所谓的数据

9、预取技术,它可以让内存的数据传输频率倍增。2.3 内存基本参数 本节主要介绍内存的引脚定义,以及各项特性参数的解析。2.3.1 内存封装以及引脚定义说明 目前市场上常见的内存颗粒品牌有Samsung, Hynix, Micron, Nanya, ISSI等。随着速度以及工艺的提升,封装从之前的TSOP,已经更换为BGA封装。TSOP封装方式中,内存芯片是通过芯片引脚焊接在PCB板上的,焊点和PCB板的接触面积较小,使得芯片向PCB板传热就相对困难。而且TSOP封装方式的内存在超过150MHz后,会产生较大的信号干扰和电磁干扰,而采用BGA技术封装的内存,可以使内存在体积不变的情况下内存容量提高

10、两到三倍,BGA与TSOP相比,具有更小的体积,更好的散热性能和电性能。 图5 TSOP与BGA封装下面我们以micron内存颗粒为例对其芯片引脚定义加以介绍,并针对其功能进行深入的解析。更细节的描述请阅读内存颗粒的相关规格书,以及参考Jedec标准的详细说明。 图6 内存颗粒引脚排列图SymbolTypeFunctionCK,CK#Input时钟差分对,所有的地址和控制信号采样于差分对的交叉点。DQS参考CK和CK#的交叉点。CKEInput时钟使能,高有效。在自刷新或者STR的时候关闭。CS#Input片选信号ODTInput终结信号,主要针对DQ,DQS,DM使能后能有效的改善SI问题。

11、RAS#,CAS#,WEInput行选通,列选通,写操作输入信号。DMInput数据掩码,数据写入时的信号,可以屏蔽一些不需要的数据。当伴随输入数据的DM信号被采样为高的时候,数据被屏蔽。BA0-BA2InputBANK地址输入选择。BA2:0定义在load mode命令期间哪个模式(MR0.)被加载. 参考是VREFCAA0-A15Input地址输入。为activate命令提供行地址,和为R/W命令的列地址和自动预充电位(A10),以便从某个bank的内存阵列里选出一个位置。A10在预充电命令期间被采样,以确定预充电是否应用于某个bank:A10为低,这个bank由BA2:0来选择,或者A1

12、0为高,对所有bank.在load mode命令期间,地址输入提供了一个操作码。地址输入的参考为VREFCA。A12/BC#:在MR使能的时候,A12在读写命令期间被采样,以决定burst chop是否会被执行。H:执行;L:不执行A10/APInput自动预充电选择,高有效A12/BC#Input突发突变。DDR3增加了一个4-bit Burst Chop(突发突变)模式,即由一个BL=4的读取操作加上一个BL=4的写入操作来合成一个BL=8的数据突发传输。RESET#Input复位信号,低有效DQInput/output数据输入输出,双向传输。DQSInput/output数据选通。输出为

传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据,而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,这个位宽就称之为物理BANK的位宽。目前我司常用的freescale芯片采用的是64bit位宽。假设内存颗粒是8bit,则需要8颗内存颗粒构成一个物理

14、BANK。我们通常也经常听到Rank的概念,其实他与物理BANK的概念相同。例如:Dual RANK的内存模组也就是支持两组64bit的位宽。 图8 物理bank示意图2.3.2逻辑BankDDR SDRAM的内部是一个存储阵列,可以把它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑Bank(Logical Bank,下文简称L-Bank)。大容量内存颗粒都是由多个逻辑Bank叠加而成的。简单来说,我们可以把一个Bank

15、看作是一片平面的矩阵纸,而内存颗粒是由多片这样的纸叠起来的。一个Bank的位宽就是内存颗粒的位宽,内存控制器一次只允许对一个Bank进行操作。Rank的寻址通过CS片选信号进行,而逻辑Bank的寻址是通过对Ban信号译码实现。通常DDR3控制器中的BA0-2,说明有8个Bank。 图9 逻辑bank示意图 通过以上的架构,行(Row)地址线复用12根,列(Column)地址线复用11根,Bank数量为4个,IO Buffer 通过4组数位线(DQ0-DQ3)来完成对外的通信,故此单颗内存芯片的容量为2的12次方乘2的11次方乘4乘4,结果为128Mbit,因为1B包含8bit,128Mb/8=

16、16MB。当然实际我们目前使用的内存单颗容量要大的多。2.3.3 tRCD解析在实际工作中,L-Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行有效”或“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),大家也可以理解为行选通周期。tRCD是一个重要时序参数,可以通过软件进行调整。广义的tRC

17、D以时钟周期(tCK,Clock Time)数为单位,比如tRCD=2,就代表延迟周期为两个时钟周期。具体到确切的时间,则要根据时钟频率而定,例如DDR3-800,tRCD=3,代表30ns的延迟。所以通过分析我们知道,tRCD cycles越少,表明内存性能越好。 图10 tRCD示意图2.3.4 CL解析列地址被选中之后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的 I/O 接口之间还需要一定的时间(数据触发本身就有延迟,而且还需要进行信号放大),这段时间就是非常著名的 CL(CAS Latency,列地址脉冲选通潜伏期)。CL 的数值与 tRCD 一样,以时钟周期数表示。如

tDQSS参数主要描述写入延迟,在DQS(在下节中有介绍)写入时序图中,可以发现写入延迟已经不是0了,在发出写入命令后,DQS与写入数据要等一段时间才会送达。这个周期被称为DQS相对于写入命令的延迟时间(tDQSS, WRITE Command to the first corresponding rising edge of DQS),对于这个时间大家应该很好理解了。为什么要有这样的延迟设计呢

19、?原因也在于同步,究竟一个时钟周期两次传送,需要很高的控制精度,它必须要等接收方做好充分的预备才行。tDQSS是DDR内存写入操作的一个重要参数,太短的话恐怕接受有误,太长则会造成总线空闲。tDQSS最短不能小于0.75个时钟周期,最长不能超过1.25个时钟周期。有人可能会说,假如这样,DQS不就与芯片内的时钟不同步了吗?对,正常情况下,tDQSS是一个时钟周期,但写入时接受方的时钟只用来控制命令信号的同步,而数据的接受则完全依靠DQS进行同步,所以DQS与时钟不同步也无所谓。 图12 tDQSS示意图2.3.5 tRP(行预充电有效周期)在数据读取完之后,为了腾出读出放大器以供同一Bank内

20、其他行的寻址并传输数据,内存芯片将进行预充电的操作来关闭当前工作行。我们以那个Bank示意图为例。当前寻址的存储单元是B1、R2、C6。如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP(Row Precharge command Period,行预充电有效周期),单位也是时钟周期数。在不同Bank间读写也是这样,先把原来数据写回,再激活新的Bank/Row。 图13 预充电示意图2.3.6

21、Burst Length(突发长度)突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Length,简称BL)。在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。突发连续读取模式:只要指定起始列地址与突发长度,后续的寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期即可做到连续的突发传输。

22、.3.7 DQM(数据掩码)如上节,如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消那些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。DQM由CPU内内存控制单元控制,为了精确屏蔽每个Rank中的每个字节,每个Rank有8个DQM信号线,这样,对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一

23、个DQM信号,而对于16bit位宽芯片,则需要两个DQM引脚。 图15 读取时数据掩码操作示意图一般来讲,在读取时DQM发出两个时钟周期后生效,但是在写入时,DQM与写入命令一样是立即生效。2.3.8 DQS(数据选取脉冲)DQS是DDR中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由内存控制器发来的DQS信号,读取时,则由芯片生成DQS向内存控制器端发送。完全可以说,它就是数据的同步信号。在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是

24、从CAS发出到DQS生成的间隔,DQS生成时,芯片内部的预取已经完毕了,由于预取的原因,实际的数据传出可能会提前于DQS发生(数据提前于DQS传出)。由于是并行传输,DDR内存对tAC(Access time from clock:时钟触发后的访问时间)也有一定的要求,对于DDR266,tAC的允许范围是±0.75ns,对于DDR333,则是±0.7ns。DQS在读取时与数据同步传输,那么接收时也是以DQS的上下沿为准吗?不,如果以DQS的上下沿区分数据周期的危险很大。由于芯片有预取(prefetch)的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I

25、/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。 图16 DQS写入示意图在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为

Amplifier:读出放大器)先读再写。预充电是对一个或所有Bank中的工作行操作,并且是不定期的,而refresh则是有固定的周期,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。但与所有Bank预充电不同的是,这里的行是指所有Bank中地址相同的行,而Precharge中各Bank中的工作行地址并不是一定是相同的。refresh操作分为两种:(Auto

27、论是何种refresh方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。对于AR,SDRAM内部有一个行地址生成器(也称refresh计数器)用来自动的依次生成行地址。refresh涉及到所有Bank,因此在refresh过程中,所有Bank都停止工作,而每次refresh所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9 个时钟期间内,所有工作指令只能等待而无法执行。SR则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是STR(Suspend to RAM,休眠挂起于内存)。在发出AR命令时,将CKE置于无效状态,就进入了SR模

28、式,此时不再依靠系统时钟工作,而是根据内部的时钟进行refresh操作。在SR期间除了CKE之外的所有外部信号都是无效的,只有重新使CKE有效才能退出自refresh模式并进入正常操作状态。不过,为了最大的节省电力,DDR3采用了一种新型的自动自刷新设计 (ASR,Automatic Self-Refresh)。当开始ASR之后,将通过一个内置于DRAM芯片的温度传感器来控制刷新的频率,因为刷新频率高的话,耗电就大,温度也随之升高。而温度传感器则在保证数据不丢失的情况下,尽量减少刷新频率,降低工作温度。不过DDR3的ASR是可选设计,并不见得市场上的DDR3内存都支持 这一功能,因此还有一个附

29、加的功能就是自刷新温度范围(SRT,Self-Refresh Temperature)。通过模式寄存器,可以选择两个温度范围,一个是普通的的温度范围(例如0至85),另一个是扩展温度范围,比如最高到 95。对于DRAM内部设定的这两种温度范围,DRAM将以恒定的频率和电流进行刷新操作。如果公司的产品需要过高温的话,此项选择可以配置,这是在系统在过高温时候的一些设置,可以在可靠性测试中参考此设置,当然刷新率提高,有利于可靠性,但是系统的功耗也急剧上升,在便携式移动设备中,不利于节电。举例DDR3,在内存温度介于8595, 可设置MR2切换SRT(Self Refresh

随着DDR3在车载影音娱乐系统上的逐渐普及,DDR3的设计变得越来越重要了。DDR3实际上就是DDR2的改进版,以下通过总结,对比了一下DDR3和DDR2的主要区别。1、逻辑Bank数量DDR2 SDRAM中有4Bank和8Bank的设计,目的就是为了应对未来大容量芯片的需求。而DDR3很可能将从2Gb容量起步,因

31、此起始的逻辑Bank就是8个,另外还为未来的16个逻辑Bank做好了准备。 2、封装 DDR3由于新增了一些功能,所以在引脚方面会有所增加,8bit芯片采用78球FBGA封装,16bit芯片采用96球FBGA封装,而DDR2则有60/68/84球FBGA封装三种规格。并且DDR3必须是绿色封装,不能含有任何有害物质3、突发长度(BL) 由 于DDR3的预取为8bit,所以突发传输周期(BL,Burst Length)也固定为8,而对于DDR2和早期的DDR架构的系统,BL=4是常用的。而且需要指出的是,任何突发中断操作都将在DDR3内存中予以禁止,且不予支持,取而代之的是更灵活的突发传输控制。

32、4、寻址时序 就像DDR2从DDR转变而来后延迟周期数增加一样,DDR3的CL周期也将比DDR2 有所提高。DDR2的CL范围一般在2至5之间,而DDR3则在5至11之间,且附加延迟(AL)的设计也有所变化。DDR2时AL的范围是0至4,而 DDR3时AL有三种选项,分别是0、CL-1和CL-2。另外,DDR3还新增加了一个时序参数写入延迟(CWD),这一参数将根据具体的工作频率 而定。5、新增功能重置(Reset) 重置是DDR3新增的一项重要功能,并为此专门准备了一个引脚。 DRAM业界已经很早以前就要求增这一功能,如今终于在DDR3身上实现。这一引脚将使DDR3的初始化处理变得简单。当R

33、eset命令有效时,DDR3 内存将停止所有的操作,并切换至最少量活动的状态,以节约电力。在Reset期间,DDR3内存将关闭内在的大部分功能,所以有数据接收与发送器都将关 闭。所有内部的程序装置将复位,DLL(延迟锁相环路)与时钟电路将停止工作,而且不理睬数据总线上的任何动静。这样一来,将使DDR3达到最节省电力的目的。6、新增功能ZQ校准 ZQ也是一个新增的脚,在这个引脚上接有一个240欧姆的低公差参考电阻。这个引脚通过一个命令集,通过片上校准引擎(ODCE,On-Die Calibration Engine)来自动校验数据输出驱动器导通电阻与ODT的终结电阻值。当系统发出这一指令之后,将

34、用相应的时钟周期(在加电与初始化之后用512个时钟 周期,在退出自刷新操作后用256时钟周期、在其他情况下用64个时钟周期)对导通电阻和ODT电阻进行重新校准。 7、参考电压分成两个 对于内存系统工作非常重要的参考电压信号VREF,在DDR3系统中将分为两个信号。一个是为命令与地址信号服务的VREFCA,另一个是为数据总线服务的VREFDQ,它将有效的提高系统数据总线的信噪等级。8、根据温度自动自刷新(SRT,Self-Refresh Temperature) 见2.3.9章节,不再赘述。9、局部自刷新(RASR,Partial Array

35、通过这一功能,DDR3内存芯片可以只刷新部分逻辑Bank,而不是全部刷新,从而最大限度的减少因自刷新产生的电力消耗。这一点与移动型内存(Mobile DRAM)的设计很相似。10、点对点连接(P2P,Point-to-Point) 这是为了提高系统性能而进行了重要改动,也是与DDR2系统的一个关键区别。在DDR3系统中,一个内存控制器将只与一个内存通道打交道,而且这个内存通道 只能一个插槽。因此内存控制器与DDR3内存模组之间是点对点(P2P,Point-to-Point)的关系(单物理Bank的模组),或者是点对双点 (P22P,Point-to-two-Point)的关系(双物理Bank的

36、模组),从而大大减轻了地址/命令/控制与数据总线的负载。而在内存模组方 面,与DDR2的类别相类似,也有标准DIMM(台式PC)、SO-DIMM/Micro-DIMM(笔记本电脑)、FB-DIMM2(服务器)之分,其中第二代FB-DIMM将采用规格更高的AMB2(高级内存缓冲器)。总结:除了上述之外,DDR3还在功耗管理,多用途寄存器方面有新的设计,因为并不是太重要的功能,在此就不详细介绍了。面向64位构架的DDR3显然在频率和速度上拥有更多的优势,此外,由于DDR3所采用的根据温度自动自刷新、局部自刷新等其它一些功能,在功耗方面 DDR3也要出色得多,因此,它可能首先受到移动设备的欢迎,就像

37、最先迎接DDR2内存的不是台式机而是服务器一样。在CPU外频提升最迅速的PC台式机领域,DDR3应用的非常普遍。 2.3.11 ODT简介主板终结是一种最为常见的终结主板内干扰信号的方法。在每一条信号传输路径的末端,都会安置一个终结电阻,它具备一定的阻值可以吸收反射回来的电子。ODT是On-Die Termination的缩写,其意思为内部核心终结。从DDR2内存开始内部集成了终结电阻器,主板上的终结电路被移植到了内存芯片中。在内存芯片工作时系统会把终结电阻器屏蔽,而对于暂时不工作的内存芯片则打开终结电阻器以减少信号的反射。由此DDR2内存控制器可以通过ODT同时管理所有内存引脚的信号终结。并

38、且阻抗值也可以有多种选择。并且内存控制器可以根据系统内干扰信号的强度自动调整阻值的大小。其实ODT技术的具体内部构造并不十分复杂。在内存各种引脚与内存模组的内部缓冲器中间设有一个EMRS扩展模式寄存器,通过其内部的一个控制引脚可以控制ODT的阻抗值,一旦ODT接到一个设置指令,它就会一直保持这个阻值状态,直到接到另一个设置指令才会转换到另一种阻值状态。整个ODT的设置和控制都要通过EMRS中那个控制引脚来完成。因此这个引脚的响应速度成为了ODT技术中的关键因素。ODT工作时有两种基本模式:断电模式和其他模式。其中其他模式还包括激活模式和备用模式。ODT从工作到关闭所用的时差叫做tAONPD延迟

39、,最少仅2个时钟周期就可以完成,最多5个时钟周期。由于开启和休眠的切换如此迅速,内存可以在不影响性能的前提下充分的进行“休息”。ODT技术的优势非常明显。第一,去掉了主板上的终结电阻器等电器元件,这样会大大降低主板的制造成本,并且也使主板的设计更加简洁。第二,由于它可以迅速的开启和关闭空闲的内存芯片,在很大程度上减少了内存闲置时的功率消耗。第三,芯片内部终结也要比主板终结更及时有效,从而减少了内存的延迟等待时间。这也使得进一步提高DDR2内存的工作频率成为可能。 图20 ODT示意图 在我们的电路设计中,按照DDR3的标准,在ZQ脚上是通过240ohm,1%的电阻拉地来计算ODT阻抗的。如下图

40、。 图21 原理图设置示意图 在软件设置中,我们是通过A10和A9两位(可以参考2.4.2模式寄存器设置)来设置动态ODT阻值的。 通过以上关于ODT的介绍,以及对后续MR寄存器的了解,然后通过仿真实验可以看出内存端ODT设置为60ohm,是比较接近高速信号中的单端阻抗值得,在实际的PCB设计过程中,我们可以根据仿真经验值,设置单端走线阻抗为60ohm,更加接近优化的ODT的匹配值,有利于信号的完整性设计以及优化软件参数配置的难易度。2.4 内存的工作原理 本节主要介绍内存工作的流程图、寄存器的设置以及在读写时候的一些时序分析。2.4.1 内存工作流程了解了一些专用名词和术语之后,我们对内存工

41、作的基本原理作一个介绍,下面以DDR3为例: 图22

44、AL:Additive latency.是用来在总线上保持命令或者数据的有效时间。在DDR3允许直接操作读和写的操作过程中,AL是总线上的数据出现到进入器件内部的时间。 图23 名词解释表 工作原理:首先,芯片进入上电,在上电最小为200us的平稳电平后,等待500us然后CKE使能,在这段时间芯片内部开始状态初始化,该过程与外部时钟无关。在时钟使能信号前(CKE),必须保持最小10ns或者5个时钟周期,除此之外,还需要一个NOP命令或者Deselect命令出现在CKE的前面。然后DDR3开始了ODT的过程,在复位和CKE有效之前,ODT始终为高阻。在CKE为高后,等待tXPR(最小

45、复位CKE时间),然后开始从MRS中读取模式寄存器。然后加载MR2、MR3的寄存器,来配置应用设置;然后使能DLL,并且对DLL复位。接着便是启动ZQCL命令,来开始ZQ校准过程。ZQ也是一个新增的脚,在这个引脚上接有一个240欧姆的1%精度的参考电阻。这个引脚通过一个命令集,通过片上校准引擎(ODCE,On-Die Calibration Engine)来自动校验数据输出驱动器导通电阻与ODT的终结电阻值。当系统发出这一指令之后,将用相应的时钟周期(在加电与初始化之后用512个时钟 周期,在退出自刷新操作后用256时钟周期、在其他情况下用64个时钟周期)对导通电阻和ODT电阻进行重新校准。等

46、待校准结束后,DDR3就进入了可以正常操作的状态。后续的“读”、“写”等一系列操作将在下面的章节中具体介绍。详细过程可以参考jedec standard。2.4.2 模式寄存器(MRS)设置 MRS,即MODE Register Set, 模式寄存器设置。为了应用的灵活性,不同的功能、特征和模式等在DDR3芯片上的四个Mode Register中,通过编程来实现。模式寄存器MR没有缺省值,因此模式寄存器MR必须在上电或者复位后被完全初始化,这样才能使得DDR可以正常工作。正常工作模式下,MR也可以被重新写入。模式寄存器的设置命令周期 tMRD为

MR1用来存储是否使能DLL、输出驱动长度、Rtt_Nom、额外长度、写电平使能等。 图26 MR1设置 MR2用来存储控制更新的特性,  Rtt_WR阻抗,和CAS写长度。 其中有两种RTT值是可以选择的,一种是RTT_No

48、m, 另一种是RTT_WR; Rtt_Nom 是在没有写命令的时候被选择的,当有了写命令后,ODT就会变成Rtt_WR,当写命令结束后,又会回到Rtt_nom。也就是说,RTT在ODT使能后出现,当总线上没有数据的时候,采用的RTT值为RTT_nom;而当总线上有了数据后,要求此时的ODT的值为Rtt_WR。 图27

49、k处于idle状态。 图28 MR3设置2.4.3 数据“读”过程在数据读和写之前,我们看看他的大致流程: 图29 读命令操作流程对于Data (DQ)是由DQS采用源同步的方式同时在上升沿和下降沿对数据进行采样,当Read命令时数据方向为内存颗粒到内存控制器, DQS相对于DQ为edge align,在Memory

50、cy(1.5,2,3 cycle)。5: 读一个Burst 的数据流(4,8)。图30 数据读时序图 下图是用泰克示波器测试的数据读入实例。我们从图中可以看到读到的数据是:0101。 图31 数据读示波器测试实例 2.4.4 数据“写”过程 当发Write命令时数据方向为内存控制器到内存颗粒,DQS相对于DQ为center align,在写操作过程中,DQS同时钟同步,数据的写触发动作是在DQS的上升或者下降沿,数据写动作最终完成在DQ高低电平的中间部分。写命令流程如下:1:通过Pre-charge命令根据CS#选择Rank,根据BA0-2选择Bank。 2:通过Act

51、ive-Row命令选择行地址。 3:通过Write-Col address 命令选择列地址。4: 经过一个tDQSS(75%-125%) clock cycle。5: 写一个Burst 的数据流(4,8)。 图32 数据写时序图 下图是用泰克示波器测试的数据写入的实例。我们从图中可以看到写入的数据是: 图33 数据“写”示波器测试实例

硬件设计要求DDR的硬件设计,各大芯片厂商都提供了参考设计,电路设计相对来说比较简单,但实际系统如果要做的稳定还是不容易的。本章中主要介绍DDR3的电路设计及电源完整性的有关问题。3.1 DDR的电源设计3.1.1 DDR的核心电源设计(VDD&VDDQ)提到DDR的核心电源,我们以DDR3为例,我们知道,DDR3的核心电压(VDD=VDDQ)为1.5V。容限范围为+/-5%。在

53、设计DDR3的供电电源方案之前,我们需要先认真阅读内存颗粒的规格书,了解他需要提供多大的电流。例如我们以micron的256MX16的颗粒为例:(不同的颗粒可能规格不同,我们要以我们系统使用的颗粒的为准) 图35 DDR工作电流参数示意图DDR颗粒工作在最大负荷的情况是IDD7这种模式,如上图,选用DDR3-1333的话,他消耗的电流为285mA,我们的系统如果用4颗的话,也就是需要提供1140mA的电流。所以在设计的时候建议DC/DC电源能提供1.5A的电流,这在电源设计之初就要很精确的评估内存的VDD电源,采用PMIC,需要确认他的供电能力;如果采用独立电源设计,就需要评估芯片的规格,计算

54、功率电感,滤波电容的值,达到最优化。一般来说我们可以采取一路DC2DC的具体方案不再赘述。3.1.2 参考电压(Vref)设计 内存的电源设计,是内存系统性能稳定的前提,那Vref的电源设计与layout决定了系统数据交互的稳定性以及信号的完整性,抗电磁干扰的优劣等。内存的参考电压尤为重要,值得硬件设计人员重视。根据内存颗粒的规格书以及Jedec标准,我们知道Vref=VDD/2。以下为参考电路。 6 图36 DDR3 参考电压示意图对于Vref,在PCB设计的时候有如下注意事项:1、 确保Vref走线足够宽,最少保证2025mils宽度。2、 Vref与其他任何走线的间距满足保证至少20mi

55、ls的要求,并且最好用地包裹。3、 如果Vref是由分压电阻产生,请确保所有的电阻使用同样的阻值,并且是1%的精度。4、 Vref与Vtt不能在同一层面或者尽量远离,因为Vref要求噪声较严格,纹波控制在30mV以内,而Vtt平面上的噪声对Vref影响较为敏感。5、 Vref参考电压不仅仅提供给内存控制器,也给内存芯片,所以我们要保证足够的退耦电容在两端,每个Vref引脚都保证至少一个去耦电容,一般选择0.1uf.6、 对于较重的负载(>4 DDR器件),可使用电源IC(LDO)来产生VREF。3.1.3 Vtt简介及设计Vtt是提供给内存芯片和控制器中间控制总线和数据总线的端接电源,英文为Termination Power,

}

我要回帖

更多关于 系统性误差和偶然性误差 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信