用于嵌入式快闪存储器的内建自测试方法及装置制造方法

文档序号:6766427阅读:186来源:国知局
用于嵌入式快闪存储器的内建自测试方法及装置制造方法
【专利摘要】一种用于嵌入式快闪存储器的内建自测试方法及装置,所述方法包括:第一探查步骤、模拟老化步骤、第二探查步骤,其中,所述第一探查步骤包括:生成原始测试数据;获取测试数据变换规则;根据所述原始测试数据和所述变换规则,生成变换后数据;将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第0行和第1行;所述第二探查步骤包括:分别读取所述闪存模块中nvr阵列的第0行和第1行的数据;基于从第0行和第1行读取的数据,判断所述闪存模块是否通过测试。本发明在对nvr阵列的第0行进行测试的同时,也同步对第1行进行了测试,提高了内建自测试的检测覆盖率,进而也就提高了测试准确率。
【专利说明】用于嵌入式快闪存储器的内建自测试方法及装置
【技术领域】
[0001]本发明涉及嵌入式快闪存储器【技术领域】,特别是涉及一种用于嵌入式快闪存储器的内建自测试方法及装置。
【背景技术】
[0002]嵌入式快闪存储器(又称“嵌入式闪存”,英文:Flash Memory或E-flash)是嵌入式芯片自带(内嵌)的存储器。诸如身份识别卡芯片(SIM卡芯片)、单片机芯片(MCU芯片)或单芯片系统(SOC)等嵌入式芯片中往往会带有嵌入式快闪存储器。
[0003]嵌入式芯片经制造完成后,在出厂前需要先对其质量进行检测,该检测工作可以通过多种方式来完成,例如可以直接测试、用嵌入式CPU进行测试或采用内建自测试技术(MBIST)等。其中,内建自测试是一种可测性设计(DFT)技术,在此技术中测试是通过内建的硬件功能完成的,可以快速而有效地完成上述检测工作。
[0004]嵌入式快闪存储器通常包括nvr阵列(nvr array)和main阵列(main array),其中,nvr阵列用于保存配置信息,main阵列用于供用户实际使用。对嵌入式快闪存储器进行的内建自测试通常是针对其中的nvr阵列。
[0005]内建自测试通常依次包括第一探查步骤(CP1)、模拟老化步骤(又称“烘烤步骤”,BAKE)和第二探查步骤(CP2)。第一探查步骤的工作是:对芯片的嵌入式快闪存储器模块(后简称“闪存模块”)进行写入、读取及擦除操作;模拟老化步骤的工作是:对闪存模块进行烘烤,以模拟出闪存模块经过一段时间使用后的状况;第二探查步骤的工作是:从闪存模块中读取数据,并与第一探查步骤中写入的数据进行比对,判断该芯片是否因老化的原因而丢失数据。
[0006]然而,现有技术在对芯片的闪存模块进行内建自测试时,仅仅只在其部分的存储空间内写入数据。以nvr阵列为例,nvr阵列通常包括两行(row),分别为第O行(rowO)和第I行(rowl)。现有技术在第一探查步骤中仅在第O行中写入测试数据,而不会在第I行中写入数据,此后,在第二探查步骤中,也仅仅只读取第O行中的数据并比对。
[0007]由此可见,现有技术中内建自测试的方法其检测覆盖率较低,从而测试准确率也较低。
[0008]由于芯片的闪存模块在进行内建自测试时(采用MBIST M0DE),其时序/电压/频率的设置与用户实际使用时(采用CPU MODE)所采用的有所不同,因此,内建自测试并不能保证所有的质量问题都能在测试过程中被发现,产品在通过了内建自测试之后,仍有可能在用户实际使用时出现质量问题。因此,如何提高内建自测试的检测覆盖率以及测试准确率,是一个亟需解决的问题。

【发明内容】

[0009]本发明解决的是现有技术中用于嵌入式快闪存储器的内建自测试方法测试准确率较低的技术问题。[0010]为了解决上述问题,本发明实施例提供一种用于嵌入式快闪存储器的内建自测试方法,包括:第一探查步骤、模拟老化步骤、第二探查步骤,所述第一探查步骤包括:
[0011]生成原始测试数据;
[0012]获取测试数据变换规则;
[0013]根据所述原始测试数据和所述变换规则,生成变换后数据;
[0014]将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行;
[0015]所述第二探查步骤包括:
[0016]分别读取所述闪存模块中nvr阵列的第O行和第I行的数据;
[0017]基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
[0018]可选的,所述变换规则具体为:
[0019]变换后数据=Oxff-原始测试数据
[0020]其中,Oxff为全I序列。
[0021]可选的,所述基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试具体是:
[0022]将从第O行和第I行读取的数据相加;
[0023]若相加后结果为OxfT,则测试通过,若相加后结果为OxfT以外的任何值,则测试未通过。
[0024]可选的,所述基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试具体是:
[0025]将写入第O行的数据与从第O行读取的数据进行比对,将写入第I行的数据与从第I行读取的数据进行比对;
[0026]若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
[0027]可选的,所述nvr阵列为nvrl阵列或nvr2阵列,所述nvr阵列包括第O行和第I行,所述第O行和所述第I行的容量均为256字节或128字节。
[0028]为了解决上述问题,本发明实施例还提供一种用于嵌入式快闪存储器的内建自测试装置,包括:第一探查模块、模拟老化模块、第二探查模块,所述第一探查模块包括:第一数据生成子模块、变换规则获取子模块、第二数据生成子模块、数据写入子模块;所述第二探查模块包括:数据读取子模块、判断子模块,其中:
[0029]所述第一数据生成子模块,用于生成原始测试数据;
[0030]所述变换规则获取子模块,用于获取变换规则;
[0031]所述第二数据生成子模块,用于在所述第一数据生成子模块和所述变换规则获取子模块执行操作之后,根据所述原始测试数据和所述变换规则,生成变换后数据;
[0032]所述数据写入子模块,用于在所述第二数据生成子模块执行操作之后,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行;
[0033]所述数据读取子模块,用于在所述模拟老化模块执行操作之后,分别读取所述闪存模块中nvr阵列的第O行和第I行的数据;
[0034]所述判断子模块,用于在所述数据读取子模块执行操作之后,基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
[0035]可选的,所述变换规则获取子模块所获取的变换规则具体为:
[0036]变换后数据=Oxff-原始测试数据
[0037]其中,Oxff为全I序列。
[0038]可选的,所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试:
[0039]将从第O行和第I行读取的数据相加;
[0040]若相加后结果为OxfT,则测试通过,若相加后结果为OxfT以外的任何值,则测试未通过。
[0041]可选的,所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试:
[0042]将写入第O行的数据与从第O行读取的数据进行比对,将写入第I行的数据与从第I行读取的数据进行比对;
[0043]若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
[0044]可选的,所述nvr阵列为nvrl阵列或nvr2阵列,所述nvr阵列包括第O行和第I行,所述第O行和所述第I行的容量均为256字节或128字节。
[0045]与现有技术相比,本发明的技术方案具有以下有益效果:
[0046]在第一探查步骤中将原始测试数据按照一定的变换规则进行变换,以获得变换后数据,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行,在第二探查步骤中基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试,从而在对nvr阵列的第O行进行测试的同时,也同步对第I行进行了测试,提高了内建自测试的检测覆盖率,进而也就提高了测试准确率。
[0047]进一步地,以取反码作为变换规则,无需将读取的数据与写入的数据进行比对即可得出判断出所述闪存模块是否通过测试,也不必保存写入的数据,只需根据读取的数据即可完成判断,简化了算法,提高了测试的效率。
【专利附图】

【附图说明】
[0048]图1是本发明实施例中对芯片的闪存模块进行内建自测试示意图;
[0049]图2是本发明实施例一中用于嵌入式快闪存储器的内建自测试方法流程图;
[0050]图3是本发明实施例二中用于嵌入式快闪存储器的内建自测试装置结构框图。
【具体实施方式】
[0051]正如【背景技术】部分所分析的,现有技术中用于嵌入式快闪存储器的内建自测试方法其测试准确率较低,产品在通过了内建自测试之后,仍有可能在用户实际使用时出现质量问题。
[0052]为此,本发明提供了一种用于嵌入式快闪存储器的内建自测试方法。在第一探查步骤中将原始测试数据按照一定的变换规则进行变换,以获得变换后数据,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行,在第二探查步骤中基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试,从而在对nvr阵列的第O行进行测试的同时,也同步对第I行进行了测试,提高了内建自测试的检测覆盖率,进而也就提高了测试准确率。
[0053]如图1所示,在对芯片的闪存模块进行内建自测试时,计算机101连接烧录器102,烧录器102连接待测的闪存模块103。操作者通过计算机101来控制烧录器102,从而实现对闪存模块103的写入、擦除、读取等操作。可以理解的是,每次测试不限于单个闪存模块103,所述计算机101可以同时控制多个烧录器102,同时对多个闪存模块103进行相关操作。此外,可以通过程序来取代操作者,从而实现测试的自动化。
[0054]为使本领域技术人员更好地理解和实现本发明,以下参照附图,通过具体实施例进行详细说明。
[0055]实施例一
[0056]参照图2所示的用于嵌入式快闪存储器的内建自测试方法流程图,以下通过具体步骤进行详细说明:
[0057]首先,对待测的闪存模块进行第一探查步骤,所述第一探查步骤包括:
[0058]S211,生成原始测试数据。
[0059]所述原始测试数据用于在后续的步骤中写入所述闪存模块中。
[0060]所述原始测试数据可以是任意数据。在具体实施中,所述原始测试数据可以包括与所述闪存模块相关联的配置数据。所述配置数据可以取自参数调整信息(trimminginformation)、追踪信息(die tracing information)、固件信息(firmware information)中的一种或几种,例如用于标识闪存模块所属芯片的序列号等等。
[0061]所述闪存模块可以包括nvr阵列(nvr array)和main阵列(main array),其中,nvr阵列用于保存配置信息,main阵列用于供用户实际使用。本实施中内建自测试针对的是其中的nvr阵列。所述nvr阵列具体可以是nvrl阵列或nvr2阵列。
[0062]所述nvr阵列包括两行,分别为第O行(rowO)和第I行(rowl),每行的容量可以是256字节或128字节,当然也可以是其它合适的容量。
[0063]配置数据所占用的字节数可以小于或等于每行的容量,以容量为每行256字节的nvr阵列为例,写入的数据所占用的字节数只需要满足任意小于等于256字节即可,例如可以50字节或100字节等。所占用的字节既可以是连续的,也可以是离散的,将配置数据写入哪些字节,可以由操作者通过计算机来控制。
[0064]所述原始测试数据的长度与所述nvr阵列中每行的容量相等。当配置数据所占用的字节数小于每行的容量时,可以默认其余字节的数据为1,当然,也可以默认其余字节的数据为O。
[0065]S212,获取测试数据变换规则。
[0066]所述变换规则可以是任意预设的变换规则,预先存储在计算机内。
[0067]在具体实施中,所述变换规则可以是取反码,具体是:变换后数据=Oxff-原始测试数据,即采用全I序列减去原始测试数据来得到变换后数据,以下通过具体的实例对此作进一步说明:
[0068]以字节为单位进行说明,每个字节包括8个比特位。例如:若原始测试数据为01100010,则对该原始测试数据取反码的结果为:11111111-01100010=10011101,变换后数据即为:10011101。又如:若原始测试数据为10100001,则对该原始测试数据取反码的结果为:11111111-10100001=01011110,变换后数据即为:01011110o[0069]当“取反码”的概念存在多种定义时,本发明所涉及的“取反码”,其含义以以上定义为准,即:变换后数据=OxfT-原始测试数据。
[0070]可以理解的是,所述变换规则也可以其它的变换规则。例如可以是奇偶变换,即改变原始测试数据中的奇数位数字,而偶数位数字保持不变,反之亦可。又如变换规则还可以采用循环冗余校验(CRC校验)中所生成的多项式。
[0071]写入的数据可以是多个字节,各个字节可以采用相同的变换规则,当然,也可以采用不同的变换规则。
[0072]可以理解的是,步骤S211与步骤S212之间不存在必然的先后的关系。
[0073]S213,根据所述原始测试数据和所述变换规则,生成变换后数据。
[0074]所述变换后数据用于在后续的步骤中写入所述闪存模块中。
[0075]S214,将所述原始测试数据和所述变换后数据分别写入所述闪存模块中nvr阵列的第O行和第I行。
[0076]本实施例中,将所述原始测试数据写入nvr阵列的第O行,将所述变换后数据写入nvr阵列的第I行。可以理解的是,也可以将所述原始测试数据写入nvr阵列的第I行,将所述变换后数据写入nvr阵列的第O行。
[0077]可以理解的是,所述原始测试数据和所述变换后数据既可以同时写入所述闪存模块中nvr阵列的第O行和第I行,也可以在不同的步骤中写入。例如:可以在步骤S211之后先将所述原始测试数据写入闪存模块,而后在步骤S213之后再将所述变换后数据写入闪存模块。
[0078]而后,对待测的闪存模块进行模拟老化步骤,即:
[0079]S221,对所述闪存模块进行模拟老化步骤。
[0080]所述模拟老化步骤具体是:对所述闪存模块进行预定时长的烘烤,以模拟出闪存模块经过一段时间使用后的状况。
[0081]由于闪存模块在实际使用的过程中温度会升高,为了测试闪存模块是否会因为温度的升高而导致数据丢失,因而设置了此步骤。
[0082]再后,对待测的闪存模块进行第二探查步骤,所述第二探查步骤包括:
[0083]S231,分别读取所述闪存模块中nvr阵列的第O行和第I行的数据。
[0084]读取的数据用于在后续的步骤中判断所述闪存模块是否通过测试。
[0085]为了描述方便,将从第O行中读取的数据称为“第O行数据”,将从第I行中读取的数据称为“第I行数据”。
[0086]S232,基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
[0087]可以有多种方式判断所述闪存模块是否通过测试,例如:
[0088]可以将步骤S214中写入第O行的数据与步骤S231中从第O行读取的数据进行比对,将步骤S214中写入第I行的数据与步骤S231中从第I行读取的数据进行比对。若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
[0089]通过上述方案可以看出,在第一探查步骤中将原始测试数据按照一定的变换规则进行变换,以获得变换后数据,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行,在第二探查步骤中基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试,从而在对nvr阵列的第O行进行测试的同时,也同步对第I行进行了测试,提高了内建自测试的检测覆盖率,进而也就提高了测试准确率。
[0090]在所述变换规则为:变换后数据=OxfT-原始测试数据的情况下(取反码),可以通过以下方式来判断所述闪存模块是否通过测试,具体是:
[0091]将步骤231中从第O行读取的数据与从第I行读取的数据相加,即:相加后结果=第O行数据+第I行数据。由于数据写入时:变换后数据=Oxff-原始测试数据,因此,此时只需要判断相加后结果是否为Oxff即可(其中,Oxff为8比特位的全I序列,S卩11111111)。若相加后结果=Oxff,则测试通过;
[0092]若相加后结果为OxfT以外的任何值,则测试未通过。
[0093]通过上述方案可以看出,以取反码作为变换规则,无需将读取的数据与写入的数据进行比对即可得出判断出所述闪存模块是否通过测试,也不必保存写入的数据,只需根据读取的数据即可完成判断,简化了算法,提高了测试的效率。
[0094]实施例二
[0095]参照图3所示的用于嵌入式快闪存储器的内建自测试装置结构框图,所述装置包括:第一探查模块310、模拟老化模块320、第二探查模块330,所述第一探查模块310包括:第一数据生成子模块311、变换规则获取子模块312、第二数据生成子模块313、数据写入子模块314 ;所述第二探查模块包括:数据读取子模块331、判断子模块332,其中:
[0096]所述第一数据生成子模块311,用于生成原始测试数据;
[0097]所述变换规则获取子模块312,用于获取变换规则;
[0098]所述第二数据生成子模块313,用于在所述第一数据生成子模块311和所述变换规则获取子模块312执行操作之后,根据所述原始测试数据和所述变换规则,生成变换后数据;
[0099]所述数据写入子模块314,用于在所述第二数据生成子模块313执行操作之后,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行;
[0100]所述数据读取子模块331,用于在所述模拟老化模块320执行操作之后,分别读取所述闪存模块中nvr阵列的第O行和第I行的数据;
[0101]所述判断子模块332,用于在所述数据读取子模块331执行操作之后,基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
[0102]本实施例中,在第一探查步骤中将原始测试数据按照一定的变换规则进行变换,以获得变换后数据,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行,在第二探查步骤中基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试,从而在对nvr阵列的第O行进行测试的同时,也同步对第I行进行了测试,提高了内建自测试的检测覆盖率,进而也就提高了测试准确率。
[0103]在具体实施中,所述变换规则获取子模块所获取的变换规则具体可以是:
[0104]变换后数据=Oxff-原始测试数据
[0105]其中,Oxff为全I序列。
[0106]所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试:
[0107]将从第O行和第I行读取的数据相加;
[0108]若相加后结果为OxfT,则测试通过,若相加后结果为OxfT以外的任何值,则测试未通过。[0109]从上述方案可以看出,以取反码作为变换规则,无需将读取的数据与写入的数据进行比对即可得出判断出所述闪存模块是否通过测试,也不必保存写入的数据,只需根据读取的数据即可完成判断,简化了算法,提高了测试的效率。
[0110]在具体实施中,所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试:
[0111]将写入第O行的数据与从第O行读取的数据进行比对,将写入第I行的数据与从第I行读取的数据进行比对;
[0112]若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
[0113]所述nvr阵列为nvrl阵列或nvr2阵列,所述nvr阵列包括第O行和第I行,所述第O行和所述第I行的容量均为256字节或128字节。
[0114]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:R0M、RAM、磁盘或光盘等。
[0115]虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
【权利要求】
1.一种用于嵌入式快闪存储器的内建自测试方法,包括:第一探查步骤、模拟老化步骤、第二探查步骤,其特征在于,所述第一探查步骤包括: 生成原始测试数据; 获取测试数据变换规则; 根据所述原始测试数据和所述变换规则,生成变换后数据; 将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行; 所述第二探查步骤包括: 分别读取所述闪存模块中nvr阵列的第O行和第I行的数据; 基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
2.如权利要求1所述的用于嵌入式快闪存储器的内建自测试方法,其特征在于,所述变换规则具体为: 变换后数据=Oxff-原始测试数据 其中,Oxff为全I序列。
3.如权利要求1或2所述的用于嵌入式快闪存储器的内建自测试方法,其特征在于,所述基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试具体是: 将从第O行和第I行读取的数据相加; 若相加后结果为OxfT,则测试通过,若相加后结果为OxfT以外的任何值,则测试未通过。
4.如权利要求1所述的用于嵌入式快闪存储器的内建自测试方法,其特征在于,所述基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试具体是: 将写入第O行的数据与从第O行读取的数据进行比对,将写入第I行的数据与从第I行读取的数据进行比对; 若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
5.如权利要求1所述的用于嵌入式快闪存储器的内建自测试方法,其特征在于,所述nvr阵列为nvrl阵列或nvr2阵列,所述nvr阵列包括第O行和第I行,所述第O行和所述第I行的容量均为256字节或128字节。
6.一种用于嵌入式快闪存储器的内建自测试装置,包括:第一探查模块、模拟老化模块、第二探查模块,其特征在于,所述第一探查模块包括:第一数据生成子模块、变换规则获取子模块、第二数据生成子模块、数据写入子模块;所述第二探查模块包括:数据读取子模块、判断子模块,其中: 所述第一数据生成子模块,用于生成原始测试数据; 所述变换规则获取子模块,用于获取变换规则; 所述第二数据生成子模块,用于在所述第一数据生成子模块和所述变换规则获取子模块执行操作之后,根据所述原始测试数据和所述变换规则,生成变换后数据; 所述数据写入子模块,用于在所述第二数据生成子模块执行操作之后,将所述原始测试数据和所述变换后数据分别写入闪存模块中nvr阵列的第O行和第I行; 所述数据读取子模块,用于在所述模拟老化模块执行操作之后,分别读取所述闪存模块中nvr阵列的第O行和第I行的数据; 所述判断子模块,用于在所述数据读取子模块执行操作之后,基于从第O行和第I行读取的数据,判断所述闪存模块是否通过测试。
7.如权利要求6所述的用于嵌入式快闪存储器的内建自测试装置,其特征在于,所述变换规则获取子模块所获取的变换规则具体为: 变换后数据=Oxff-原始测试数据 其中,Oxff为全1序列。
8.如权利要求6或7所述的用于嵌入式快闪存储器的内建自测试装置,其特征在于,所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试: 将从第O行和第I行读取的数据相加; 若相加后结果为OxfT,则测试通过,若相加后结果为OxfT以外的任何值,则测试未通过。
9.如权利要求6所述的用于嵌入式快闪存储器的内建自测试装置,其特征在于,所述判断子模块具体通过以下方式来判断所述闪存模块是否通过测试: 将写入第O行的数据与从第O行读取的数据进行比对,将写入第I行的数据与从第I行读取的数据进行比对; 若两次比对结果均显示相同,则测试通过,若两次比对结果中任意一次显示不同,则测试未通过。
10.如权利要求6所述的用于嵌入式快闪存储器的内建自测试装置,其特征在于,所述nvr阵列为nvrl阵列或nvr2阵列,所述nvr阵列包括第O行和第I行,所述第O行和所述第I行的容量均为256字节或128字节。
【文档编号】G11C29/12GK103839592SQ201410078732
【公开日】2014年6月4日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】任栋梁, 钱亮 申请人:上海华虹宏力半导体制造有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1