摘要DDR是需要进行信号完整性测试的总线中最复杂的总线,不仅走线多、探测困难,而且时序复杂,各种操作交织在一起。多年的实践经验,提供了一些测试的参考方法,尤其对读”“写”眼图的测试方法和模板的定义提出一种创新的观点,并设计软件实现了这种方法,希望对主板,DIMM,DRAM设计者和测试者有参考价值。
摘要 现在不论做主板设计或测试的工程师,还是做内存或DDR芯片设计或测试的工程师都会面临这样一个问题:如何能够分离出“读”和“写”眼图以发现有无信号品质问题?因为简单测试一段波形很难确定你的设计或产品是否满足规范要求。而因为DDR的数据总线信号存在三态,“读”时序和“写”时序不同的情况,我们很难直接用示波器把“读”眼图和“写”眼图分离出来。本文根据自己设计的DDR“读”“写”分离软件,介绍一种把“读”眼图和“写”眼图分离开的方法,并创新地引入模板测试的方法。
DDR 1&2&3总线概览
DDR全名为Double Data Rate SDRAM ,简称为DDR。现在DDR技术已经发展到了DDR
3,理论上速度可以支持到1600MT/s。DDR总线走线数量多,速度快,操作复杂,探测困难,给测试和分析带来了巨大的挑战。
DDR本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍。至于地址与控制信号则与传统SDRAM相同,仍在时钟上升沿进行数据判断。
目前,许多计算机使用时钟频率为533MHz的DDR2内存,更先进的DDR2内存正在日益普及,它的时钟频率在400 MHz-800 MHz之间,新的DDR3内存的时钟频率则可以工作在800MHz-16OOMHz之间。DDR3内存芯片还有另外一个长处:更低的能耗,它的运行电压是1.5伏,低于DDR2内存芯片的1.8伏和DDR1内存芯片的2.5伏。在使用电池的设备中能够延长电池续航时间,因为能耗低,产生的热量也就少,从而对冷却的要求也就低一些。
DDR 2&3几个新增特性的含义是:ODT( On
Die Termination),DDR1 匹配放在主板上,DDR2&3把匹配直接设计到DRAM芯片内部,用来改善信号品质。OCD(Off Chip Driver)是加强上下拉驱动的控制功能,通过减小DQS与/DQS(DQS是数据Strobe,源同步时钟,数据的1和0由DQS作为时钟来判断) Skew(时滞)来增加信号的时序容限(Timing Margin)。Posted CAS是提高总线利用率的一种方法。AL(Additive Latency)技术是相对于外部CAS,内部CAS执行一定的延时。
图1是DDR总线的体系结构。其中DQS是源同步时钟,在接收端使用DQS来读出相应的数据DQ,上升沿和下降沿都有效。DDR1总线,DQS是单端信号,而DDR2&3,
DQS则是差分信号。DQS和DQ都是三态信号,在PCB走线上双向传输,读操作时,DQS信号的边沿在时序上与DQ的信号边沿处对齐,而写操作时,DQS信号的边沿在时序上与DQ信号的中心处对齐,参考图2,这就给测试验证带来了巨大的挑战:把“读”信号与“写”信号分开是非常困难的!
图2中,Addr/Cmd Bus意思是地址/命令总线,都是时钟的上升沿有效,其中命令由:/CS(片选),/RAS,
/CAS,/WE(写使能)决定,比如:“读”命令为:LHLH,“写”命令为:LHLL等。操作命令很多,主要是NOP(空超作),Active(激活),Write,Read,Precharge (Bank关闭),Auto
Refresh或Self Refresh(自动刷新或自刷新)等(细节请参考:Jedec规范JESD79)。Data
Bus是数据总线,由DQS的上升沿和下降沿判断数据DQ的0与1。
DDR 1&2&3总线的信号完整性测试
DDR总线PCB走线多,速度快,操作时序复杂,很容易出现失效问题,为此我们经常用示波器进行DDR总线的信号完整性测试和分析,通常的测试内容包括:
1,命令信号的波形和时序参数:需要测试/RAS,/CAS,/WE,/CS的信号品质,如Vmax(最大电压值),Vmin(最小电压值),Slew Rate(斜率),Ringback(回沟)等;还需要测试相对于时钟边沿的Setup Time(建立时间)和Hold Time(保持时间)。测试相对于时钟边沿的建立时间和保持时间时,需要注意参考电平的位置和最差情况波形的捕获。如图3的/CS建立时间和保持时间的测试就没有测试出最差的建立时间和保持时间值,为此,我们需要用眼图累积的方式设法找到最差情况下的建立时间和保持时间。
2,地址信号的波形和时序参数:测试内容和测试方法和相对于时钟边沿的建立时间和保持时间的测试。
3,时钟信号的波形和抖动参数:测试建议用差分探头。波形参数包括overshoot(过冲),undershoot(下冲),Slew Rate(斜率)或Rise Time(上升时间)和Fall Time(下降时间),高低时间和Duty Cycle(占空比失真)等。时钟抖动一般只是测试Cycle-Cycle
Jitter(周期到周期抖动),但是当速率超过533MT/s的DDR2&3时,则测试内容相当多,不可忽略,下表1是DDR2 667的规范参数。这些抖动参数的测试需要用专用软件实现,比如Agilent的N5413A DDR2时钟表征工具。
4,速据信号的波形和时序参数:DQS(源同步时钟)和DQ(数据)波形参数与命令地址测试类似,测试起来比较简单,但是探测却比较复杂和困难。DDR1,DQS是单端信号,可以用单端探头测试,DDR2&3 DQS则是差分信号,建议用差分探头测试,减小探测难度。DQS和DQ的时序关系,即相对的在不同操作条件下的建立时间和保持时间关系则非常复杂,分析比较困难,图4是实际捕获的DDR2 533 DQS和DQ的波形。从图中可以看出DQS和DQ的三态(Tri-state)特征,读数据(Read Burst)和写数据(Write Burst)的DQS和DQ的相对时序特征。在我们测试时,只是捕获了这样的波形,然后测试出在“读”“写”操作时的建立时间和保持时间参数是不够的,因为数据码型是变化的,猝发长度也是变化的,只测了几个时序参数很难覆盖各种情况,更难测出最差情况。很多工程师花了一周去测试DDR,仍然测不出问题的关键点就在此处。因此我们应该用眼图的方式去测试DDR的读写时序,确保反映整体时序情况和捕获最差情况下的波形,最好能够套用串行数据的分析方法,调用模板帮助判断。