CN120690266A - Mbist执行方法和mbist电路系统 - Google Patents
Mbist执行方法和mbist电路系统Info
- Publication number
- CN120690266A CN120690266A CN202410338848.9A CN202410338848A CN120690266A CN 120690266 A CN120690266 A CN 120690266A CN 202410338848 A CN202410338848 A CN 202410338848A CN 120690266 A CN120690266 A CN 120690266A
- Authority
- CN
- China
- Prior art keywords
- memory
- column
- data
- row
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种MBIST执行方法和MBIST电路系统,用于对存储器进行测试,其中,根据存储器内最小存储单元的行列信息生成行列排布的多个存储单元并提供测试数据,按照设定顺序执行多次检测,所述检测包括将测试数据中的一组互反的二进制数据连续两次写入同一行或列的多个存储单元,并读取各存储单元的实际数据,比较各存储单元后写入的二进制数据与读取的实际数据是否一致并输出比较结果。不仅可以检测存储元件的稳定失效状态,还可以检测在快速改变存储数据时存储元件的非稳定失效状态,具有较高的实时性和准确性,并且,能够检测每个测试地址的存储单元在快速改变存储数据时对邻近存储单元内的存储元件的影响,使得对存储器的检测更加全面。
Description
技术领域
本发明涉及电路技术领域,尤其涉及一种MBIST执行方法和一种MBIST电路系统。
背景技术
内建自测试(build-in-selftest,BIST)技术通过在芯片的设计中加入一些额外的自测试电路,测试时只需要从外部施加必要的控制信号,通过芯片内建的自测试硬件和软件,检查被测电路的缺陷或故障。
存储器内建自测试(MemoryBIST,即MBIST)用于存储器测试,例如,为了保证MCU内的闪存(flash)和静态随机存取存储器(SRAM)存储功能的正确性,常采用机台MBIST测试进行检测。
现有技术在执行存储器内建自测试时,读写数据的方式通常是:每写一个地址(所述一个地址为寻址例如8bit数据的逻辑地址)的数据读一个地址的数据、或者写完所有地址的数据后再读取所有数据。这种方式在写数据时,存储器内部的存储元件(通常包括MOS晶体管)为稳定状态,所检测出的失效地址对应的存储元件在写数据时即为稳定失效状态,但是,在实际使用中,同一地址存储的数据常会快速改变,相应的存储元件快速切换(如MOS晶体管在导通和关断之间快速切换),处于非稳定状态。这种非稳定状态可能会导致数据写入错误,且对位置邻近的存储元件会产生电磁干扰,导致被写入数据的地址对应的存储元件及邻近存储元件出现非稳定失效状态,但上述现有读写数据的方式实时性较差,不能准确检测快速改变存储数据时被写入数据的地址所对应的存储元件的非稳定失效状态以及对邻近存储元件的影响。
发明内容
为了检测存储器内的存储元件是否处于稳定或不稳定的失效状态,还检测存储元件在快速改变存储数据时对邻近存储元件的影响,提高执行存储器内建自测试(MBIST)的实时性和准确性,本发明提供一种MBIST执行方法和一种MBIST电路系统。
一方面,本发明提供一种MBIST执行方法,用于对存储器进行测试,所述MBIST执行方法包括:
获取所述存储器内最小存储单元的行列信息;
根据所述行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据;以及
对行列排布的多个所述存储单元按照设定顺序执行多次检测,所述检测针对同一行或同一列的多个所述存储单元进行测试;
其中,每次所述检测包括:
进行写操作,将所述测试数据中的一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元;进行读操作,读取所述同一行或同一列的多个所述存储单元的实际数据;进行比较操作,比较后写入的所述二进制数据与读取的所述实际数据是否一致;输出相应的比较结果。
可选地,所述设定顺序为逐行升序、逐列升序、逐行降序以及逐列降序中的一种或者两种以上的组合。
可选地,所述检测针对同一行或同一列的部分数量或全部数量的所述存储单元进行测试。
可选地,所述测试数据包括多组互反的二进制数据;每次所述检测包括:针对所述同一行或同一列的多个所述存储单元,分别选择各组所述互反的二进制数据执行包括所述写操作、所述读操作、所述比较操作并输出相应的比较结果的过程。
可选地,所述测试数据包括先全0再全1、先全1再全0、先1和0交替再0和1交替、以及先0和1交替再1和0交替中的至少一组。
可选地,每个所述测试地址包括一主控单元分配的k个逻辑地址,每个所述逻辑地址对应8个所述最小存储单元,k为大于1的整数。
可选地,所述连续两次写入所述同一行或同一列的多个所述存储单元的每一次包括连续写m个或n个所述测试地址;其中根据所述行列信息生成行列排布的多个所述存储单元时,同一行所述存储单元由连接相同字线的m*k*8个所述最小存储单元形成,同一列所述存储单元由连接相同位线的n*k*8个所述最小存储单元形成,m和n为大于1的整数。
可选地,所述检测包括:当所述存储单元后写入的所述二进制数据与读取的所述实际数据不一致时,所述比较结果包括所述存储单元对应的失效地址、当前测试对应的失效数据以及失效类型中的至少一项,所述失效类型根据当前测试的行或列以及测试数据定义。
一方面,本发明提供一种MBIST电路系统,用于对存储器进行测试,所述MBIST电路系统包括:
算法生成模块,配置为根据所述存储器内最小存储单元的行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据;
数据读取模块,配置为在对行列排布的多个所述存储单元按照设定顺序执行多次检测且所述检测针对同一行或同一列的多个所述存储单元进行测试时,当将一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元后,读取所述存储单元的实际数据;
数据比较模块,配置为比较所述同一行或同一列的多个所述存储单元中,各所述存储单元后写入的所述二进制数据与读取的所述实际数据是否一致;以及
结果输出模块,配置为输出所述数据比较模块的比较结果。
可选地,所述MBIST电路系统还包括:
行列获取模块,配置为获取所述存储器内所述最小存储单元的行列信息;其中,所述行列信息包括所述存储器内每行和/或每列的所述最小存储单元的数量,以供所述算法生成模块决定所述检测针对的所述同一行或同一列的所述存储单元的数量及写入所述存储单元的所述二进制数据的位数,所述存储器内所述存储单元的数量等于所述测试地址的数量。
可选地,每个所述测试地址包括k个算法生成模块分配的逻辑地址,每个所述逻辑地址对应8个所述最小存储单元,k为大于等于1的整数。
可选地,所述存储器为片上系统中的存储器。
可选地,写入所述存储单元的所述二进制数据的位数为所述片上系统的主控单元与所述存储器之间的总线位宽。
本发明提供的MBIST执行方法和MBIST电路系统用于对存储器进行测试,其中,根据所述存储器内最小存储单元的行列信息生成行列排布的多个存储单元并提供测试数据,并对行列排布的多个所述存储单元按照设定顺序执行多次检测,所述检测针对同一行或同一列的多个所述存储单元进行测试,每次所述检测包括将所述测试数据中的一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元,并读取所述存储单元的实际数据,比较各所述存储单元后写入的所述二进制数据与读取的所述实际数据是否一致并输出比较结果,具有如下技术效果:
一方面,根据所述比较结果,可以检测出相应存储单元的性能是否正常,从而检测内部存储元件是否失效,并且,在进行上述写操作时,由于所述同一行或同一列的多个所述存储单元内的存储元件发生快速切换,不仅可以检测存储元件的稳定失效状态,还可以检测在快速改变存储数据时存储元件的非稳定失效状态,具有较高的实时性和准确性;
另一方面,所述检测针对同一行或同一列的多个所述存储单元进行测试,相较于逐个地址进行写入和读出,效率更高,而且能够检测每个测试地址的存储单元在快速改变存储数据(内部存储元件发生快速切换)时对邻近存储单元内的存储元件的影响,使得对存储器的检测更加全面。
附图说明
图1A和图1B为存储器内最小存储单元的两种示例性电路结构。
图2是本发明实施例的MBIST执行方法的示意图。
图3是本发明一实施例中存储单元的排布示意图。
图4是根据本发明一实施例MBIST执行方法对存储器的各行各列存储单元进行检测的流程图。
图5是本发明一实施例中存储器与MBIST电路系统的示意图。
具体实施方式
以下结合附图和具体实施例对本发明的MBIST执行方法和MBIST电路系统作进一步详细说明。根据下面的说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
存储器的数据写入功能通常通过改变内部存储元件的状态来实现,其最小存储单元(存储1bit数据)的电路通常包括MOS晶体管,通过切换MOS晶体管的状态来实现数据的存储。图1A和图1B为存储器内最小存储单元的两种示例性电路结构。如图1A所示,可选地,所述存储器为闪存,其中最小存储单元(memory cell)采用一浮栅型MOSFET,该浮栅型MOSFET的栅极连接至字线(WL,word line),一个源/漏端连接至位线(BL,bit line),另一个源/漏端接地(GND),通过所述字线和所述位线可以控制该浮栅型MOSFET导通和关断,实现数据存储。如图1B所示,可选地,所述存储器还可以为SRAM(静态随机存储器),其中最小存储单元(存储1bit数据)通常包括两个上拉(PU)晶体管、两个下拉(PD)晶体管以及两个传送栅(PG)晶体管,其中,每个PU晶体管与对应的一个PD晶体管的栅极连接在一起,形成反相器,两个反相器形成互锁结构,该最小存储单元连接电源电压(Vdd)和地(GND),且通过字线(WL)和位线(BL和BLB)控制各晶体管导通和关断,实现数据存储。
在实际使用过程中,存储器在同一地址存储的数据常需快速改变,例如在某一个地址中存储的变量持续变化或者数据信息持续更新。同一地址存储数据的快速改变对应于相应地址对应的内部存储元件的状态发生快速切换。这里的“同一地址”可以是寻址例如8bit数据的逻辑地址(logicaladdress),也可以是寻址例如单bit数据的位地址(bitaddress),本发明在此不做限制。
研究发现,MOS晶体管在导通和关断之间快速切换时,一方面会增加开关损耗,激发晶体管损伤,进而使得MOS晶体管处于非稳定状态,另一方面会产生电磁干扰,可能会导致周围其它MOS晶体管不能正常工作,可见,在快速改变存储器同一地址的写入数据时,不仅该地址对应的存储元件可能出现非稳定失效状态,且会对位置邻近的其它存储元件造成影响,导致邻近存储元件所存储数据出现问题。然而,如背景技术所述,现有MBIST技术的读写数据方式实时性较差,不能准确检测快速改变存储数据时被写入数据的地址所对应的存储元件的非稳定失效状态以及对邻近存储元件的影响。
本发明实施例涉及一种MBIST执行方法和一种MBIST电路系统,相较于现有MBIST技术,不仅可以检测存储器内被写入数据的存储元件的稳定失效状态,还可以检测在快速改变存储数据时的非稳定失效状态以及在快速改变存储数据时对邻近存储元件的影响,具有较高的实时性和准确性,检测更全面。
以下首先介绍所述MBIST执行方法,所述MBIST执行方法用于对存储器进行测试。所述存储器可以是闪存(如nandFlash或norFlash)、SRAM、DRAM或其它需要进行存储器内建自测试的存储装置。
参照图2,根据本发明实施例的MBIST执行方法,执行步骤S1,获取所述存储器(即要检测的存储器)内最小存储单元的行列信息。
所述存储器可包括行列分布的多个最小存储单元,每个所述最小存储单元用于存储1bit数据。所述行列信息例如包括所述存储器内最小存储单元的行列数、以及每行或每列的所述最小存储单元的数量,以便于结合所述行列信息设置测试算法,例如可利用所述行列信息确定后续每次检测针对的同一行或同一列的存储单元的数量及写入所述存储单元的二进制数据的位数。
参照图2,接着,执行步骤S2,根据所述行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据。
本实施例中,利用所述存储器中最小存储单元的行列信息,根据测试地址对所述最小存储单元进行分配,形成行列排布的多个所述存储单元。例如,在存储器中,同一行最小存储单元连接同一条字线WL,同一列最小存储单元连接同一条位线BL,在步骤S2,根据所述行列信息生成行列排布的多个所述存储单元时,同一行所述存储单元由连接相同字线WL的多个所述最小存储单元形成,同一列所述存储单元由连接相同字线BL的多个所述最小存储单元形成。
本发明的每个所述存储单元对应一个测试地址,即,每个存储单元是由一个测试地址来寻址的。从而可以通过相应的测试地址向相应的存储单元写入数据,即所述存储器内所述存储单元的数量等于所述测试地址的数量。作为示例,通过步骤S2,生成n行m列的存储单元阵列,m和n为大于1的整数。每个所述测试地址可包括一主控单元分配的k个逻辑地址(k为大于1的整数),每个所述逻辑地址对应8个所述最小存储单元,即每个所述存储单元包含8k个所述最小存储单元,例如对应于k=2,4或8,每个所述存储单元写入诸如16bit、32bit或64bit的二进制数据。同一行所述存储单元由连接相同字线WL的m*k*8个所述最小存储单元形成,同一列所述存储单元由连接相同位线BL的n*k*8个所述最小存储单元形成。在一实施例中,形成同一行m个存储单元的最小存储单元连接同一条字线WL,形成同一列n个存储单元的最小存储单元连接同一条或相邻若干条(例如8条)位线BL。所述“主控单元”具有地址分配功能,具体可以是用于实现所述MBIST执行方法的MBIST电路系统,也可以是与MBIST电路系统连接的控制器。作为示例,所述存储器为片上系统(如MCU)中的存储器,如闪存或者SRAM,每个所述存储单元写入的二进制数据的位数,也就是一个测试地址寻址的最小存储单元的个数(即位数)为所述片上系统的主控单元与所述存储器之间的总线位宽(例如为32bit)。
所述存储器内的逻辑地址的排布例如逐行连续,从而,对于同一行上的各所述存储单元,相应测试地址所含的逻辑地址沿行方向递增,对于同一列上的各所述存储单元,相应测试地址所含的逻辑地址沿列方向为“初始地址+偏移量”变化。图3是本发明一实施例中存储单元的排布示意图。参照图3,作为示例,U1~U16各代表一个所述存储单元,这16个存储单元排布为四行四列(如图2所示的行L1~L4和列C1~C4,即m=n=4)。每个所述存储单元例如存放一个整字(32bit)数据,图3所示的存储单元U1对应的测试地址为0x00000000-0x00000003(包括四个8bit的逻辑地址),存储单元U2对应的测试地址为0x00000004-0x00000007,依此类推,存储单元U16对应的测试地址为0x0000003C-0x0000003F。在另一些实施例中,每个存储单元用于存放半字(16bit)数据或双字(64bit)数据。
步骤S2还提供测试数据,所述测试数据包含至少一组互反的二进制数据。所述一组互反的二进制数据包括要写入相应行或相应列上多个存储单元的两个二进制数据,且该两个二进制数据相反,如全0和全1。所述测试数据例如包括多组互反的二进制数据。示例性地,所述测试数据包括先全0再全1(记为测试数据a)、先全1再全0(记为测试数据b)、先1和0交替再0和1交替(记为测试数据c)、以及先0和1交替再1和0交替(记为测试数据d)中的至少一种。此处示例的测试数据a、测试数据b、测试数据c及测试数据d中的每个代表一组互反的二进制数据。所述测试数据a包括后续步骤中要先写入指定测试地址(即指定的所述存储单元,下同)的0x00000000和要后写入的0xFFFFFFFF,所述测试数据b包括后续步骤中要先写入指定测试地址的0xFFFFFFFF和要后写入的0x00000000,所述测试数据c包括后续步骤中要先写入指定测试地址的0x55555555和要后写入的0xAAAAAAAA,所述测试数据d包括后续步骤中要先写入指定测试地址的0xAAAAAAAA和要后写入的0x55555555,其中,0x00000000=00000000000000000000000000000000bit,0xFFFFFFFF=111111111111111111111111111111111bit,0x55555555=01010101010101010101010101010101bit,0xAAAAAAAA=10101010101010101010101010101010bit。
参照图2,根据本发明实施例的MBIST执行方法,执行步骤S3,对行列排布的多个所述存储单元按照设定顺序执行多次检测,所述检测针对同一行或同一列的多个所述存储单元进行测试。具体地,所述检测可以针对同一行或同一列的部分数量或全部数量的所述存储单元进行测试。
所述设定顺序根据存储单元的排布具体设置,根据所述设定顺序,例如使每个所述存储单元均被测试。可选地,所述设定顺序包括逐行升序、逐列升序、逐行降序以及逐列降序中的一种或者两种以上的组合。根据所述设定顺序,在对同一行或同一列的多个存储单元进行测试之后,进行下一次检测,该下一次检测针对的可以是同一行或同一列上剩余的多个所述存储单元,也可以是下一行或者下一列上的多个所述存储单元。
单次所述检测具体包括如下过程:进行写操作,将所述测试数据中的一组互反的二进制数据连续两次写入同一行或同一列的多个所述存储单元;进行读操作,读取所述同一行或同一列的多个所述存储单元的实际数据;进行比较操作,比较后写入的所述二进制数据与读取的所述实际数据是否一致;输出相应的比较结果。当所述测试数据包括多组互反的二进制数据时,每次所述检测包括:针对所述同一行或同一列的多个所述存储单元,分别选择各组所述互反的二进制数据执行包括所述写操作、所述读操作、所述比较操作并输出相应的比较结果的过程。
作为示例,所述设定顺序为先逐行升序、再逐列升序、再逐行降序及再逐列降序的完整顺序。以下结合图4对根据该设定顺序对存储器的各行各列存储单元进行检测进行说明。可以理解,在另外的实施例中,所述设定顺序中,逐行升序、逐列升序、逐行降序且逐列降序这四个过程的排布顺序也可以变化。
参照图4,在接收到开始检测的指令(例如由一主控单元发出)后,首先进行多次检测以完成逐行升序检测过程,以下作为示例,逐行升序检测过程中每次检测针对同一行全部数量的所述存储单元进行测试,同一行例如共有m个所述存储单元(m为大于1的整数),则在每次所述检测时,连续两次写入同一行的多个存储单元的每一次包括连续写m个所述测试地址。但不限于此,另外的实施例中,每次检测可以针对同一行的部分数量的所述存储单元进行测试。所述逐行升序检测过程包括:
根据测试地址将上述测试数据a写入第一行的m个(例如m=4)所述存储单元,即先4个存储单元的每一个都先写入0x00000000,再4个存储单元的每一个都写入0xFFFFFFFF(两次写入连续进行,使得m个(例如m=4)存储单元内的所有存储元件发生快速切换,下同),在完成写入0xFFFFFFFF后,读取第一行m个所述存储单元的实际数据,比较各所述存储单元中后写入的所述二进制数据即0xFFFFFFFF与读取的实际数据是否一致,并输出相应的比较结果;
之后,判断本次检测是否结束,若未结束,则改变测试数据继续检测,若结束则进一步判断逐行升序检测过程是否结束,本实施例中,此时对第一行所述存储单元的检测未结束,因而改变测试数据继续检测,具体接着将上述测试数据b写入第一行m个(例如m=4)存储单元,即先4个存储单元的每一个都写入0xFFFFFFFF,再4个存储单元的每一个都写入0x00000000,在完成写入0x00000000后,读取第一行m个所述存储单元的实际数据,比较各存储单元读取的实际数据与0x00000000是否一致,并输出相应的比较结果;
之后,判断本次检测是否结束,若未结束,则改变测试数据继续检测,若结束则进一步判断逐行升序检测过程是否结束,本实施例中,此时对第一行所述存储单元的检测未结束,因而改变测试数据继续检测,具体将上述测试数据c写入第一行m个(例如m=4)所述存储单元,即先4个存储单元的每一个都写入0x55555555,再4个存储单元的每一个都写入0xAAAAAAAA,在完成写入0xAAAAAAAA后,读取第一行m个所述存储单元的实际数据,比较各存储单元读取的实际数据与0xAAAAAAAA是否一致,并输出相应的比较结果;
之后,判断本次检测是否结束,若未结束,则改变测试数据继续检测,若结束则进一步判断逐行升序检测过程是否结束,本实施例中,此时对第一行所述存储单元的检测未结束,因而改变测试数据继续检测,具体将上述测试数据d写入第一行m个(例如m=4)所述存储单元,即先4个存储单元的每一个都写入0xAAAAAAAA,再4个存储单元的每一个都写入0x55555555,在完成写入0x55555555后,读取第一行m个所述存储单元的实际数据,比较各存储单元读取的实际数据与0x55555555是否一致,并输出相应的比较结果;
之后,判断本次检测是否结束,本实施例中,此时对第一行所述存储单元的检测结束,进一步判断逐行升序检测过程是否结束,若未结束,则根据设定顺序开始下一次检测,以检测下一行所述存储单元,对所述下一行存储单元的检测可采用与检测第一行存储单元相同的流程,即分四次分别向相应行的各存储单元写入测试数据a、测试数据b、测试数据c以及测试数据d,并在每次写入完成后,读出相应行的各存储单元的实际数据并比较后写入的二进制数据与读取的实际数据是否一致,输出相应的比较结果,若对逐行升序并各行存储单元的检测已结束,即逐行升序检测过程结束,接着进行如图3所示的逐列升序检测过程。
所述逐列升序检测过程按照升序检测每一列上的多个存储单元。作为示例,所述逐列升序检测过程中每次检测针对同一列的全部所述存储单元进行测试,同一列例如共有n个所述存储单元(n为大于1的整数),则在每次所述检测时,连续两次写入同一列的多个存储单元的每一次包括连续写n个所述测试地址。但不限于此,另外的实施例中,在所述逐列升序检测过程中,每次检测可以针对同一列的部分数量的所述存储单元进行测试。本实施例中,在所述逐列升序检测过程中,依照升序依次对第一列的各存储单元、第二列的各存储单元及其它列的各存储单元进行检测,对每一列上各存储单元的检测可以采用与上述检测第一行存储单元相同的流程,此处不再赘述。
如图3所示,在完成所述逐列升序检测过程后,接着依次进行逐行降序检测过程和逐列降序检测过程。所述逐行降序检测过程与上述逐行升序检测过程的行检测顺序相反,所述逐列降序检测过程与上述逐列升序检测过程的列检测顺序相反,对每一行和每一列的各存储单元的检测可采用与上述检测第一行存储单元相同的流程,此处不再赘述。
利用上述检测流程,每次检测均可以得到相应的所述比较结果,所述比较结果包括所检测的同一行或同一列上的多个存储单元中后写入的二进制数据与读取的实际数据一致或不一致的信息,当所述存储单元中后写入的所述二进制数据与读取的实际数据不一致时,相应的所述比较结果还可包括所述存储单元对应的失效地址、当前测试采用的失效数据以及失效类型中的至少一项。所述失效类型可根据当前测试的行或列以及测试数据定义,例如向第一行所述存储单元写入所述测试数据a可定义为第一失效类型,向第一行所述存储单元写入所述测试数据b可定义为第二失效类型等,可根据具体需要设置。通过输出较详细的比较结果,便于工作人员对相应的存储单元进行失效分析。
上述实施例描述的MBIST执行方法中,连续两次向同一行或同一列的多个存储单元写入如0x00000000和0xFFFFFFFF相反的二进制数据后,对读出的实际数据与后写入的二进制数据进行比较,通过快速切换存储单元内的存储元件(如MOS晶体管)的状态,可以检测出所述存储元件是否失效,且可以检测所述存储元件的稳定或非稳定失效状态,所述MBIST执行方法每次测试针对同一行或同一列的多个存储单元,不仅效率高,而且便于检测存储单元内的存储元件在快速切换状态时产生的电磁干扰是否对邻近存储单元内的存储元件产生了干扰而影响了邻近存储单元的性能,使得对存储器的检测更加全面。
相较于采用升序和降序(即顺序和倒序)逐个寻址并对各地址分别进行写入和读出的过程(即逐个地址进行写入和读出的检测方式),上述实施例描述的MBIST执行方法将存储器的行列结构与检测过程结合,既符合实际存储器中最小存储单元(或存储元件)的排布规律,而且耗时短,效率更高,实时性更好,还可以检测每个测试地址的存储单元在快速改变存储数据(相应的内部元件发生快速切换)时对邻近存储单元内的存储元件的影响。
所述MBIST执行方法可以以计算机指令的方式存储于各种存储介质中,并可以由计算机的处理器或者多个功能模块执行。例如,所述MBIST执行方法可以以以计算机指令的方式通过上位机下载到MCU中,所述MCU的控制器在接收到外部指令后开始执行所述MBIST执行方法。
以下对本发明实施例的MBIST电路系统进行说明。所述MBIST电路系统用于对存储器进行测试。所述存储器可以是闪存(如nandFlash或norFlash)、SRAM、DRAM或其它需要进行存储器内建自测试的存储装置。作为示例,所述存储器为片上系统(如MCU)中的存储器(如闪存或者SRAM)。
参照图5,所述MBIST电路系统包括算法生成模块、数据读取模块、数据比较模块以及结果输出模块,此外还可包括行列获取模块。利用本实施例的MBIST电路系统可以执行上述实施例描述的MBIST执行方法。
所述算法生成模块配置为根据要测试的存储器内最小存储单元的行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据。所述存储器内的所述存储单元的数量等于所述测试地址的数量。每个所述测试地址例如包括由一主控单元分配的k个逻辑地址,每个所述逻辑地址对应8个所述最小存储单元,k为大于1的整数。作为示例,在利用所述MBIST电路系统对MCU的闪存或SRAM进行测试时,可利用所述算法生成模块根据从MCU的闪存或SRAM获取的最小存储单元的行列信息,根据测试地址逐行生成存储单元,并提供相应的测试数据。关于所述算法生成模块的工作可参照对上述MBIST执行方法中的步骤S2的说明。
所述算法生成模块生成的测试数据可以在得到写操作指令后根据相应的测试地址写入指定行或指定列的多个所述存储单元。所述测试数据可包括多组互反的二进制数据。示例性地,所述测试数据可包括先全0再全1、先全1再全0、先1和0交替再0和1交替、以及先0和1交替再1和0交替中的至少一组。
所述行列获取模块配置为获取要检测的存储器内最小存储单元的行列信息。所述行列信息可包括所述存储器内每行和/或每列的所述最小存储单元的数量,以供所述算法生成模块决定如上述MBIST执行方法中所述检测所针对的同一行或同一列的存储单元的数量及写入所述存储单元的二进制数据的位数。关于所述行列获取模块的工作可参照对上述MBIST执行方法中的步骤S1的说明。
所述数据读取模块配置为在对行列排布的多个所述存储单元按照设定顺序执行多次检测且所述检测针对同一行或同一列的多个所述存储单元进行测试时,当将一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元后,读取所述存储单元的实际数据。作为示例,在利用MBIST电路系统对MCU内的存储器进行测试时,每次测试可以根据MCU的主控单元的指令将互反的二进制数据连续两次写入相应测试地址对应的同一行或同一列上的多个所述存储单元内,之后利用所述数据读取模块读取完成写入的各所述存储单元的实际数据。
所述数据比较模块配置为比较所述同一行或同一列的多个所述存储单元中,各所述存储单元后写入的所述二进制数据与读取的所述实际数据是否一致。所述结果输出模块配置为输出所述数据比较模块的比较结果。作为示例,在利用MBIST电路系统对MCU的存储器进行测试时,在通过所述数据读取模块得到完成写入的相应行或相应列上的多个所述存储单元的实际数据后,可利用所述数据比较模块比较后写入各存储单元的所述二进制数据与读取的所述实际数据是否一致,并利用所述结果输出模块输出比较结果。所述比较结果的内容可以通过MCU输出给上位机或测试机台,也可以存储在MCU内部。
上述MBIST电路系统中的各个模块的至少一个可以以软件程序的方式配合硬件的方式来实施,然而,他们全部或其中一部分也可以使用电子硬件或软件程序的方式来实施。作为示例,所述MBIST电路系统中的各个模块可以是集成在MCU内部的BIST电路。不管是以软件或者硬件方式,其个别部分是熟悉电子、软件领域的人员可以进行实施的,因此,其细节就不在本说明书中赘述。
利用上述实施例描述的MBIST电路系统可以对存储器进行测试,其中,每次检测包括将一组互反的二进制数据连续两次写入同一行或同一列的多个所述存储单元,该过程中所述存储单元内的存储元件发生快速切换,通过读取所述存储单元的实际数据,并比较各存储单元后写入的二进制数据与读取的实际数据是否一致,可得到相应的比较结果,根据所述比较结果,可以检测出相应存储单元的性能即内部存储元件是否失效,不仅可以检测存储元件的稳定失效状态,还可以检测在快速改变存储数据时存储元件的非稳定失效状态,具有较高的实时性和准确性,并且,所述检测针对同一行或同一列的多个存储单元进行测试,相较于逐个地址进行写入和读出,效率高,而且能够检测每个测试地址的存储单元在快速改变存储数据(相应的内部元件发生快速切换)时对邻近存储单元内的存储元件的影响,使得对存储器的检测更加全面。
需要说明的是,本说明书中的实施例采用递进的方式描述,每个部分重点说明的都是与前述部分的不同之处,相关之处可以参照理解。
上述描述仅是对本发明较佳实施例的描述,并非对本发明权利范围的任何限定,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (13)
1.一种MBIST执行方法,其特征在于,用于对存储器进行测试,所述MBIST执行方法包括:
获取所述存储器内最小存储单元的行列信息;
根据所述行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据;以及
对行列排布的多个所述存储单元按照设定顺序执行多次检测,所述检测针对同一行或同一列的多个所述存储单元进行测试;
其中,每次所述检测包括:
进行写操作,将所述测试数据中的一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元;进行读操作,读取所述同一行或同一列的多个所述存储单元的实际数据;进行比较操作,比较后写入的所述二进制数据与读取的所述实际数据是否一致;输出相应的比较结果。
2.如权利要求1所述的MBIST执行方法,其特征在于,所述设定顺序为逐行升序、逐列升序、逐行降序以及逐列降序中的一种或者两种以上的组合。
3.如权利要求1所述的MBIST执行方法,其特征在于,所述检测针对同一行或同一列的部分数量或全部数量的所述存储单元进行测试。
4.如权利要求1所述的MBIST执行方法,其特征在于,所述测试数据包括多组互反的二进制数据;每次所述检测包括:针对所述同一行或同一列的多个所述存储单元,分别选择各组所述互反的二进制数据执行包括所述写操作、所述读操作、所述比较操作并输出相应的比较结果的过程。
5.如权利要求1所述的MBIST执行方法,其特征在于,所述测试数据包括先全0再全1、先全1再全0、先1和0交替再0和1交替、以及先0和1交替再1和0交替中的至少一组。
6.如权利要求1所述的MBIST执行方法,其特征在于,每个所述测试地址包括一主控单元分配的k个逻辑地址,每个所述逻辑地址对应8个所述最小存储单元,k为大于1的整数。
7.如权利要求6所述的MBIST执行方法,其特征在于,所述连续两次写入所述同一行或同一列的多个所述存储单元的每一次包括连续写m个或n个所述测试地址;其中根据所述行列信息生成行列排布的多个所述存储单元时,同一行所述存储单元由连接相同字线的m*k*8个所述最小存储单元形成,同一列所述存储单元由连接相同位线的n*k*8个所述最小存储单元形成,m和n为大于1的整数。
8.如权利要求1至7任一项所述的MBIST执行方法,其特征在于,所述检测包括:
当所述存储单元后写入的所述二进制数据与读取的所述实际数据不一致时,所述比较结果包括所述存储单元对应的失效地址、当前测试对应的失效数据以及失效类型中的至少一项,所述失效类型根据当前测试的行或列以及测试数据定义。
9.一种MBIST电路系统,其特征在于,用于对存储器进行测试,所述MBIST电路系统包括:
算法生成模块,配置为根据所述存储器内最小存储单元的行列信息生成行列排布的多个存储单元并提供测试数据,每个所述存储单元具有对应的一个测试地址,所述测试数据包含至少一组互反的二进制数据;
数据读取模块,配置为在对行列排布的多个所述存储单元按照设定顺序执行多次检测且所述检测针对同一行或同一列的多个所述存储单元进行测试时,当将一组互反的二进制数据连续两次写入所述同一行或同一列的多个所述存储单元后,读取所述存储单元的实际数据;
数据比较模块,配置为比较所述同一行或同一列的多个所述存储单元中,各所述存储单元后写入的所述二进制数据与读取的所述实际数据是否一致;以及
结果输出模块,配置为输出所述数据比较模块的比较结果。
10.如权利要求9所述的MBIST电路系统,其特征在于,还包括:
行列获取模块,配置为获取所述存储器内所述最小存储单元的行列信息;其中,所述行列信息包括所述存储器内每行和/或每列的所述最小存储单元的数量,以供所述算法生成模块决定所述检测针对的所述同一行或同一列的所述存储单元的数量及写入所述存储单元的所述二进制数据的位数,所述存储器内所述存储单元的数量等于所述测试地址的数量。
11.如权利要求9所述的MBIST电路系统,其特征在于,每个所述测试地址包括由一主控单元分配的k个逻辑地址,每个所述逻辑地址对应8个所述最小存储单元,k为大于1的整数。
12.如权利要求9所述的MBIST电路系统,其特征在于,所述存储器为片上系统中的存储器。
13.如权利要求12所述的MBIST电路系统,其特征在于,写入所述存储单元的所述二进制数据的位数为所述片上系统的主控单元与所述存储器之间的总线位宽。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410338848.9A CN120690266A (zh) | 2024-03-22 | 2024-03-22 | Mbist执行方法和mbist电路系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410338848.9A CN120690266A (zh) | 2024-03-22 | 2024-03-22 | Mbist执行方法和mbist电路系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120690266A true CN120690266A (zh) | 2025-09-23 |
Family
ID=97083914
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410338848.9A Pending CN120690266A (zh) | 2024-03-22 | 2024-03-22 | Mbist执行方法和mbist电路系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120690266A (zh) |
-
2024
- 2024-03-22 CN CN202410338848.9A patent/CN120690266A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6026505A (en) | Method and apparatus for real time two dimensional redundancy allocation | |
| US5961653A (en) | Processor based BIST for an embedded memory | |
| US7032142B2 (en) | Memory circuit having parity cell array | |
| US6297997B1 (en) | Semiconductor device capable of reducing cost of analysis for finding replacement address in memory array | |
| US20020031025A1 (en) | Semiconductor memory device performing redundancy repair based on operation test and semiconductor integrated circuit device having the same | |
| US4868823A (en) | High speed concurrent testing of dynamic read/write memory array | |
| US6353563B1 (en) | Built-in self-test arrangement for integrated circuit memory devices | |
| US6937531B2 (en) | Memory device and method of storing fail addresses of a memory cell | |
| US7073100B2 (en) | Method for testing embedded DRAM arrays | |
| US20090027982A1 (en) | Semiconductor memory and test system | |
| US5022007A (en) | Test signal generator for semiconductor integrated circuit memory and testing method thereof | |
| US5533194A (en) | Hardware-assisted high speed memory test apparatus and method | |
| US5432744A (en) | Dynamic semiconductor memory circuit | |
| US6247153B1 (en) | Method and apparatus for testing semiconductor memory device having a plurality of memory banks | |
| US5757816A (en) | IDDQ testing of integrated circuits | |
| KR100416919B1 (ko) | 메모리디바이스의메모리셀억세스방법및억세스회로 | |
| US7240257B2 (en) | Memory test circuit and test system | |
| US7051253B2 (en) | Pseudo fail bit map generation for RAMS during component test and burn-in in a manufacturing environment | |
| US6442085B1 (en) | Self-Test pattern to detect stuck open faults | |
| CN120690266A (zh) | Mbist执行方法和mbist电路系统 | |
| US7310274B2 (en) | Semiconductor device | |
| US6873556B2 (en) | Semiconductor memory device with test mode and testing method thereof | |
| US7689878B2 (en) | System and method for testing defects in an electronic circuit | |
| GB2366890A (en) | Testing a memory with redundant cells | |
| KR100491273B1 (ko) | 테스트장치및이를포함한랜덤액세스메모리장치 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination |