专利名称:一种对flash内部单元进行测试的方法
技术领域:
本发明涉及测试技术,尤指一种对FLASH内部单元进行测试的方法。
背景技术:
FLASH器件的故障主要表现为以下形式(1)导线的开路或短路;(2)地址译码器不能正确寻址;(3)多重写入;(4)一个单元的数据受到其他单元的数据或读写操作的影响而发生变化;(5)写后未能恢复,立即进行读出时得不到正确信息;(6)读放大器读出一系列信息x后紧接着读x′时,无正确响应;(7)FLASH不能保持写入的信息。
结合FLASH的基本结构和故障表现形式,可以得出以下故障模型(1)存储单元阵列中的故障①固定逻辑故障(Stuck-at fault)一个单元的逻辑值不随单元的任何行为而改变,也不受其余单元的影响,又称呆滞型故障,它包括固定为1或固定为0两种情形(S-A-1 or S-A-0);②固定开路故障(Stuck-open fault)电路开路导致的故障;③状态转换故障(Transition fault)0->1或1->0的状态转换至少有一个不被正确执行;④数据保持故障(Data-maintaining fault)存储单元无法保持一个逻辑值持续一定的时间;⑤状态耦合故障(Coupling fault)当且仅当单元j处于某一个特定状态y(y{0,1})时,单元i总是为某一个确定值x(x{0,1}),则称单元i耦合于单元j。耦合关系不一定具有对称性,也就说,单元i耦合于单元j,并不一定单元j也耦合于单元I。
⑥多重写入故障(multiple access fault)对单元i写入x(x{0,1})导致单元j也写入了x,则称单元i有多重写入故障。多重写入故障不一定具有对称性。
(2)地址译码电路中的故障①没选中任一存储单元;②选中被选单元,并选中了其他单元。
译码器中的故障可等效为存储单元阵列中的故障。故障①等效于固定开路故障,故障②等效于多重写入故障。
(3)读写逻辑中的故障①输入、输出导线中一位或多位固定逻辑故障;②缓冲器或锁存器中一位或多位固定开路故障;③缓冲器或锁存器中任意两位之间的状态耦合故障。
读写逻辑电路中的故障也可等效为存储单元阵列中的故障。故障①等效于固定逻辑故障,故障②等效于固定开路故障,故障③等效于状态耦合故障。
由以上分析可以知道,对FLASH的测试等同于对FLASH的内部单元测试,而FLASH的内部单元主要包含了以下故障类型固定逻辑故障、固定开路故障、状态转换故障、数据保持故障、状态耦合故障和多重写入故障。而现在普遍采用的FLASH测试方法并不能很好覆盖这些故障类型。
现有的测试方法(一)是这样设计的先擦除,再依次写入01...0101,然后依次读出进行比较;再擦除,再依次写入10...1010,然后依次读出进行比较。这种测试比较简单,能够检测到固定逻辑故障、固定开路故障和数据保持故障、部分状态转换故障。只能覆盖很少的状态耦合故障和多重写入故障。
现有的测试方法(二)是这样的读出FLASH中保存的数据(如果FLASH中没有数据,则任意写满一个数据文件),与期望数据文件比较;擦除FLASH,再将读出的数据取反重新写入FLASH器件中,接着读FLASH中的数据,与期望数据进行比较;擦除FLASH,再将读出的数据取反(也就是恢复到原始的数据)重新写入FLASH器件中,接着读出FLASH中的数据,与期望数据进行比较。这种测试方法也比较简单,并且能够检测到固定逻辑故障、固定开路故障和数据保持故障、部分状态转换故障、部分状态耦合故障和部分多重写入故障。但是漏测情况仍然很多,而且需要进行三遍读操作,两遍写操作,测试时间比较长。
发明内容
本发明提供一种对FLASH内部单元进行测试的方法,以解决现有技术中不能在保证测试效效率的前提下对FLASH的故障进行比较完备测试的问题。
本发明提供一种对FLASH内部单元进行测试的方法,在所述方法中,FLASH内部单元被均匀分为n块,按地址升序依次为B0、B1、...、Bn-1,每一个块的大小为m,该方法包括如下步骤1)整片擦除;2)从B0到Bn-1,对每一块Bi依次进行地址判断、写入模值及判断模值;3)整片擦除;4)从Bn-1到B0,对每一块Bi依次进行地址判断、写入模值及判断模值;以上各步骤中,如果读到的数据与期望值不一致,则报告并记录相关错误信息。
根据本发明的上述方法,也可以先作步骤3)和4),再作步骤1)和2)。
所述步骤2)包括下列步骤对Bi的第1个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;
对Bi的第2个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第m个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值;所述步骤4)包括下列步骤对Bi的第m个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;对Bi的第m-1个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第1个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值。
其中,所述每一个块的大小m远远大于块的个数n。
本发明通过构造上述特定的测试数据,能提高测试的故障覆盖率,特别是提高了对多重写入故障、状态转换故障和基本耦合故障的检测能力。
图1为本发明测试方法的一组测试数据变化示意图。
具体实施例方式
如图1所示,为本发明的一个具体测试数据变化规律图,将需要测试的FLASH一共分为n块,按地址升序依次为第0块、第1块、...、第n-1块,每一个块的大小为m,则执行步骤表示如下1、整片擦除;2、从第0块到第n-1块,依次作下列操作对第0块第1个地址,读是否为111...111;同时写入数字0;再读是否为0;如果读到的数据不是期望值,则报告出错,同时记录出错的地址单元;对第0块第2个地址,读是否为111...111;同时写入数字1;再读是否为1;如果读到的数据不是期望值,则报告出错,同时记录出错的地址单元;对第0块第3个地址,读是否为111...111;同时写入数字2;再读是否为2;如果读到的数据不是期望值,则报告出错,同时记录出错的地址单元;……对第0块的第m个地址,读是否为111...111;同时写入数字m-1;再读是否为m-1,如果读到的数据不是期望值,则报告出错,同时记录出错的地址单元;测试完第0块,则按顺序测试第1块,其测试方法与对第0块的测试完全相同,只是相对应地址单元中写入的数据为在第0块数据的基础上滚动了一次,即第1块中按地址从低到高的顺序,依次写入的数据为从1、2、3......到m-1、0。
根据上述测试方法,完成对n个块的测试,其中每一个块写入的数据都是在前一块数据的基础上滚动一次而得到的数据。
3)测试完毕后,再进行整片擦除。
4)再对该n个块进行一遍逆顺测试,即按从第n-1块开始到第0块结束的顺序进行测试,而在每一块内的读写顺序为从高地址到低地址。
很显然,上述方案中,步骤2)和步骤4)的测试顺序可以进行调换,这样的测试效果是相同的。
这样按照地址的升序和降序都进行了遍历,增加了对状态转换故障、耦合故障和多重写入故障的故障覆盖率。例如一个存储单元的奇数位如果发生不能从1跳变到0的状态转换故障,或者它的偶数位发生不能从0跳变到1的状态转换故障,现有技术中的测试方法(一)都无法检测到。另外,在将01...01或者10...10写入一个存储单元时,如果发生多重写入故障,则这个数字也写入了另外的存储单元中,但是因为测试方法(一)写入各个存储单元的数字是相同的,所以它无法检测多重写入故障的。测试方法(二)能否检测到多重写入故障取决于被写入的多个存储单元原来保存的数据是否相同。如果以前保存的数据就是相同的,也就无法检测到被错误写入的数据,因为写入的是同样的数据,而本发明的测试方法可以检测到多重写入故障。对于基本耦合故障,由于一个单元写入一个数字时,另外一个单元也随之发生了变化,这样的基本耦合故障用现有技术中的测试方法(一)或测试方法(二)都只能检测50%,因为现有技术中的测试方法(一)和测试方法(二)都只是执行了按地址增序的测试过程,这样低端地址单元耦合高端地址单元的故障无法检测到;如果只执行按地址降序的测试过程,也会造成高端地址单元耦合低端地址单元的故障无法检测到。而采用本发明提供的测试方法可以检测到全部基本耦合故障。因此,本发明提供的测试方法对于六类基本故障类型能做到基本全部覆盖。
权利要求
1.一种对FLASH内部单元进行测试的方法,在所述方法中,FLASH内部单元被均匀分为n块,按地址升序依次为B0、B1、...、Bn-1,每一个块的大小为m,其特征在于,所述方法包括如下步骤1)整片擦除;2)从B0到Bn-1,对每一块Bi依次进行地址判断、写入模值及判断模值;3)整片擦除;4)从Bn-1到B0,对每一块Bi依次进行地址判断、写入模值及判断模值;以上各步骤中,如果读到的数据与期望值不一致,则报告并记录相关错误信息。
2.如权利要求1所述的一种对FLASH内部单元进行测试的方法,其特征在于所述步骤2)包括下列步骤对Bi的第1个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;对Bi的第2个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第m个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值;所述步骤4)包括下列步骤对Bi的第m个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;对Bi的第m-1个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第1个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值。
3.如权利要求1或2所述的一种对FLASH内部单元进行测试的方法,其特征在于所述每一个块的大小m远远大于块的个数n。
4.一种对FLASH内部单元进行测试的方法,包括将FLASH内部单元分为n块,按地址升序依次为B0、B1、...、Bn-1,每一个块的大小为m,然后执行下列步骤1)整片擦除;2)从Bn-1到B0,对每一块Bi依次进行地址判断、写入模值及判断模值;3)整片擦除;4)从B0到Bn-1,对每一块Bi依次进行地址判断、写入模值及判断模值;以上各步骤中,如果读到的数据与期望值不一致,则报告并记录相关错误信息。
5.如权利要求4所述的一种对FLASH内部单元进行测试的方法,其特征在于所述步骤2)包括下列步骤对Bi的第m个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;对Bi的第m-1个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第1个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值;所述步骤4)包括下列步骤对Bi的第1个地址,读是否为111...111;同时写入数字di;再读是否为di,数字di为i对m的模值;对Bi的第2个地址,读是否为111...111;同时写入数字di+1;再读是否为di+1,数字di+1为(i+1)对m的模值;……对Bi的第m个地址,读是否为111...111;同时写入数字di+m-1;再读是否为di+m-1,数字di+m-1为(i+m-1)对m的模值。
6.如权利要求4或5所述的一种对FLASH内部单元进行测试的方法,其特征在于所述每一个块的大小m远远大于块的个数n。
全文摘要
一种对FLASH内部单元进行测试的方法,包括将FLASH内部单元均匀分为n块,按地址升序依次为B
文档编号G11C29/00GK1617262SQ200310113628
公开日2005年5月18日 申请日期2003年11月13日 优先权日2003年11月13日
发明者李颖悟, 游志强 申请人:华为技术有限公司