DDR器件关键测试向量的设计∗

2019-03-01 02:51:36石雪梅刘敦伟李盛杰
计算机与数字工程 2019年1期
关键词:预充电存储单元时序

石雪梅 刘敦伟 顾 颖 李盛杰

(航天科工防御技术研究试验中心 北京 100854)

1 引言

由于半导体工艺技术发展及存储系统多方面的需要,存储器件日益向着高速、高集成度及多品种方向发展。存储器的应用深度和广度也正以前所未有的速度增长,成为信息时代不可或缺的重要组成部分。相应地,确定其性能及质量好坏的测试及研究工作日益被重视。

存储器是在特定条件下用来存储数字信息的芯片,必须经过必要的测试以保证其功能正确。DDR(Double Data Rate)DRAM,具有速度块、容量大、集成度高等优点,在电子产品中广泛应用,国内外有很多研究团队都在做相关方面的研究[1~2]。本文旨在通过研究DDR工作的关键过程,基于ATE设计测试向量,实现DDR器件的功能测试。

2 DDR工作原理分析[3]

DDR SDRAM中文名为“双倍数据流SDRAM”。DDR SDRAM在原有的SDRAM的基础上改进而来。也正因为如此,DDR能够凭借着转产成本优势来打败昔日的对手RDRAM,成为当今的主流。图1为一张DDR正规的时序图。

图1 DDR读操作时序图

从中可以发现它多了两个信号:CLK#与DQS,CLK#与CLK时钟相位相反,形成差分时钟信号。而数据的传输在CLK与CLK#的交叉点进行,可见在CLK的上升与下降沿(此时正好是CLK#的上升沿)都有数据被触发,从而实现DDR。在此,我们可以说通过差分信号达到了DDR的目的,甚至讲CLK#帮助了第二个数据的触发,但这只是对表面现象的简单描述,从严格的定义上讲并不能这么说。之所以能实现DDR,还要从其内部的改进说起。

以MT46V32M16为例,存储单元的容量是芯片位宽的一倍,在读取时,L-Bank在内部时钟信号的触发下一次传送32bit的数据给读取锁存器,再分成两路16bit数据传给复用器,由后者将它们合并为一路16bit数据流,然后由发送器在DQS的控制下在外部时钟上升与下降沿分两次传输16bit的数据给北桥(或DDR控制器)。这样,如果时钟频率为100MHz,那么在I/O端口处,由于是上下沿触发,那么就是传输频率就是200MHz。

2.1 差分时钟

差分时钟是DDR的一个必要设计,但CK#的作用,并不能理解为第二个触发时钟,而是起到触发时钟校准的作用。由于数据是在CK的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就要求CK的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,CK上下沿间距可能发生变化,此时与其反相的CK#就起到纠正的作用(CK上升快下降慢,CK#则是上升慢下降快),与CK反相的CK#保证了触发时机的准确性。

图2 CK与CK#时序图

2.2 数据选取脉冲(DQS)

DQS是DDR SDRAM中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由北桥(或DDR控制器)发来的DQS信号,读取时,则由芯片生成DQS向北桥(DDR控制器)发送。完全可以说,它就是数据的同步信号。

图3 DQS时序图

在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS发出到DQS生成的间隔,数据真正出现在数据I/O总线上相对于DQS触发的时间间隔被称为tAC。

2.3 写入延迟

在上面的DQS写入时序图中,可以发现写入延迟已经不是0了,在发出写入命令后,DQS与写入数据要等一段时间才会送达。这个周期被称为DQS相对于写入命令的延迟时间(tDQSS,WRITE Command to the first corresponding rising edge of DQS)。

这样的延迟设计原因也在于同步,一个时钟周期两次传送,需要很高的控制精度,它必须要等接收方做好充分的准备才行。tDQSS是DDR内存写入操作的一个重要参数,太短的话恐怕接受有误,太长则会造成总线空闲。tDQSS最短不能小于0.75个时钟周期,最长不能超过1.25个时钟周期。正常情况下,tDQSS是一个时钟周期,但写入时接受方的时钟只用来控制命令信号的同步,而数据的接受则完全依靠DQS进行同步,所以DQS与时钟不同步也无所谓。

2.4 突发长度与掩码

在DDR SDRAM中,突发长度只有2、4、8三种选择,没有了随机存取的操作(突发长度为1)和全页式突发。因为L-Bank一次就存取两倍于芯片位宽的数据,所以芯片至少也要进行两次传输才可以,否则内部多出来的数据没有办法处理。

但是,突发长度的定义也与SDRAM的不一样了,它不再指所连续寻址的存储单元数量,而是指连续的传输周期数,每次是一个芯片位宽的数据。也就是说,在存储单元cell=32的情况下,对SDR来说,BL=2,则每次存取两个cell,对DDR来说,每次存取一个cell。

3 测试向量设计

DDR并不像SRAM,可以在一个周期内完成一个访问,DDR的访问过程分做几个指令,而且通常要3~7个左右的周期才能完成,我们需要执行一连串的动作才能开始读写:

1)初始化RAM内的寄存器和存储单元。

2)SDRAM Controller接收到 Data,分析 Address,用高位的 Address(Row address)进行 Active的动作。

3)SDRAM Controller用低位 Address(Column address)进行 WRITE或 READ。 SDRAM 根据Row address和Column address完成读写操作。

由于SDRAM的电气特性,每隔一段时间存储单元的信息会衰减到无法辨认,所以一段时间之内,要执行Refresh的动作,以确保信息的正确性,而执行这个动作是依靠Self refresh和Auto refresh两个Command来完成的。

3.1 初始化

图4 初始化流程图[4]

在DDR内部有一个逻辑控制单元,并且由模式寄存器为其提供控制参数。因此,每次上电时(开机时)DDR都要先对这个控制逻辑核心进行初始化。有关预充电和刷新的含义不再赘述,关键的阶段就在于模式寄存器(MR,Mode Register)及扩展模式寄存器(EMR,Extended Mode Register)的设置,寄存器的信息由地址线来提供。

在本文中,通过ATE测试系统编辑了测试向量如下。

图5 初始化的测试向量[5]

所有要保持的时间都通过NOP指令的循环来代替,所以在设计当中要充分考虑测试周期,如周期为10ns,tRP在器件手册中要求至少15ns,那在向量编辑中要至少等待2个周期,若考虑到程序调试中开始要降频测试,这里的等待周期数量要适当增加。

在器件手册中关于MR的设置要求如图6所示,对应上图向量中的第7、21行,第7行主要是设置突发长度BL=2,数据延时CL=2.5,同时复位DLL,第21行指令可选,为了程序运行的稳定,本文又在此对MR进行了设置,只有A8=0,即不再需要复位操作。

图6 MR设置[5]

在进行初始化之后,就可以对被测器件进行写、读的操作了,具体BL和CL的长度,依据MR中的设置及详细时序图要求即可,之后我们对向量设计中几个需要重点关注的过程进行分析总结。

3.2 预充电(PRECHARGE)

由于SDRAM的寻址具体独占性,所以在进行完读写操作后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。L-Bank关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。预充电可以通过命令控制,也可以通过辅助设定让芯片在每次读写操作之后自动进行预充电。

实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,以准备新行的工作。现在我们看看读写操作时的命令时序图,从中可以发现地址线A10控制着是否进行在读写之后当前L-Bank自动进行预充电。而在单独的预充电命令中,A10则控制着是对指定的L-Bank还是所有的L-Bank(当有多个L-Bank处于有效/活动状态时)进行预充电,前者(对指定的L-Bank)需要提供L-Bank的地址,后者(对所有的L-Bank)只需将A10信号置于高电平。在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔被称为tRP(Precharge command Period,预充电有效周期)。和tRCD、CL一样,tRP的单位也是时钟周期数,具体值视时钟频率而定。

图 7 读时序图[5~6]

自动预充电时的开始时间与此图一样,只是没有了单独的预充电命令,并在发出读取命令时,A10地址线要设为高电平(允许自动预充电)。可见控制好预充电启动时间很重要,它可以在读取操作结束后立刻进入新行的寻址[7],保证运行效率。

3.3 刷新(Refresh)

之所以称为DRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是DRAM最重要的操作。

目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个L-Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,1/1000毫秒),8192行时就为7.8125μs。

刷新操作分为两种:自动刷新(Auto Refresh,AR)与自刷新(Self Refresh,SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作[8]。对于AR,SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说CAS在RAS之前有效。所以,AR又称CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9个时钟期间内,所有工作指令只能等待而无法执行。64ms之后则再次对同一行进行刷新,如此周而复始进行循环刷新。显然,刷新操作肯定会对SDRAM的性能造成影响,但这是没办法的事情,也是DRAM相对于SRAM(静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价[9~15]。

4 结语

在DDR器件测试开发中,需要着重关注的主要为以上几方面,本文根据以上时序图,基于ATE设计了存储单元全覆盖测试向量,工作时钟频率100MHz,数据传输速率200Mbps,能够在电源拉偏的情况下稳定运行,固化了部分功能的测试向量,极大地提高此类器件的开发效率。

猜你喜欢
预充电存储单元时序
基于时序Sentinel-2数据的马铃薯遥感识别研究
动力电池预充设计及温升特性研究
一种28 nm工艺下抗单粒子翻转SRAM的12T存储单元设计
基于Sentinel-2时序NDVI的麦冬识别研究
电动汽车预充电保护设计
电动汽车分级预充电回路及预充电阻选型匹配方法研究
汽车电器(2021年2期)2021-03-05 07:12:04
数据在计算机内存中的存储形式及实验验证
一种成本更低的全新静态DRAM存储单元
一种毫米波放大器时序直流电源的设计
电子制作(2016年15期)2017-01-15 13:39:08
MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site