一种测试RAM的方法与流程

文档序号:17252986发布日期:2019-03-30 09:10阅读:682来源:国知局
一种测试RAM的方法与流程

本发明属于存储器测试技术领域,具体涉及一种测试ram的方法。



背景技术:

随机存取存储器(randomaccessmemory,ram)又称作“随机存储器”,是与cpu直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。在使用这些ram时,需要提前对ram进行判断,以确保ram能够正常工作。

专利cn100343923c介绍了一种测试sdram器件的方法,包含如下步骤:a.将待测试sdram的工作模式设置为fullpage方式;b.激活需要访问的待测试sdram的地址线和控制线,将测试数据通过其数据线写入到相应的存储单元,在fullpage方式下会在连续的256个存储单元写入相同的数据;c.在多个时钟信号下读取待测试sdram的数据线上的数据,因为256个单元内容相同,所以在数据线上会循环出现相同数据而不需要和时钟同步;d.比较读取后的数据和测试数据,得到测试结果。

但是,在上述测试sdram器件的方法中,测试的数据并不充分,测试步骤b中提及fullpage方式下会写入相同的数据(全1或者全0),这会导致测试数据过于片面,如若某条地址线出现问题,写入相同的数据会掩盖这个错误,从而降低了测试的可靠性;另外,上述测试sdram器件的方法虽测试中利用了多个时钟信号,但最高频率时钟信号也是略微偏低,从而导致基于sdram测试不全面,只是针对sdram的功能进行了测试,并未涉及到sdram的性能测试。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种测试ram的方法。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种测试ram的方法,包括步骤:

将第一数据写入待测试ram的所述地址单元中;

读取所述地址单元,得到第二数据;

校验所述第一数据和所述第二数据,分别得到第一校验数据和第二校验数据;

比较所述第一校验数据与所述第二校验数据是否一致。

在本发明的一个实施例中,比较所述第一校验数据与所述第二校验数据是否一致,包括:

若所述第一校验数据与所述第二校验数据不一致,则停止测试;

若所述第一校验数据与所述第二校验数据一致,则判断每个所述地址单元是否均完成测试。

在本发明的一个实施例中,判断每个所述地址单元是否均完成测试,包括:

若判断每个所述地址单元未均完成测试,则对未完成测试的地址单元进行测试;

若判断每个所述地址单元均完成测试,则输出产品合格信息。

在本发明的一个实施例中,所述第一数据包括随机数。

在本发明的一个实施例中,还包括:根据所述ram的位宽产生所述随机数。

在本发明的一个实施例中,校验所述第一数据和所述第二数据,包括:

使用循环校验码crc算法校验所述第一数据和第二数据。

本发明的另一个实施例提供了一种测试ram的装置,包括:

数据写入单元,用于将所述第一数据写入待测试ram的地址单元中;

数据读取单元,用于读取所述地址单元,得到第二数据;

数据校验单元,用于校验所述第一数据与所述第二数据,分别得到第一校验数据和第二校验数据;

数据比较单元,用于比较所述第一校验数据与所述第二校验数据是否一致。

在本发明的另一个实施例中,还包括:判断单元,用于判断每个所述地址单元是否均完成测试。

在本发明的另一个实施例中,所述第一数据包括随机数。

在本发明的一个实施例中,还包括:

数据产生单元,用于根据所述ram的位宽产生所述随机数。

与现有技术相比,本发明的有益效果:

1、本发明测试ram的方法通过依次采用随机数对ram进行测试,避免了测试数据过于片面的问题,测试覆盖率高,使得ram中的错误能够充分检测出来,更有效地检测了待测试ram,从而提高了测试的可靠性。

2、本发明测试ram的方法对ram进行长时间重复写入-读取-校验-比较的过程,测试了ram的可靠性,从而测试了ram的功能;采用多个高频率的时钟信号进行测试,测试了ram的性能;该方法测试全面且通用性强,适用范围广阔。

附图说明

图1为本发明实施例提供的一种测试ram的方法的流程示意图;

图2为本发明实施例提供的另一种测试ram的方法的流程示意图;

图3为本发明实施例提供的一种测试ram的装置的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参见图1,图1为本发明实施例提供的一种测试ram的方法的流程示意图,包括以下步骤:

步骤s1、初始化设置:首先对待测试的ram进行上电;然后进行初始化设置。

具体的,初始化设置包括设置待测试ram的地址初值等,例如,将待测试ram的地址初值设为0。

步骤s2、写入:将第一数据写入待测试ram的地址单元中,直至所述地址单元写满;具体的,首先根据ram的位宽产生第一数据,然后从待测试ram的首地址开始,将第一数据依次写入ram的地址单元中,直至ram的地址单元写满;具体的,开始写入第一数据的首地址为0。

在本发明的一个实施例中,第一数据包括随机数;具体的,随机数是根据待测试ram的位宽产生的,写入地址单元的随机数可以相同,也可以不同,可以为离散的数值,也可以为具有一定规律的数值,本发明实施例不做进一步限定。例如,待测试ram的位宽为32bit,有300个地址单元,根据待测试ram位宽产生的随机数即为300个32bit的随机数,将这300个随机数分别写入ram的地址单元,假设300个随机数为周期为1~100个随机数的循环,即1~100个随机数为001、002、003…100,第101~200和第201~300个随机数均为001、002、003…100,将这300个数字依次写入待测试ram的300个地址单元中,将ram的地址单元写满。

步骤s3、读取:读取所述地址单元,得到第二数据;

在第一数据将ram的所有地址单元写满之后,即可对每个地址单元存储的第一数据进行读取;以上述ram具有300个地址单元、写入的第一数据a1~a300为随机数为例:地址单元1中存储的第一数据a1为001,对001进行读取,获得地址单元1中与001对应的第二数据b1;地址单元2中存储的第一数据a2为002,对002进行读取,获得地址单元2中与002对应的第二数据b2;重复此方法依次将ram的所有地址单元的数据都读取出来,得到第二数据b1~b300。

进一步的,在ram合格的情况下,b1~b300应与a1~a300是一致的,即b1~b300为001、002、…、100、001、002、…、100、001、002、…、100。

步骤s4、校验:校验所述第一数据和所述第二数据,分别得到第一校验数据和第二校验数据;

在本发明的一个实施例中,检验数据采用的是循环校验码crc算法;经过crc算法的校验,得到的校验数据为一个数值,即第一校验数据为一个数值,第二校验数据为一个数值。

承接上述实施例,使用循环校验码crc算法对写入ram的第一数据a1~a300进行校验,得到第一校验数据c;使用循环校验码crc算法对读取得到的第二数据b1~b300进行校验,得到第二校验数据d。

在本发明的一个实施例中,crc校验的方法为:若设码字长度为n,信息字段为k位,校验字段为r位(n=k+r),则对于crc码集中的任一码字,存在且仅存在一个r次多项式g(x),使得v(x)=a(x)g(x)=xrm(x)+r(x),其中:m(x)为k次原始的信息多项式,r(x)为r-1次校验多项式(即crc校验和),g(x)为生成多项式:g(x)=g0+g1x1+g2x2+...+g(r-1)x(r-1)+grxr;发送方通过指定的g(x)产生crc码字,接收方则通过该g(x)来验证收到的crc码字,从而得到校验结果。

本发明实施例采用校验过程对ram写入和读取的数据进行校验,避免了因为传输或者存储而导致的数据错误,保证了数据传输的正确性和完整性,提高了测试的准确性。

本发明实施例采用crc算法进行校验,其检错能力极强,开销小,易于用编码器及检测电路实现,具有易于操作、成本低的优点;并且其信息字段和校验字段的长度可以任意选定,进一步保证了数据传输的正确性和完整性。

步骤s5、比较:判断所述第一校验数据与所述第二校验数据是否一致。

针对每个地址单元,判断经过校验的第一数据与第二校验数据是否一致;例如,得到第一校验数据c和第二校验数据d后,分别将第一校验数据c与第二校验数据d进行对比,判断c与d是否一致,若一致,则ram测试通过,若不一致,则显示器显示ram错误。最终通过随机数测试的ram为合格产品。

本发明实施例采用随机数测试时,由于随机数在二进制转换时是根据随机数转换的,其二进制数也是随机的,相比于固定数值,随机数的二进制位数覆盖率较高,测试数据比较全面,提高了ram测试的覆盖率,提高了检测出ram存在错误的几率。

本发明测试ram的方法通过采用随机数对ram进行测试,避免了测试数据过于片面的问题,测试覆盖率高,使得ram的错误能够充分检测出来,更有效地检测了待测试的ram,从而提高了测试的可靠性。

进一步的,本发明实施例的测试方法可以实现对任何由地址线和控制线构成的存储器进行测试,如可被测试的存储器类型为sdram、sram、dram等。

实施例二

请参见图2,图2为本发明实施例提供的另一种测试ram的方法的流程示意图,包括步骤:

s1、始化设置:首先对待测试的ram进行上电;然后进行初始化设置。

具体的,初始化设置包括设置待测试ram的地址初值等,例如,将待测试ram的地址初值设为0。

s2、写入:将第一数据写入待测试ram的地址单元中;具体的,首先根据ram的位宽产生第一数据,然后将第一数据写入待测试ram的地址单元;具体的,开始写入第一数据的首地址可以为0。

在本发明的一个实施例中,第一数据包括随机数;具体的,随机数是根据待测试ram的位宽产生的,写入首地址的随机数可以为任意值。例如:待测试ram的位宽为32bit,则根据待测试ram的位宽产生一个位宽为32bit随机数a1,将a1写入待测试ram的首地址中。

s3、读取:读取所述地址单元,得到第二数据;

在第一数据写入待测试ram的首地址之后,对待测试ram首地址中的第一数据进行读取;以上述ram首地址写入随机数a1为例,对a1进行读取,得到第二数据b1。

在ram合格的情况下,b1与a1是一致的,即若a1为001,则b1也为001。

s4、校验:校验所述第一数据和所述第二数据,分别得到第一校验数据和第二校验数据。

在本发明的一个实施例中,检验数据采用的是循环校验码crc算法;经过crc算法的校验,得到的校验数据为一个数值,即第一校验数据为一个数值,第二校验数据为一个数值;具体的检验方法同实施例一中的检验方法一致。

承接上述实施例,使用循环校验码crc算法对写入ram的第一数据a1进行校验,得到第一校验数据c;使用循环校验码crc算法对读取得到的第二数据b1进行校验,得到第二校验数据d。

s5、比较:判断所述第一校验数据与所述第二校验数据是否一致。

针对首地址单元,判断经过校验的第一数据与第二校验数据是否一致;例如,得到第一校验数据c和第二校验数据d后,分别将第一校验数据c与第二校验数据d进行对比,判断c与d是否一致。

经过比较判断,若第一校验数据c和第二校验数据d不一致,则显示器显示ram错误,停止测试;若第一校验数据c和第二校验数据d一致,则判断每个地址单元是否均完成测试,即判断每个地址单元是否都进行了进行“写入-读取-校验-比较”的过程。

若待测试ram中存在未完成测试的地址单元,则对未完成测试的地址单元重复“写入-读取-校验-比较”的过程,直至所有的地址单元均进行了测试;经测试,所有地址单元的第一检验数据和第二检验数据一致时,输出产品为合格产品的信息。

在一个具体实施例中,待测试ram有300个地址单元,在测试判断第一个地址单元的校验数据一致之后,依次对其余的地址单元进行循环测试,在循环测试过程中出现校验数据不一致时,显示器显示错误,停止测试;若检验数据一致,则测试继续,直至所有地址单元的校验数据均一致,则待测试ram为合格产品,输出产品合格的信息。

在一个具体实施例中,重复对所有地址单元测试的过程中,写入地址单元的随机数可以相同,也可以不同。例如待测试ram有300个地址单元,则写入这300个地址单元的随机数可以均为a1,也可以为a1、a2…a300,也可以为300个具有一定规律的数值。

本发明实施例的测试ram的方法对测试环境等需求要求低,可有效的缩小测试成本;通过采用随机数对ram进行测试,避免了测试数据过于片面的问题,测试覆盖率高,使得ram的错误能够充分检测出来,更有效地检测了待测试的ram,从而提高了测试的可靠性。

实施例三

在本发明的一个实施例中,实施例一和实施例二的测试方法可以用来判断ram是否完好、可靠,并且可测试ram的性能,以实施例二的测试方法为例进行说明,请参见图2。

在判断ram是否完好时,测试时钟频率为0~100mhz,测试过程为:首先对待测试的ram进行上电,并将待测试ram的地址初值设为0;根据待测试ram的位宽产生随机数,控制随机数写入待测试的ram的其中一个地址单元;读取ram地址单元中的随机数,获得与随机数对应的第二数据;对随机数和第二数据进行校验,得到两个校验数据:第一校验数据和第二校验数据;将这两个校验数据进行对比,判断这两个校验数据是否一致;若不一致,则显示器显示错误,若一致,则对ram的其他地址单元循环上述步骤,直至到每个地址单元均完成测试;最终所有地址单元均通过测试的ram为合格产品,并且输出产品合格的信息。

在本发明的一个实施例中,上述方法也可以用来测试ram的性能,此时只需改变测试时钟即可,测试时钟可以由100mhz为起点,然后随意选择不同频率时钟进行测试,最终可到达待测试ram可能工作的最高时钟频率。进一步的,最高时钟频率可根据待测试ram的类型选择;具体的,若ram的最高时钟频率为200mhz,则可选择100mhz-200mhz之间的不同时钟频率进行测试,如选择110mhz、160mhz、180mhz等,在上述时钟频率下测试ram性能的过程与判断ram是否完好的过程一致。通过提高时钟频率对ram进行测试,判断其是否可以正常工作,从而判断ram的性能情况,时钟频率越高,ram性能越好。

在本发明的一个实施例中,通过长时间对ram进行测试,可以判断ram是否可靠。为了确保测试的准确性,测试尽可能在较低的时钟频率下进行,例如可选择小于50mhz的时钟频率,测试过程为将随机数写入-读取-校验-比较作为一个循环的过程,重复对ram进行这一操作,直至测试停止。在对随机数循环的过程中,每次循环的随机数可以相同,也可以不同。在ram可靠的情况下,这一过程可以无限循环下去,而时间越长,重复次数越多,ram的可靠性也越高;但在实际操作中,长时间根据具体测试情况取决,考虑到测试的成本,一般选择2~3天即可。在重复测试过程中出现比较结果不一致的情况,则显示器显示错误,测试停止,判定该ram不可靠。进一步的,在测试ram可靠性的过程中,只要出现1次比较结果不一致的情况,则测试停止。

本发明实施例测试ram的方法对ram进行长时间写入读取数据,测试了ram的可靠性,从而测试了ram的功能;采用多个高频率的时钟信号进行测试,测试了ram的性能;该方法测试全面且通用性强,适用范围广阔。

实施例四

请参见图3,图3为本发明实施例提供的一种测试ram的装置的结构示意图,包括:

数据写入单元,用于将第一数据写入待测试ram的地址单元中,直至地址单元写满;

数据读取单元,用于读取所述地址单元,得到第二数据;

数据校验单元,用于校验第一数据与第二数据,分别得到第一校验数据和第二校验数据;

数据比较单元,用于比较所述第一校验数据与所述第二校验数据是否一致。

进一步的,测试ram的装置还包括:判断单元,用于判断每个所述地址单元是否均完成测试。

进一步的,第一数据包括随机数。

进一步的,测试ram的装置还包括:数据产生单元,用于根据所述ram的位宽产生所述随机数。

具体的,数据产生单元、数据校验单元和数据比较单元均可以在fpga中进行;进一步的,fpga可以与ram为一个整体封装的测试装置,从而测试过程可以看做bist测试;进一步的,fpga开发板和ram测试版也可以为两个平台联合搭建起来的组合测试平台。

本发明实施例的测试ram的方法对测试环境等需求要求低,可有效的缩小测试成本;通过采用随机数对ram进行测试,提高了测试的可靠性;通过对ram进行长时间写入读取数据,测试了ram的功能;通过采用多个高频率的时钟信号进行测试,测试了ram的性能;本发明实施例的试ram的方法测试全面且通用性强,适用范围广阔。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1