存储器地址线测试方法

文档序号:6736492阅读:1181来源:国知局
专利名称:存储器地址线测试方法
技术领域
本发明有关一种存储器地址线测试方法,尤指一种采用“走步0”和“走步1”的方法准确定位出地址线故障的方法。
背景技术
目前,单板上的CPU最小系统一般都包括CPU、FLASH和SDRAM等器件,CPU是单板的核心,用来执行单板软件指定的各项操作。FLASH是一种电可擦除的存储器,即使单板掉电,保存在其中的程序或数据也不会丢失。CPU可以方便地读出FLASH中的内容,但只有在特定的情况下才可以对其进行擦除和写入操作。SDRAM是一种动态的存储器,单板掉电以后,保存在其中的程序或数据就会丢失,CPU可以很方便地对SDRAM进行读写操作。这两种存储器本身的特点决定了CPU对FLASH中的数据读写较慢,而对SDRAM中的数据读写较快。所以一般都是将单板软件保存在FLASH中,单板上电进行必要的初始化以后,便将FLASH中的程序和数据搬移到SDRAM中来运行,这样可以保证单板的运行速度较快。SDRAM和FLASH在单板上的作用都是相当重要的,因此有必要对其数据线、地址线及单元进行全面的测试。
目前,对FLASH外围互连测试一般采取“三步测试法”,其具体的描述摘录如下表一 三步测试法总表


第一步测试用来测试数据线是否存在开路故障,第二步测试用来测试数据线是否存在短路故障,第三步测试用来测试地址线是否存在开路或短路故障。在数据线与地址线全部测试完成之后再进行故障诊断。
第一步测试的故障诊断比较简单,如果写全0没有读到全0,就说明数据线存在S-A-1(固定为1)的故障,数值为1的数据线就是发生S-A-1的故障线位置。相反的情况,如果写1没有读到全1,就说明数据线存在S-A-0(固定为0)的故障,数值位0的数据线就是发生S-A-0故障的数据线位置。
第二步测试需要对短路故障的数据线位置和什么类型的短路故障进行判断,表2是第二步测试的一个结果,举例对故障诊断进行说明(数据线b3b2b1b0,<p>表1

注意以上只是判断了数据线两两之间短路的情况,其实两条以上数据线短路的情形也包含在两两短路之中,可以对诊断结果作进一步分析,从而得到两条以上数据线短路的情形。
在确保数据线没有故障之后,可以进行第三步测试,对地址线进行测试,下面是第三步测试的一个结果,举例对故障诊断进行说明(地址线a3a2a1a0,测试数据D0D1...D4互不相同)表三 三步测试法第三步测试(地址线测试)


对地址线开路故障和短路故障的诊断原理是一样的。大致流程如下BEGINIF读到数据和期望的数据一致报告地址线测试没有发现故障;ELSE将所有数据按写入顺序翻译成相对应的地址,得到期望响应矩阵T和实际响应矩阵V;FOR实际测试响应矩阵V的每一列ViIF Vi的每一个分量都固定为1报告第i条地址线发生了固定为1的开路故障;ELSE IF Vi的每一个分量都固定为0报告第i条地址线发生了固定为0的开路故障;ELSE IF在期望响应矩阵中找到第j列矢量Ti与第i列矢量Ti逻辑或运算的结果等于Vi报告第i条地址线和第j条地址线短路,故障类型为1-支配型短路故障;ELSE IF在期望响应矩阵中找到第j列矢量Ti与第列矢量Ti逻辑与运算的结果等于Vi报告第i条地址线和第j条地址线短路,故障类型为0-支配型短路故障;ELSE报告故障类型不可判断;END IFEND IFEND FOREND。
注意以上也只是判断了地址线两两之间短路的情况,两条以上地址线短路的情形同样可以通过对诊断结果作进一步分析得到。
现有技术一的缺点在运用“三步测试法”实现FLASH测试以后,在采用模拟故障的方法对实现的情况进行测试验证的过程中,发现测试程序并不能准确的定位FLASH地址线的故障所在,经过仔细分析,发现“三步测试法”的第三步无法准确定位FLASH地址线故障,下面针对“三步测试法”的第三步进行具体的分析。
实际上现有的“三步测试法”的第三步的思路并没有错误,但具体的方法出现了问题。出问题的原因在于忽略了FLASH的特性,测试方法中把它当做RAM了,以为对某一个地址不擦除便可任意写入,而实际上FLASH是必须擦除后,才能正常写入的,即FLASH的写操作可以将为1的比特写成0,但不能将为0的比特写成1。
通过分析发现,上面的表格(表三)并不准确,假设a2和a1为短路0-支配型故障,当往0010地址写入数据D2时,数据实际上是写入了0000地址,而非0010地址,此时如果读0010地址的内容,实际上读到的是0000地址的内容。同样往0100地址写入数据D3时也写入了0000地址,实际上读到的是0000地址的内容。因为FLASH的特性是可以将为1的比特写成0,但不能将为0的比特写成1,最终结果是0000地址中保存的内容为D2和D3相“与”的结果,同样1111中写入的内容也不是表中分析的那样。因而步骤三只能判断出地址线故障,但并不能判断出是哪一根(或哪几根)地址线故障。

发明内容
鉴于上述现有技术的缺点,本发明提供一种能准确定位存储器(包括FLASH存储器和RAM存储器)地址线故障的方法。
本发明提供的方法如下一种FLASH存储器地址线测试方法,包括下列步骤
A)擦除FLASH全部存储空间;B)用“走步1”方法选取FLASH的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)重复步骤B,直到所有的地址线都完成“走步1”测试;D)读取该FLASH第一个地址单元中的数据,根据数据中“0”的排列位置,确定相对应位置的地址线发生故障。
本发明另提供一种FLASH存储器地址线测试方法,包括下列步骤A)擦除FLASH全部存储空间;B)用“走步0”方法选取FLASH的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)重复步骤B,直到所有的地址线都完成“走步0”测试;D)读取该FLASH最后一个地址单元中的数据,根据数据中“0”的排列位置,确定相对应位置的地址线发生故障。
本发明提供一种RAM存储器地址线测试方法,包括下列步骤A)将RAM存储器的第一地址单元写上全“1”;B)用“走步1”方法选取RAM的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)读取RAM存储器第一地址单元中的数据,并与上一次记录数据进行“逻辑与”操作,将操作结果保存起来(第一次读取时,没有“上一次记录数据”,直接将读到的数据保存起来即可);D)重复步骤B和步骤C,直到所有的地址线都完成“走步1”的测试;E)根据最后结果中“0”的排列位置,确定相对应位置的地址线发生故障。
本发明另提供一种RAM存储器地址线测试方法,包括下列步骤A)将RAM存储器的最后一个地址单元写上全“1”;
B)用“走步0”方法选取RAM的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)读取RAM存储器最后一个地址单元中的数据,并与上一次记录数据进行“逻辑与”操作,将操作结果保存起来(第一次读取时,没有“上一次记录数据”,直接将读到的数据保存起来即可);D)重复步骤B和步骤C,直到所有的地址线都完成“走步0”的测试;E)根据最后结果中“0”的排列位置,确定相对应位置的地址线发生故障。
根据本发明的上述各方法,若数据线的数量比地址线少,则将地址线分批次进行测试,使每次测试的地址线数量小于等于数据线。
根据本发明的上述各方法,所述的地址单元的大小根据存储器的数据线位数确定。
本发明优点如下1、对FLASH和RAM存储器能够准确地定位故障发生在哪一根(或哪几根)地址线上,弥补了现有测试方法中对地址线的故障定位不易的问题。
2、本发明方法操作简单直观,根据读到的数据,很直观的就可以知道哪根地址线有问题;编程实现非常简单,没必要像现有技术中的方法那样对测试数据与期望数据进行运算和比较,大大降低了编程的复杂度。
具体实施例方式
本发明用地址线“走步1”的方法定位出哪些地址线存在固定低电平和粘连0-支配型的故障;用地址线“走步0”的方法定位出哪些地址线存在固定高电平和粘连1-支配型的故障;对地址进行“走步1”或“走步0”测试时,要求测试数据与需要测试的地址线对应的数据位为0,其它数据位为1。
对于地址线“走步1”测试,如表四所示,以8bit的地址为例,首先假设只存在同一类连线故障,故障模式为a7恒为0,a5和a4短路0-支配型,当出现这类故障时,程序在写入测试数据时会将测试数据写入地址为00000000的单元(当有多根地址线故障时,会多次写入,如果地址线正常则不会写入该地址单元),最后只需读取00000000地址中的值,根据哪些bit(比特位)为0就可以知道哪些地址线存在故障。表四中依次写完所有的测试数据以后,读到的00000000地址的内容为01001111。如表四所示,在地址线正常的情况下00000000地址单元中的内容应该为11111111,而读到的结果为01001111,显示bit7、bit5、bit4变为0了,说明a7、a5和a4有问题。这样根据读到的数据就直观地知道哪根地址线有问题。
表四 本发明的三步测试法测试FLASH存储器地址线0-支配故障示例表(地址线“走步1”)

(上表中加粗的数据表示有错误发生)由于FLASH与RAM的读写操作有些不同,在测试RAM的时候,首先要往00000000地址中写入全1,写入第一个测试数据以后,可以将00000000地址中的数据读出并记录下来,然后每写入一个数,就读出00000000地址的内容并与上一次记录数据进行“逻辑与”操作,将操作结果保存起来,最后根据结果中“0”的位置就可以知道哪根地址线有问题。如下表五所示,以8bit的地址为例,假设故障模式为a7恒为0,a5恒为1,每次读到的数据“逻辑与”的最后结果为01011111,通过这个结果就可以知道a7和a5有问题。
表五 本发明三步测试法测试RAM存储器地址线1和0-支配故障的示例表(地址线“走步1”)

(上表中加粗的数据表示有错误发生)如果地址线有的存在0-支配故障,有的存在1-支配故障,假设a7恒为1,a5和a4短路0-支配型。这里读00000000地址时,读到的数据不一定是在00000000地址中的数据,但由于走步测试(包括“走步1”和“走步0”测试)过程中如果地址线故障,写入和读出就会是同一个地址,因此并不会影响测试结果,详细的情况可以参考下表六。
表六 本发明的三步测试法测试地址线1和0-支配故障的示例表(地址线“走步1”)


对于地址线“走步0”测试,如下表七所示,以8bit的地址为例,首先假设只存在同一类连线故障,故障模式为a7恒为1,a5和a4短路1-支配型,当出现这类故障时,程序在写入测试数据时会将测试数据写入地址为11111111的空间,最后只需读取11111111地址中的值,判断哪些bit为0就可以知道那些地址线存在此类故障。表七中写完所有的测试数据以后,11111111地址的内容为01001111,说明a7、a5和a4有问题。
表七 本发明的三步测试法测试地址线1-支配故障的示例表(地址线“走步0”)

如果地址线有的存在0-支配故障,有的存在1-支配故障,假设a7恒为1,a5和a4短路0-支配型。这里读11111111地址时,读到的数据不一定是存在11111111地址中,但由于测试时写入和读出是同一个地址,因此并不会影响测试结果。详细的情况可以参考表八。
表八 本发明的三步测试法测试地址线1和0-支配故障的示例表(地址线“走步0”)


实际上对于地址线同时存在各种故障的问题,采取上述两种方法都能定位出故障连线的准确位置,只是实际写入地址可能不是00000000或11111111,但还是只需要读这两个地址的内容进行判断即可,因为读取这两个地址时,读到的实际上是写入的地址中的值。
根据上面的分析,本发明步骤三(针对于FLASH存储器)的流程为BEGIN擦除FLASH空间;用“走步1”的方式向各地址中写入测试数据(测试数据与需要测试的地址线对应的数据位为0,其它位为1);IF FLASH中的0地址空间不为全1;报告地址线测试发现固定电平(可能固定为低也可能固定为高,但知道哪根地址线有问题了,故障就好定位了)的故障,用二进制方式打印该地址空间的内容;ELSE报告地址线“走步1”测试未发现固定电平的故障;END IF用“走步0”的方式向各地址中写入测试数据(测试数据与需要测试的地址线对应的数据位为0,其它位为1);IF FLASH中的最后地址空间不为全1;
报告地址线测试发现固定电平(可能固定为高也可能固定为低,但知道哪根地址线有问题了,故障就好定位了)的故障,用二进制方式打印该地址空间的内容;ELSE报告地址线“走步0”测试未发现固定电平的故障;END IFEND。
注上面的过程是每写一个数,紧接着就读一次存储器的0地址空间或1地址空间,直到所有的地址线都完成走步测试。根据上述流程对装备测试程序进行修改后,在单板上模拟各种地址线故障,都可以根据上报的数据准确定位哪根地址线故障。
实际操作中,关于FLASH外围互连测试时需要根据系统中FLASH的具体应用来对待,需要考虑FLASH的数据总线宽度和地址空间。如某系统中,使用了两片数据宽度为16bit的FLASH并联,数据总线宽度为32bit,地址范围为0xFD000000-0xFD7FFFFF。CPU地址总线A29接2片FLASH的A0,实际用到的地址线为CPU的A[29:9],对应FLASH的A
,共21根地址线,可访问的空间为2M×32bit,正好8M Bytes。进行地址线“走步1”测试时,写数据的起始地址为0xFD000004,读数据的地址为0xFD000000。进行地址线“走步0”测试时,写数据的起始地址为0xFD7FFFF8,读数据的地址为0xFD7FFFFC。测试的起始地址线为CPU的A29(FLASH的A0),循环21次,正好覆盖到21根地址线。判断哪些地址出错的根据就是看0XFD000000和0XFD7FFFFC中读出的32位数据哪些bit为数据“0”。
本发明方法在实际使用时,若存储器数据线的数量少于地址线,就需要将地址线分批次进行测试,使每次测试的地址线的数量小于等于数据线。如有的单板有8M Bytes FLASH,数据线为16位,而地址线共有22根,可访问的空间为4M×16bit,数据线的数量比地址线少,这样就要对地址线分两次进行测试了,首先用上面所描述的方法测试低16位地址线,然后再用同样的方法测试高位的地址线,这样就可以根据读到的数据方便地将故障定位到哪根地址线了。
例如对于地址线“走步1”测试,如下表九所示,以22bit的地址为例,为了简单起见,首先假设只存在同一类连线故障,故障模式为a20、a18、a15a7恒为0,a5和a4短路0-支配型,表九本发明的三步测试法测试地址线0-支配故障的示例表(地址线“走步1”)


说明,如上表所示,共需2次测试,经过第一次测试,在0000000000000000000000地地址单元读到的内容为0111111101001111,其中d4、d5、d7、d15为0,从而可以判断与其对应的a4、a5、a7、a15有故障。经过第二次测试,在0000000000000000000000地地址单元读到的内容为1111111111101011,其中d2、d4为0,从而可以判断与其对应的a18(16+2)、a20(16+4)有故障。这样经过两次测试,即可准确定位地址线的故障。地址线“走步0”的方法与这个处理方式相同,在此不再赘述。
权利要求
1.一种FLASH存储器地址线测试方法,包括下列步骤A)擦除FLASH全部存储空间;B)用“走步1”方法选取FLASH的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)重复步骤B,直到所有的地址线都完成“走步1”测试;D)读取该FLASH第一个地址单元中的数据,根据数据中“0”的排列位置,确定相对应位置的地址线发生故障。
2.如权利要求1所述的FLASH存储器地址线测试方法,其特征在于若数据线的数量比地址线少,则将地址线分批次进行测试,使每次测试的地址线数量小于等于数据线。
3.如权利要求1或2所述的FLASH存储器地址线测试方法,其特征在于所述的地址单元的大小根据存储器的数据线位数确定。
4.一种FLASH存储器地址线测试方法,包括下列步骤A)擦除FLASH全部存储空间;B)用“走步0”方法选取FLASH的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)重复步骤B,直到所有的地址线都完成“走步0”测试;D)读取该FLASH最后一个地址单元中的数据,根据数据中“0”的排列位置,确定相对应位置的地址线发生故障。
5.如权利要求4所述的FLASH存储器地址线测试方法,其特征在于若数据线的数量比地址线少,则将地址线分批次进行测试,使每次测试的地址线数量小于等于数据线。
6.如权利要求4或5所述的FLASH存储器地址线测试方法,其特征在于所述的地址单元的大小根据存储器的数据线位数确定。
7.一种RAM存储器地址线测试方法,包括下列步骤A)将RAM存储器的第一地址单元写上全“1”;B)用“走步1”方法选取RAM的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)读取RAM存储器第一地址单元中的数据,并与上一次记录数据进行“逻辑与”操作,将操作结果保存起来;D)重复步骤B和步骤C,直到所有的地址线都完成“走步1”的测试;E)根据最后结果中“0”的排列位置,确定相对应位置的地址线发生故障。
8.如权利要求7所述的RAM存储器地址线测试方法,其特征在于若数据线的数量比地址线少,则将地址线分批次进行测试,使每次测试的地址线数量小于等于数据线。
9.如权利要求7或8所述的RAM存储器地址线测试方法,其特征在于所述的地址单元的大小根据存储器的数据线位数确定。
10.一种RAM存储器地址线测试方法,包括下列步骤A)将RAM存储器的最后一个地址单元写上全“1”;B)用“走步0”方法选取RAM的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;C)读取RAM存储器最后一个地址单元中的数据,并与上一次记录数据进行“逻辑与”操作,将操作结果保存起来;D)重复步骤B和步骤C,直到所有的地址线都完成“走步0”的测试;E)根据最后结果中“0”的排列位置,确定相对应位置的地址线发生故障。
11.如权利要求10所述的RAM存储器地址线测试方法,其特征在于若数据线的数量比地址线少,则将地址线分批次进行测试,使每次测试的地址线数量小于等于数据线。
12.如权利要求10或11所述的RAM存储器地址线测试方法,其特征在于所述的地址单元的大小根据存储器的数据线位数确定。
全文摘要
本发明有关于存储器地址线的测试方法。其主要是用“走步1”或“走步0”方法选取存储器的地址单元,在地址单元中写入测试数据,所述测试数据与需要测试的地址线相对应的数据位为“0”,其余数据位为“1”;对所有地址线进行走步测试,读取存储器第一地址单元和最后一个地址单元中的数据,根据数据中的“0”比特位来确定相应的地址线故障。
文档编号G11C29/00GK1681048SQ200410031039
公开日2005年10月12日 申请日期2004年4月7日 优先权日2004年4月7日
发明者史韦, 白尤新, 朱星海 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1