内存测试

随着时钟速率和数据传输速率不断增加和性能的提高,设计工程师必须保证系统的性能指标,或确保系统内部存储器和存储器控制设备的互操作性,存储器子 系统的模拟信号完整性已成为设计工程师越来越多重点考虑的问题。许多性能问题,甚至在协议层发现的问题,也可以追溯到信号完整性问题上。因此,存储器的模 拟信号完整性验证已经成为很多电子设计验证关键的一步。

  JEDEC(电子工程设计发展联合协会)已经明确规定存储设备详细测试要求,需要对抖动、定时和电气信号质量进行验证。测试参数:如时 钟抖动、建立和保持时间、信号的过冲、信号的下冲、过渡电压等列入了JEDEC为存储器技术制定的测试规范。但执行规范里的这些测试是一个很大的挑战,因 为进行这些测试很可能是一个复杂而又耗时的任务。拥有正确的工具和技术,可以减少测试时间,并确保最准确的测试结果。在本应用文章中,我们将讨论针对存储 器测试的解决方案,这个方案能够帮助工程师战胜挑战和简化验证过程。

 

目录

[隐藏]

硬件检测

  信号的获取和探测

  存储器验证的第一个难点问题是如何探测并采集必要的信号。JEDEC标准规定的测试应在存储器元件的BGA(球栅阵列结构的PCB)上。而FBGA封装组件包括一个焊球连接阵列(这是出于实际目的),无法进入连接,如何进行存储器的探测呢?

  一种解决方案是在PCB布线过程中设计测试点,或探测存储器元件板的背面的过孔。虽然这些测试点没有严格在“存储器元件附近”,PCB走线长度一般都比较短,对信号衰减的影响很小。当使用这种方法探测时,信号完整性通常是相当不错的,可以进行电气特性的验证。

DDR3双列直插内存模块(DIMM)“背面”的测试点.jpg

  对于这种类型应用,可以使用手持探头,但是在多个探头前端和测试点同时保持良好的电接触非常困难。

  考虑到有些JEDEC的测量要求三个或更多的测试点,加上其他信号如芯片选择信号、RAS和CAS可能需要确定存储器状态,许多工程师常常选择使用焊接式探头进行连接。

  泰克公司开发了一种专为这种类型的应用设计的探测解决方案。P7500系列探头有4~20GHz的带宽,是存储器验证应用的选择。图2 说明了几个可用的 P7500系列探头前端之一,这种探头非常适合存储器验证的应用。这些微波同轴”前端在需要多个探测前端进行焊接情况时提供了有效的解决方案,同时提供优 秀的信号保真度和4GHz带宽,足已满足存储器DDR3@1600MT/s的测试需求。

P7500系列微波同轴探头焊接到DIMM上.jpg


  P7500 系列探头针对存储器测试应用的另一个优点是泰克专有的TriMode(三态)功能。这种独特的功能允许探头不但可以测试+和-差分信号,又可以测试单端信 号。使用探头前端的三个焊接连接,用户就可以使用探头上控制按钮或在示波器菜单来对差分和单端探测模式之间进行切换。使用焊接探头的+连接到单端数据或地 址线,使用焊接探头的-连接到另一相邻线。然后用户可以使用一个探头,通过两个单端测量模式之间切换,很容易地测量其中任何两个信号。

P7500三态前端连接.jpg

  然而,很多情况下通过背面过孔探测信号可能不是一种好的选择。使用嵌入式存储器设计,存储器元件背面可能没有可用的板上空间。甚至很多标准的DIMM,在板的两面都有存储器元件,以增加存储密度。这种情况下,测试工程师怎样才能探测到测试点呢?

  幸运的是,即使这样情况,现在也有探测解决方案。泰克公司与Nexus科技公司合作开发了所有标准DDR3和DDR2存储器设备转接板 内插板组件。这些转接板内插板使用插槽代替存储器元件连接到被测设备。在转接板有探测的测试点,然后对齐到插槽上的位置。存储器元件再插到转接板上。图4 是这种“连接”的示意图。

DDR转接板内插板组件.jpg

 Nexus转接独特的特点是使用专有插座和保留了每一个焊料的组成部分。这使得更换转接板和存储器元件时不需要重新焊接,从而增加了灵活性,同时也降低了由于多次焊接操作带来不稳定的电气连接的风险。

  转接板内插板嵌入了小型隔离电阻,尽可能接近存储器的BGA焊盘。这些电阻与P7500系列探头前端电网络完全匹配,确保良好的信号保真度。

 

软件测试

RAM测试方法回顾

  (1)方法1

  参考文献中给出了一种测试系统RAM的方法。该方法是分两步来检查,先后向整个数据区送入#00H和#FFH,再先后读出进行比较,若不一样,则说明出错。

  (2)方法2

  方法1并不能完全检查出RAM的错误,在参考文献中分析介绍了一种进行RAM检测的标准算法MARCH—G。MARCH一G算法能够提 供非常出色的故障覆盖率,但是所需要的测试时间是很大的。MARCH—G算法需要对全地址空间遍历3次。设地址线为”根,则CPU需对RAM访问6×2n 次。

  (3)方法3

  参考文献中给出了一种通过地址信号移位来完成测试的方法。在地址信号为全O的基础上,每次只使地址线Ai的信号取反一次,同时保持其他 非检测地址线 Aj(i≠j)的信号维持0不变,这样从低位向高位逐位进行;接着在地址信号为全1的基础上,每次只使地址线Ai的信号取反一次,同时保持其他非检测地址 线Aj(i≠j)的信号维持1不变,同样从低位向高位逐位进行。因此地址信号的移位其实就是按照2K(K为整数,最大值为地址总线的宽度)非线性寻址,整 个所需的地址范围可以看成是以全0和全1为背景再通过移位产生的。在地址变化的同时给相应的存储单元写入不同的伪随机数据。在以上的写单元操作完成后,再 倒序地将地址信号移位读出所写入的伪随机数据并进行检测。设地址线为n根,则CPU只对系统RAM中的2n+2个存储单元进行访问。

 

基于种子和逐位倒转的RAM测试方法

  基于种子和逐位倒转的测试方法是在方法3的基础上进一步改进获得的。方法3主要是使用全O和全1两个背景数来移位展开的,与MARCH—G算法 相比获得的故障覆盖率稍微低些,但使用了较少的地址单元。这里我们把方法3中的背景数称为“种子”。以地址线为8根的RAM为例,种子分别取 00000000和11111111两个数,取00000000、11111111、0000llll和 llll0000四个数,以及取00000000、11111111、00001111、11110000、00110011、1100llOO、 01010101和10101010八个数来移位展开测试,所达到的故障覆盖率是不一样的。种子数为2的改进方法要低于MARCH—G算法的故障覆盖率, 种子数为4的改进方法与MARCH—G算法相当,种子数为8的改进方法能够超过MARCH—G算法的效果。整体上基于种子和逐位倒转的改进方法是可以代替 MARCH—G算法的,但是种子数目不同所需要的寻址次数也是不同的。设地址线为n根,种子数为2时需要访问RAM共计4”+4次,种子数为4时需要访问 RAM共计8n+8次,种子数为8时需要访问RAM共计16n+16次,而MARCH—G算法需要访问RAM共计6×2n次。可见,基于种子和逐位倒转的 改进方法比MARCH—G算法的测试时间开销大大降低。同时,故障覆盖率会随着种子数目的增加而提高,当然不同种子数时所需要的测试时间开销也不同。在实 际测试应用中要根据测试时间和测试故障覆盖率的需求来选择合适的种子数目,才能达到满意的效果。

转载于:https://my.oschina.net/u/174242/blog/71265

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值