MSO,我要蓝色的!!!---MSO快速DDR读写分离 (DDR连载一)


玩过DDR 的兄弟姐妹们都知道,DDR 有可能是计算机所有接口里面最难测试的,为什么呢?

1. BGA封装难探测

以前的DDRI是相当地厚道滴,它的芯片采用的是TSOP封装,也就是管脚露在芯片两侧的,测试起来相当的方便;DDRII和III就不一样了,它采用的是BGA封装,所有焊点是藏在芯片的底部的,对于我们测试者来说,必须使得在内存或者是主板在样品设计的时候预留出测试点,或者刮开PCB板才能探测,相当地不方便;

2. DDR读写难分离

和Sata, PCIE,USB3.0等其他高速串行总线不一样, DDR在接口上,是不区分Tx和Rx的,读写双向的数据全部都搁在DQS和DQ上。因此,在DDR读写burst分析之前,首先得把read burst和write burst分离出来。我们知道,示波器是不能区分信号的方向的,那我们怎么样对DDR进行读写分离呢?

对于第一个问题,泰克在推出了全球第一款(也是目前市面上唯一的一款)socket式的BGA interposer(通俗地说,就是DDRII/III 的测试夹具),把芯片所有的测试点全部路由到夹具的两侧,且socket式的interposer可以允许你在夹具上随意更换DRAM芯片,而不需要重新焊接;

关于BGA夹具,我们在以后的DDR连载再继续为大家详细介绍,这次发个图混个脸熟先(如图一):-)


图一

回到第二个问题,我们该怎么实现DDR的快速的便捷的分离?在读写分离之前,我们必须得知道DDR读写信号之间的特征差异。


图二

玩过DDR的朋友,都可以一眼都识别到上图左边的是Read burst, 右边的是Write burst。读写burst存在以下的特征差异(如图二):

  • 幅度的差异:

    由于我们一般在DRAM端进行测试,写数据从memory controller出来,经过了主板PCB板,内存插槽和内存条PCB板,到达DRAM颗粒的时候,已经被衰减了(因为PCB板也是个低通滤波器,它本身的带宽也是有限的,会滤掉高频信号,使得信号本身的幅度和斜率降低),而读数据刚刚从DRAM出来,还没有经过任何的衰减,因此读数据的幅度要大于写数据;
  • 斜率的差异:

    读数据的斜率大于写数据。理由同上;
  • 相位关系:

    写数据是DQS和DQ centre-align(中间对齐), 读数据DQS和DQ是edge align(边沿对齐),memory controller在接收到内存的读数据时,在controller内部把DQS和DQ的相位错开90度,实现中间对齐来采样(这个过程示波器就看不到咯);
  • DQS preamble的宽度:

    在每次的burst之前,DQS会从高阻态切换到一段负脉冲,然后才开始正常的读写。这段负脉冲,我们叫做preamble(preamble实际上是在读写前,DQS提前通知DRAM芯片或者是controller: 哥们,准备干活了)。一般说来,读数据DQS的preamble宽度要大于写数据。

当然,对于DDR3,情况就更简单了。因为在DDR3中,读数据的preamble是负脉冲,写数据的preamble是正脉冲。

现在我们知道了DDR读写之间的信号差异, 就可以利用泰克独有的PinPoint AB两级触发,根据上述四种差异的其中一种,分离读写。

利用PinPoint Runt(欠幅触发)实现DDR2读写分离
(幅度大的为Read, 幅度小的为Write,如图三)


图三

利用PinPoint Windows(窗口触发)实现DDR3读写分离
(DQS preamble 正脉冲为Write, 负脉冲为Read,如图四)


图四

可见泰克齐得窿咚强的Pinpoint触发(卖一下瓜先)把DDR纠结在一起的读写完美地分离开。但是有时候会出现个小问题,打个比方,我们要分离红豆和土豆,很简单吧,但是如果要分离红豆和绿豆呢?似乎就有点难度了。

DRAM芯片应用的范围非常广,有些 DRAM芯片和controller之间的距离非常非常的短,那么读和写之间的幅度差异和斜率差异就非常非常小了,这个时候无论你用T牌,A牌还是L牌的筛子想分离红豆绿豆,都存在不小的难度。

咋办呢?其实除了刚才我们说到的DDR读写的四大差异外,其实还有一个我们平时不大注意的差异,那就是Write命令后,经过一个latency,紧跟的肯定是写数据,Read命令后经过一个latency,紧跟的肯定也是读数据(不可能红豆的豆种放下地里,长出来的是绿豆吧,也不可能你锅里放的是绿豆,煮出来变红豆汤吧-_-!!!)。也就是说,我们如果能稳定地触发读命令或者是写命令,也就能稳定地捕获到分离后的读数据或是写数据。

我们知道,DDR是由于四个命令线CS#(片选),RAS#(行选通),CAS#(列选通)和WE#(写使能)来组成命令总线的,但是问题又一次摆在我们面前了,传统上,示波器都只有四个通道,除了量测DQS和DQ(有些时候还要加上CLK)后,还剩余两个通道了,根本无法再另外捕获四条命令线了。

或许,它能帮助到您。


图五

泰克的MSO70000系列除了继承了DPO70000光荣的优良传统,提供四个高带宽高采样率的模拟通道外,还增加了16根高性能的逻辑通道。因此,我们能利用MSO的逻辑通道捕获DDR四根命令线,解码DDR命令,分离出MSO模拟通道捕获的的数据总线(DQS和DQ),如图六,MSO能轻松解码DDR命令,从此告别命令线枯燥的0101或者是高低高低显示;


图六

在Tek传统的Pinpoint触发上,增加了Bus总线触发。在Bus总线触发上,罗列了所有DDR命令,包括Write, Read, Active, Precharge等等。如图七,就是利用了Bus总线触发,触发DDR3的Write命令,因此能把DDR3的Write burst分离出来。利用余辉显示或者是Tek的DPX功能,还能实现DDR读写数据的稳定的触发和累积,得到DQ的眼图(如图八)


图七


图八

小结:

MSO70000为我们DDR的测试和分析提供了另外一种便捷的方法,即可以实现DDR命令的解码,也可以迅速“秒杀”分离DDR的读写。当然,我们也可以使用手动的Pinpoint触发,或者使用泰克最新的DDRA自动化软件来做DDR读写分离和一致性的测试和分析。关于DDRA自动化软件介绍,我们在下次的连载再为大家介绍吧。

MSO70000实现DDR读写分离,就是这么的简单,我用完以后是这样,你用完以后也是这样^_^

  2010-11-14 08:00:00

保持了解: 活动和研讨会 | Follow Tektronix on Weibo

MEMBERSHIP: Create an account for exclusive membership privileges. 登录