CN111383704A - 一种存储器内建自测试电路和对存储器的测试方法 - Google Patents
一种存储器内建自测试电路和对存储器的测试方法 Download PDFInfo
- Publication number
- CN111383704A CN111383704A CN201811645058.6A CN201811645058A CN111383704A CN 111383704 A CN111383704 A CN 111383704A CN 201811645058 A CN201811645058 A CN 201811645058A CN 111383704 A CN111383704 A CN 111383704A
- Authority
- CN
- China
- Prior art keywords
- test
- memory
- algorithm
- instruction
- test element
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
Landscapes
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本申请实施例公开了一种存储器内建自测试电路和对存储器的测试方法,用于降低修改MBIST电路支持的测试算法的开发成本。本申请存储器内建自测试MBIST电路可以包括:算法生成模块,用于按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个测试元素;算法执行模块,用于对待测的存储器依次执行各个测试元素。
Description
技术领域
本申请涉及存储器技术领域,尤其涉及一种存储器内建自测试电路和对存储器的测试方法。
背景技术
目前存储器最常用的测试方法是存储器内建自测试(Memory Build-in Self-test,MBIST)方法,MBIST电路以存储器为目标,自动生成存储器的测试电路,通过执行特定的测试算法,来检测存储器中存在的某些缺陷,不同的测试算法可以得到不同的存储器测试覆盖率。
现有技术中开发人员通常需要在MBIST电路中预先编写算法模块,一个算法模块对应于一个测试算法,MBIST电路在接收到测试指令时,可以根据测试指令中指定的背景数据和预存的算法模块生成对应的测试算法,以对存储器执行该测试算法,检测存储器中存在的缺陷。
但是,当需要对测试算法进行修改时,需要开发人员对预先编写的整个算法模块进行修改,测试算法的开发成本高。
发明内容
本申请实施例提供了一种存储器内建自测试电路和对存储器的测试方法,用于降低修改MBIST电路支持的测试算法的开发成本。
为解决上述技术问题,第一方面,本申请实施例提供一种存储器内建自测试电路,包括:算法生成模块,用于按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个所述测试元素;算法执行模块,用于对存储器依次执行各个所述测试元素。本申请提供的存储器内建自测试MBIST电路通过预存测试元素模块来构造测试算法的各个测试元素,进而对存储器执行测试算法的各个测试元素,完成测试,当需要对测试算法进行修改时,开发人员只需对预存的测试元素模块进行修改即可,有利于降低修改算法的开发成本。
基于第一方面,在第一方面的第一种可能的实现方式中,所述构造规则包括构造参数,所述构造参数包括对应的测试元素中包括的内存操作的组合、各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和各内存操作的地址序列中的至少一种,通过细化构造规则,增加了本申请实施例的可操作性。
基于第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述构造规则还包括与对应的测试元素相匹配的测试元素模块的模块标识;所述算法生成模块用于构造所述测试元素时,具体用于根据所述测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;之后根据所述背景数据、所述目标测试元素模块和所述测试元素的构造参数,构造所述测试元素。通过预存多个测试元素模块,有利于丰富MBIST电路可构造的测试算法的类型。
基于第一方面至第一方面的第二种可能的实现方式中任意一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述目标测试算法包括N个测试元素,所述目标测试指令包括N个子测试指令,i为不大于N的正整数,第i个所述子测试指令用于指示所述MBIST电路对所述存储器执行所述目标测试算法的第i个测试元素,所述算法生成模块用于构造第i个所述测试元素时,具体用于按照第i个所述子测试指令构造第i个所述测试元素。通过按照每个测试元素对应的测试指令对存储器进行测试,有利于减少测试等待时长。
基于第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述存储器内建自测试电路还包括回收模块,所述回收模块用于在所述算法执行模块对所述存储器执行第i个所述测试元素之后,向处理电路发送第i个所述子测试指令的指令标识的回收信息,所述处理电路用于管理空闲的指令标识,并根据空闲的指令标识生成测试指令。通过在执行完成测试元素后,发送该测试元素对应的测试指令的指令标识的回收信息,有利于增加处理器的空闲指令标识,有利于保证测试的接续进行,减少测试运行时长。
第二方面,本申请实施例提供一种对存储器的测试方法,包括:存储器内建自测试MBIST电路按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个所述测试元素;所述MBIST电路对存储器依次执行各个所述测试元素。
基于第二方面,在第二方面的第一种可能的实现方式中,所述构造规则包括构造参数,所述构造参数包括对应的测试元素中包括的内存操作的组合、各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和各内存操作的地址序列中的至少一种。
基于第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述构造规则还包括与对应的测试元素相匹配的测试元素模块的模块标识;所述MBIST电路构造所述测试元素包括:所述MBIST电路根据所述测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;所述MBIST电路根据所述背景数据、所述目标测试元素模块和所述测试元素的构造参数,构造所述测试元素。
基于第二方面至第二方面的第二种可能的实现方式中任意一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述目标测试算法包括N个测试元素,所述测试指令包括N个子测试指令,i为不大于N的正整数,第i个所述子测试指令用于指示所述MBIST电路对所述存储器执行所述目标测试算法的第i个测试元素,所述MBIST电路构造第i个所述测试元素包括:所述MBIST电路按照第i个所述子测试指令构造第i个所述测试元素。
基于第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述方法还包括:在对所述存储器执行第i个所述测试元素之后,所述MBIST电路向处理电路发送第i个所述子测试指令的指令标识的回收信息,所述处理电路用于管理空闲的指令标识,并根据空闲的指令标识生成测试指令。
附图说明
图1是MBIST测试***的一个结构示意图;
图2是本申请MBIST电路的一个实施例示意图;
图3是本申请MBIST测试***的一个实施例示意图;
图4是本申请MBIST测试***对存储器的测试过程的一个示意图;
图5是本申请MBIST测试***对存储器的测试过程的另一个示意图;
图6是本申请MBIST测试***对存储器的测试过程的另一个示意图;
图7是本申请对存储器的测试方法的一个实施例示意图;
图8是图7对应的实施例中步骤701的一种可能的细化步骤示意图;
图9是本申请对存储器执行第i个测试元素的方法的一个实施例示意图。
具体实施方式
本申请实施例提供了一种存储器内建自测试电路和对存储器的测试方法。
下面结合附图,对本申请的实施例进行描述。
本申请中出现的术语“和/或”,可以是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。本申请中,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
现代集成电路日益需要在半导体芯片本身上嵌入存储器,对存储器的传统的测试方法受测试难度和测试成本所制约,已不为芯片设计厂商所接受。目前存储器最常用的测试方法是通过存储器内建自测试(Memory Build-in Self-test,MBIST)方法来实现,自动生成存储器的测试电路,根据相应的测试算法对存储器地址进行读写操作,完成存储器的测试。这种测试方法虽然会在电路中加入一些控制逻辑,从而增加芯片的面积,但是对于大规模测试电路,这种方法能够实现测试自动化,减少测试时长,提高测试覆盖率,很大程度上节约测试成本。
MBIST方法是以存储器为目标,通过执行特定的测试算法,来检测存储器中存在的某些缺陷的一种测试方法,不同的测试算法可以得到不同的存储器测试覆盖率。参考图1,为MBIST测试***的一个结构示意图,MBIST测试***包括处理电路1、MBIST电路2、存储控制器3和存储器4,处理电路1,比如处理器或处理器中的某个模块,可以向MBIST电路2输入测试指令,测试指令用于指定测试算法,可选的,还可以指定背景数据,MBIST电路2用于按照接收到的测试指令,生成相应的测试算法,并执行该测试算法,以通过存储控制器3检测存储器4中存在的缺陷。在实际应用中,背景数据也可以在MBIST电路2中预先配置。
MBIST采用的测试算法是测试元素的有限序列,测试元素包括一系列指定的内存操作、各内存操作的操作数和内存操作的地址序列。下面是March C-算法的算法原语:
March C-算法包含6个测试元素,分别为 和以第2个测试元素为例,其包括的内存操作依次为读操作和写操作,背景数据为A,读操作的操作数为背景数据,写操作的操作数为背景数据取反,内存操作的地址序列为升序,即按照升序来依次对存储器4中的各个存储单元进行测试元素中规定的内存操作。MBIST电路2对存储器4执行第2个测试元素是指,按照升序依次对存储器4中的各个存储单元进行如下内存操作:首先读取当前存储单元中的数据,和A进行比较,若相同,则向当前存储单元写入A,若不相同,则报错。
为了灵活调整对存储器4的测试策略,需要丰富MBIST电路可选用的测试算法,从中选择一个或多个测试算法,来对存储器4进行测试。为此,现有技术中开发人员通常需要在MBIST电路2中预先编写算法模块,一个算法模块对应于一个测试算法,MBIST电路2在接收到处理电路1发送的测试指令时,可以根据测试指令中指定的背景数据和预存的算法模块生成对应的测试算法。若需要对测试算法进行修改,则需要开发人员对预先编写的整个算法模块进行修改,若需要新增测试算法,则需要开发人员重新编写新增的测试算法对应的整个算法模块,测试算法的开发成本高。
为了解决上述问题,本申请提供一种MBIST电路2,请参阅图2,MBIST电路2包括:算法生成模块21和算法执行模块22,其中,算法生成模块21用于在接收到测试指令后,按照测试指令,根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,构造目标测试算法的各个测试元素;算法执行模块22用于对待测的存储器执行目标测试算法的各个测试元素。其中,测试指令用于指定测试算法,可选的,还可以指定背景数据,或者,背景数据也可以无需由测试指令指定,而是在MBIST电路2中进行预先配置。为了尽量减少开发成本,同一测试元素模块可以用于构造多个测试元素,具体的,同一测试元素模块可以构造的多个测试元素可以属于同一测试算法,也可以属于不同测试算法,此处不做具体限定。
开发人员可以预先编写测试元素模块和测试算法的各个测试元素的构造规则,并将其存储在MBIST测试***中,在本申请一种可能的实现方式中,继续参考图2,MBIST电路2还可以包括存储模块23,存储模块23可以用于存储测试元素模块和多个测试算法的各个测试元素的构造规则。开发人员可以通过对测试算法的多个算法元素进行对比,根据不同算法元素之间的相同点来编写测试元素模块,根据不同算法元素之间的区别点来编写各个测试元素的构造规则。示例性的,通过对比March类算法的不同测试元素(包括同一算法的不同测试元素和不同算法的测试元素),以March C-算法和March Y算法为例,其中March C-算法的算法原语为:
March Y算法的算法原语为:
可以发现March类算法的各个测试元素中的内存操作的操作对象均是当前内存单元,各个测试元素之间的差异主要体现在:1、内存操作的地址序列可能不同:为升序或为降序;2、包括的内存操作的组合可能不同:包括的组合可能为一个操作,比如写操作或者读操作,包括的组合可能为两个操作,可能为读操作和写操作的组合,或者为写操作和读操作的组合,包括的组合可能为三个或三个以上操作,具体不再举例;3、内存操作的操作数与背景数据的对应关系可能不同:内存操作的操作数可能为背景数据,或者,可能为背景数据的取反;4、内存操作的操作数的数据长度可能不同;等等。在本申请一种可能的实现方式中,测试元素的构造规则可以包括构造参数,测试元素的构造参数包括对应的测试元素包括的内存操作的组合、对应的测试元素中各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和内存操作的地址序列中的至少一种。开发人员可以为March类算法编写至少一个测试元素模块,并将上述差异作为可配置的参数,编写各个测试元素的构造参数,当需要生成某个March类算法时,算法生成模块21可以根据背景数据、该测试算法的测试元素模块和该测试算法的各个测试元素的构造参数,分别构造该测试算法的各个测试元素,从而得到该测试算法。可见,开发人员最少只需编写一个测试元素模块,算法生成模块21便可以构造出所有的March类算法。
MBIST采用的测试算法,除了主流的March类算法,还有一些其他类型的算法,比如Butterfly算法、Surrounding算法、3-step算法和PRBS算法等,开发人员可能需要为这些非March类算法编写相应的测试元素模块。非March类算法的各个测试元素可以均利用该算法对应的测试元素模块生成,或者,非March类算法中的部分测试元素可以复用March类算法对应的测试元素模块生成,其他测试元素可以利用该算法对应的测试元素模块生成。以Butterfly算法为例,其算法原语如下:
该算法包含4个测试元素,第一个测试元素和第三个测试元素中内存操作的操作对象均是当前内存单元,这两个测试元素可以通过复用March类算法的测试元素模块构造出来。而该算法中的第二个测试元素和第四个测试元素中的部分内存操作的操作对象不是当前内存单元,比如,的操作对象是当前内存单元东侧的内存单元,这两个测试元素无法通过复用March类算法的测试元素模块构造出来,所以需要增加Butterfly算法的第二个测试元素和第四个测试元素对应的测试元素模块。M1和M3之间只有读写操作数有区别,M3的读写操作数是M1的读写操作数取反,为了减少对测试元素模块的开发成本,因此最少只要构造一个测试元素模块,由第二个测试元素和第四个测试元素共用即可。通过类似的方法,我们可以扩展其他算法(比如Surrounding算法、3-step算法和PRBS算法等)的测试元素模块。为了减少对测试元素模块的开发成本,非March类算法的测试元素可以尽量复用已编写好的测试元素模块,比如March类算法的测试元素模块,可以为无法复用已有测试元素模块的测试元素编写相应的测试元素模块。
可见,为了使得本申请提供的MBIST电路2能够采用多种测试算法对存储器进行测试,在本申请的一种可能的实现方式中,MBIST测试***可以预先存储多个测试元素模块,比如March类算法、Butterfly算法、Surrounding算法、3-step算法和PRBS算法对应的测试元素模块,不同测试元素模块的标识不同。测试元素的构造规则还包括与该测试元素相对应的测试元素模块的模块标识,此时,算法生成模块21在根据背景数据、预存的测试元素模块和目标测试算法中的第i个测试元素的构造规则构造该测试元素时(其中i为正整数,且不大于目标测试算法包括的测试元素的数目),具体用于根据第i个测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块,目标测试元素模块为与目标测试算法的第i个测试元素相对应的测试元素模块,之后,根据背景数据、获取到的目标测试元素模块和第i个测试元素的构造参数,构造目标测试算法的第i个测试元素。
下面对MBIST测试***对待测试的存储器执行目标测试算法的一种可能的实施过程进行说明。参考图3,MBIST测试***包括处理电路1、MBIST电路2、存储控制器3和存储器4,MBIST电路2包括:算法生成模块21、算法执行模块22和存储模块23,MBIST电路2中各个模块的功能可以图2对应的实施例的描述,此处不再赘述。处理电路1可以向MBIST电路2输入测试指令,该测试指令用于指示测试存储器4所选用的背景数据和目标测试算法,为了便于描述,将对应于完整的目标测试算法的测试指令称作目标测试指令。算法生成模块21可以按照接收到的目标测试指令构造目标测试算法的各个测试元素,算法执行模块22可以执行各个测试元素,以对存储器4执行目标测试算法,从而通过存储控制器3检测存储器4中存在的缺陷。
MBIST测试***对存储器4依次进行测试算法1和测试算法2的测试的过程可以有多种具体的实现方式。示例性的,例1中,处理电路1可以首先生成测试指令1,测试指令1可以用于指示MBIST电路2执行测试算法1的全部测试元素,此时,算法生成模块21可以根据测试指令1构造测试算法1对应的全部测试元素,算法执行模块22可以在算法生成模块21生成测试算法1的全部测试元素后再依次执行各个测试元素。在算法执行模块22执行完各个测试元素之后,处理电路1可以生成测试指令2,向MBIST电路2继续输入测试指令2,该测试指令2用于指示MBIST电路2执行测试算法2的全部测试元素,算法执行模块22可以在算法生成模块21生成测试算法2的全部测试元素后再依次执行各个测试元素。假设测试算法1包含5个测试元素,测试算法2包含4个测试元素,此时,MBIST测试***对存储器4按照测试算法1和测试算法2进行测试的过程可以以时间轴的方式体现,如图4所示。MBIST测试***的测试运行时长一般主要包括两部分:处理电路1配置目标测试指令的时长Ta和MBIST电路2按照目标测试指令执行测试的时长Tb。其中,Ta主要受限于配置处理电路1的运行频率等,在测试运行时长里占用的比重也比较大;Tb主要受限于存储器4自身的访问时序参数和访问流量等因数限制,一般比较固定。图4中的Ta1和Ta2分别代表处理电路1配置测试指令1和测试指令2的时长,Tb1和Tb2分别代表MBIST电路2按照测试指令1和测试指令2执行测试的时长。可见,例1对应的MBIST测试***的测试运行时长为:Ta1+Tb1+Ta2+Tb2。
例2中,在例1的基础上,算法执行模块22也可以在算法生成模块21生成测试算法1的部分测试元素(比如第一个测试元素)后,便执行该测试元素,和例1相比,有利于减少MBIST电路2按照目标测试指令执行测试的时长Tb,进而减少MBIST测试***的测试运行时长。
若目标测试算法包括N个测试元素,N为正整数,在本申请一种可能的实现方式中,目标测试指令可以包括N个子测试指令,第i个子测试指令用于指示MBIST电路2执行目标测试算法的第i个测试元素,i为不大于N的正整数,也就是说,处理电路1生成目标测试指令的过程可以具体指依次配置N个子测试指令的过程,处理电路1可以将配置好的子测试指令依次输入MBIST电路2中,之后,MBIST电路2可以依次执行N个子测试指令,MBIST电路2执行第i个子测试指令的过程可以包括:算法生成模块21构造第i个测试元素,在算法生成模块21构造得到第i测试元素之后,算法执行模块22可以执行第i个测试元素。因此,MBIST测试***对存储器4依次进行测试算法1和测试算法2的测试的过程也可以如例3:处理电路1可以首先配置测试算法1对应的5个子测试指令,依次生成测试指令1_1、测试指令1_2、测试指令1_3、测试指令1_4和测试指令1_5,并依次将生成的各个测试指令输入MBIST电路2。其中,测试指令1_1可以用于指示MBIST电路2执行测试算法1的第一个测试元素,测试指令1_2可以用于指示MBIST电路2执行测试算法1的第二个测试元素,依次类推,测试指令1_5可以用于指示MBIST电路2执行测试算法1的第五个测试元素。在处理电路1生成测试指令1_1之后,可以将测试指令1_1输入算法生成模块21,算法生成模块21可以根据测试指令1_1构造测试算法1的第一个测试元素,算法执行模块22可以在算法生成模块21生成测试算法1的第一个测试元素后执行该测试元素。之后,MBIST电路2可以依次执行测试指令1_2、测试指令1_3、测试指令1_4和测试指令1_5。在算法执行模块22执行完测试算法1对应的各个指令后,处理电路1可以生成测试算法2对应的四个子测试指令,依次生成测试指令2_1、测试指令2_2、测试指令2_3和测试指令2_4,并依次将生成的各个测试指令输入MBIST电路2,其中,测试指令2_1可以用于指示MBIST电路2执行测试算法2的第一个测试元素,测试指令2_2可以用于指示MBIST电路2执行测试算法2的第二个测试元素,依次类推,测试指令2_4可以用于指示MBIST电路2执行测试算法2的第四个测试元素。MBIST电路2执行测试算法2的各个子测试指令的过程可以参考上述执行测试算法1的各个子测试指令的过程。因此,例3中MBIST测试***对存储器4按照测试算法1和测试算法2进行测试的过程可以以时间轴的方式体现,如图5所示。图5中的Ta1_m和Ta2_n分别代表处理电路1配置测试指令1_m和测试指令2_n的时长,Tb1_m和Tb2_n分别代表MBIST电路2按照测试指令1_m和测试指令2_n执行测试的时长,其中m=1,2,3,4,5,n=1,2,3,4。可见,例3对应的MBIST测试***的测试运行时长为:Ta1_1+(Tb1_1+Tb1_2+Tb1_3+Tb1_4+Tb1_5)+Ta2_1+(Tb2_1+Tb2_2+Tb2_3+Tb2_4),其中,Tb1_1+Tb1_2+Tb1_3+Tb1_4+Tb1_5相当于例1中的Tb1,Tb2_1+Tb2_2+Tb2_3+Tb2_4相当于例1中的Tb2。通过比较例3和例1对应的MBIST测试***的测试运行时长,容易看出,例3的MBIST测试***的测试运行时长远小于例1。可见,通过将目标测试算法对应测试指令按照目标测试算法的各个测试元素拆分为多个子测试指令,MBIST电路2通过依次执行各个子测试指令来实现对存储器4按照目标测试算法进行测试,有利于缩短MBIST测试***的测试运行时长。
在MBIST测试***的实际运行中,MBIST测试***通常包括指令缓存5,比如先入先出(First Input First Output,FIFO)存储器,处理电路1可以将生成的测试指令输入指令缓存5中,再由MBIST电路2从指令缓存5中读取测试指令。受到指令缓存5的存储空间的限制,并且为了保证MBIST测试***有序正确的执行测试指令,参考图3,处理电路1还可以用于管理空闲的指令标识,并且需要利用空闲的指令标识生成测试指令。
例1中,由于处理电路1配置的测试指令为目标测试指令,对应于一个完整的测试算法,因此目标测试指令的内容较多,此时,处理电路1通常只设置一个指令标识,因此,只有在MBIST电路2执行完成测试指令1之后,处理电路1才能重新获得空闲的指令标识,之后,处理电路1才能开始配置测试指令2。而例3中,处理电路1配置的测试指令对应于一个子测试指令,每个子测试指令对应于一个测试元素,因此子测试指令的内容较少,处理电路1可以设置有多个指令标识,比如5个指令标识,处理电路1可以依次生成测试算法1对应的5个子测试指令(即测试指令1_1、测试指令1_2、测试指令1_3、测试指令1_4和测试指令1_5),每个子测试指令分别对应一个指令标识,处理电路1可以将生成的各个子测试指令输入指令缓存5中。处理电路1生成测试算法1对应的5个子测试指令之后,处理电路1中便没有空闲的指令标识,此时,处理电路1无法继续配置测试算法2对应的子测试指令。MBIST电路2在执行完成测试算法1对应的5个子测试指令后,处理电路1可以重新获得空闲的5个指令标识,此时,处理电路1可以开始配置测试算法2对应的4个子测试指令。
为了进一步缩短MBIST测试***的测试运行时长,参考图3,MBIST电路2还可以包括回收模块24,算法执行模块22在执行完目标测试算法的第i个子测试指令时,回收模块24可以向处理电路1发送第i个子测试指令的指令标识的回收信息,处理电路1可以将第i个子测试指令的指令标识作为空闲的指令标识,并根据空闲的指令标识生成测试指令,生成的测试指令为某个测试元素对应的测试指令,即上文所称的子测试指令,比如,待生成的测试指令可以是目标测试算法的某个子测试指令,也可以是目标测试算法以外的其他待执行的测试算法的某个子测试指令。这样,基于例3,假设处理电路1可以设置有5个指令标识,MBIST电路2在执行完测试指令1_1之后,便可以向处理电路1发送测试指令1_1对应的指令标识的回收信息,使得处理电路1重新获得空闲的指令标识,此时,处理电路1便可以利用空闲的指令标识配置待生成的测试指令,在本示例中,即配置测试算法2的第一个测试元素对应的子测试指令2_1,有利于测试的接续进行。此时,例3中MBIST测试***对存储器4按照测试算法1和测试算法2进行测试的过程可以以时间轴的方式体现,如图6所示,子测试指令2_1的配置过程与测试算法1的执行过程并行进行,因此,例3对应的MBIST测试***的测试运行时长可以减少子测试指令2_1的配置时长Ta2_1,具体为:Ta1_1+(Tb1_1+Tb1_2+Tb1_3+Tb1_4+Tb1_5)+(Tb2_1+Tb2_2+Tb2_3+Tb2_4)。
上面对本申请的装置实施例进行了描述,与上述MBIST电路相应的,本申请实施例还提供一种对存储器的测试方法,参考图7,本申请对存储器的测试方法一个实施例包括如下步骤:
701、按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个测试元素;
存储器内建自测试MBIST电路可以按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个测试元素。目标测试指令用于指示MBIST电路对待测的存储器执行目标测试算法,对应于整个目标测试算法。
702、对存储器依次执行各个测试元素。
MBIST电路对待测的存储器依次执行各个测试元素
在本申请一种可能的实现方式中,构造规则包括构造参数,构造参数包括对应的测试元素中包括的内存操作的组合、各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和各内存操作的地址序列中的至少一种。
步骤701可以由上述装置实施例中的算法生成模块21执行,步骤702可以由上述装置实施例中的算法执行模块22执行。
在本申请一种可能的实现方式中,构造规则还包括与对应的测试元素相匹配的测试元素模块的模块标识。参考图8,步骤701中MBIST电路构造单个测试元素的过程,具体可以包括:
7011、根据测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;
7012、根据背景数据、目标测试元素模块和测试元素的构造参数,构造测试元素。
在本申请一种可能的实现方式中,若目标测试算法包括N个测试元素,那么目标测试指令可以包括N个子测试指令,i为不大于N的正整数,第i个子测试指令用于指示MBIST电路对待测的存储器执行目标测试算法的第i个测试元素,步骤S100中,MBIST电路构造第i个测试元素的过程,可以包括:
按照第i个子测试指令构造第i个测试元素。构造第i个测试元素的具体过程可以参考图8对应的细化步骤。
在本申请一种可能的实现方式中,在对待测的存储器执行第i个测试元素之后,MBIST电路可以向处理电路发送第i个子测试指令的指令标识的回收信息,处理电路用于管理空闲的指令标识,并根据空闲的指令标识生成测试指令。参考图9,MBIST电路对待测的存储器执行目标测试算法的过程中,MBIST电路对待测的存储器执行目标测试算法的第i个测试元素的步骤可以包括:
901、按照第i个子测试指令,根据测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;
第i个测试元素模块与第i个测试元素相对应。
902、根据背景数据、目标测试元素模块和第i个测试元素的构造参数,构造第i个测试元素;
903、对存储器执行第i个测试元素;
904、向处理电路发送第i个子测试指令的指令标识的回收信息。
需要说明的是,前述关于MBIST电路2的各个实施例均适用于本申请方法的实施例,且方法实施例和相应的装置实施例可以达到相同的技术效果,此处不再赘述。
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的各实施例中,为了方面理解,进行了多种举例说明。然而,这些例子仅仅是一些举例,并不意味着是实现本申请的最佳实现方式。
上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种存储器内建自测试电路,其特征在于,包括:
算法生成模块,用于按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个所述测试元素;
算法执行模块,用于对存储器依次执行各个所述测试元素。
2.根据权利要求1所述的存储器内建自测试电路,其特征在于,所述构造规则包括构造参数,所述构造参数包括对应的测试元素中包括的内存操作的组合、各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和各内存操作的地址序列中的至少一种。
3.根据权利要求2所述的存储器内建自测试电路,其特征在于,所述构造规则还包括与对应的测试元素相匹配的测试元素模块的模块标识;
所述算法生成模块用于构造所述测试元素时,具体用于:
根据所述测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;
根据所述背景数据、所述目标测试元素模块和所述测试元素的构造参数,构造所述测试元素。
4.根据权利要求1至3中任一项所述的存储器内建自测试电路,其特征在于,所述目标测试算法包括N个测试元素,所述目标测试指令包括N个子测试指令,i为不大于N的正整数,第i个所述子测试指令用于指示所述MBIST电路对所述存储器执行所述目标测试算法的第i个测试元素,所述算法生成模块用于构造第i个所述测试元素时,具体用于:
按照第i个所述子测试指令构造第i个所述测试元素。
5.根据权利要求4所述的存储器内建自测试电路,其特征在于,所述存储器内建自测试电路还包括回收模块,所述回收模块用于:
在所述算法执行模块对所述存储器执行第i个所述测试元素之后,向处理电路发送第i个所述子测试指令的指令标识的回收信息,所述处理电路用于管理空闲的指令标识,并根据空闲的指令标识生成测试指令。
6.一种对存储器的测试方法,其特征在于,包括:
存储器内建自测试MBIST电路按照目标测试指令根据背景数据、预存的测试元素模块和目标测试算法的各个测试元素的构造规则,依次构造各个所述测试元素;
所述MBIST电路对存储器依次执行各个所述测试元素。
7.根据权利要求6所述的对存储器的测试方法,其特征在于,所述构造规则包括构造参数,所述构造参数包括对应的测试元素中包括的内存操作的组合、各内存操作的操作数与背景数据的对应关系、各内存操作的操作数的数据长度和各内存操作的地址序列中的至少一种。
8.根据权利要求7所述的对存储器的测试方法,其特征在于,所述构造规则还包括与对应的测试元素相匹配的测试元素模块的模块标识;
所述MBIST电路构造所述测试元素包括:
所述MBIST电路根据所述测试元素的构造规则中的模块标识从预存的多个测试元素模块中获取目标测试元素模块;
所述MBIST电路根据所述背景数据、所述目标测试元素模块和所述测试元素的构造参数,构造所述测试元素。
9.根据权利要求6至8中任一项所述的对存储器的测试方法,其特征在于,所述目标测试算法包括N个测试元素,所述目标测试指令包括N个子测试指令,i为不大于N的正整数,第i个所述子测试指令用于指示所述MBIST电路对所述存储器执行所述目标测试算法的第i个测试元素,所述MBIST电路构造第i个所述测试元素包括:
所述MBIST电路按照第i个所述子测试指令构造第i个所述测试元素。
10.根据权利要求9所述的对存储器的测试方法,其特征在于,所述方法还包括:
在对所述存储器执行第i个所述测试元素之后,所述MBIST电路向处理电路发送第i个所述子测试指令的指令标识的回收信息,所述处理电路用于管理空闲的指令标识,并根据空闲的指令标识生成测试指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645058.6A CN111383704B (zh) | 2018-12-29 | 2018-12-29 | 一种存储器内建自测试电路和对存储器的测试方法 |
PCT/CN2019/115239 WO2020134572A1 (zh) | 2018-12-29 | 2019-11-04 | 一种存储器内建自测试电路和对存储器的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645058.6A CN111383704B (zh) | 2018-12-29 | 2018-12-29 | 一种存储器内建自测试电路和对存储器的测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111383704A true CN111383704A (zh) | 2020-07-07 |
CN111383704B CN111383704B (zh) | 2022-07-26 |
Family
ID=71128590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811645058.6A Active CN111383704B (zh) | 2018-12-29 | 2018-12-29 | 一种存储器内建自测试电路和对存储器的测试方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111383704B (zh) |
WO (1) | WO2020134572A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112071355A (zh) * | 2020-11-12 | 2020-12-11 | 南京邮电大学 | 一种提高故障覆盖率的自适应bist测试方法 |
CN115691632A (zh) * | 2022-10-19 | 2023-02-03 | 中科声龙科技发展(北京)有限公司 | 测试控制***和方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172486A1 (en) * | 2003-02-13 | 2009-07-02 | Ross Don E | Testing embedded memories in an integrated circuit |
US20130019130A1 (en) * | 2011-07-15 | 2013-01-17 | Synopsys Inc. | Testing electronic memories based on fault and test algorithm periodicity |
CN103310852A (zh) * | 2013-05-13 | 2013-09-18 | 桂林电子科技大学 | 基于ieee 1500标准兼容sram/rom的mbist控制器结构*** |
CN103617810A (zh) * | 2013-11-26 | 2014-03-05 | 中国科学院嘉兴微电子与***工程中心 | 嵌入式存储器的测试结构及方法 |
US20140089874A1 (en) * | 2012-09-24 | 2014-03-27 | Cadence Design Systems, Inc. | Method and Apparatus for Optimizing Memory-Built-In-Self Test |
CN104122497A (zh) * | 2014-08-11 | 2014-10-29 | 中国科学院自动化研究所 | 集成电路内建自测试所需测试向量的生成电路及方法 |
US20150371718A1 (en) * | 2014-06-20 | 2015-12-24 | Arm Limited | Memory built-in self-test for a data processing apparatus |
CN105203908A (zh) * | 2015-10-12 | 2015-12-30 | 中国人民解放军国防科学技术大学 | 基于bist的3d sram中tsv开路测试方法 |
CN106409343A (zh) * | 2016-08-31 | 2017-02-15 | 上海华力微电子有限公司 | 适用于各类周期性测试算法的存储器内建自测试电路 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157205B (zh) * | 2011-05-10 | 2015-09-30 | 北京航空航天大学 | 一种对fpga内部嵌入式多位存储器故障的测试方法 |
CN103093829A (zh) * | 2011-10-27 | 2013-05-08 | 迈实电子(上海)有限公司 | 存储器测试***及存储器测试方法 |
CN105679377B (zh) * | 2016-01-11 | 2018-07-03 | 福州瑞芯微电子股份有限公司 | CPU cache存储器的自适应测试方法及装置 |
US10007588B2 (en) * | 2016-01-25 | 2018-06-26 | Nxp Usa, Inc. | Full address coverage during memory array built-in self-test with minimum transitions |
-
2018
- 2018-12-29 CN CN201811645058.6A patent/CN111383704B/zh active Active
-
2019
- 2019-11-04 WO PCT/CN2019/115239 patent/WO2020134572A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172486A1 (en) * | 2003-02-13 | 2009-07-02 | Ross Don E | Testing embedded memories in an integrated circuit |
US20130019130A1 (en) * | 2011-07-15 | 2013-01-17 | Synopsys Inc. | Testing electronic memories based on fault and test algorithm periodicity |
US20140089874A1 (en) * | 2012-09-24 | 2014-03-27 | Cadence Design Systems, Inc. | Method and Apparatus for Optimizing Memory-Built-In-Self Test |
CN103310852A (zh) * | 2013-05-13 | 2013-09-18 | 桂林电子科技大学 | 基于ieee 1500标准兼容sram/rom的mbist控制器结构*** |
CN103617810A (zh) * | 2013-11-26 | 2014-03-05 | 中国科学院嘉兴微电子与***工程中心 | 嵌入式存储器的测试结构及方法 |
US20150371718A1 (en) * | 2014-06-20 | 2015-12-24 | Arm Limited | Memory built-in self-test for a data processing apparatus |
CN104122497A (zh) * | 2014-08-11 | 2014-10-29 | 中国科学院自动化研究所 | 集成电路内建自测试所需测试向量的生成电路及方法 |
CN105203908A (zh) * | 2015-10-12 | 2015-12-30 | 中国人民解放军国防科学技术大学 | 基于bist的3d sram中tsv开路测试方法 |
CN106409343A (zh) * | 2016-08-31 | 2017-02-15 | 上海华力微电子有限公司 | 适用于各类周期性测试算法的存储器内建自测试电路 |
Non-Patent Citations (1)
Title |
---|
YASHA JYOTHI M. SHIRUR: "Implementation of Area Efficient Hybrid MBIST for Memory Clusters in Asynchronous SoC", 《2014 FIFTH INTERNATIONAL SYMPOSIUM ON ELECTRONIC SYSTEM DESIGN》, 30 July 2015 (2015-07-30), pages 226 - 227 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112071355A (zh) * | 2020-11-12 | 2020-12-11 | 南京邮电大学 | 一种提高故障覆盖率的自适应bist测试方法 |
WO2022099947A1 (zh) * | 2020-11-12 | 2022-05-19 | 南京邮电大学 | 一种提高故障覆盖率的自适应bist测试方法 |
CN115691632A (zh) * | 2022-10-19 | 2023-02-03 | 中科声龙科技发展(北京)有限公司 | 测试控制***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111383704B (zh) | 2022-07-26 |
WO2020134572A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9244883B2 (en) | Reconfigurable processor and method of reconfiguring the same | |
KR20210038288A (ko) | 인공지능 칩 테스트 방법, 장치, 기기 및 저장매체 | |
US11275661B1 (en) | Test generation of a distributed system | |
US9395992B2 (en) | Instruction swap for patching problematic instructions in a microprocessor | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
CN111666210A (zh) | 一种芯片验证方法及装置 | |
US8701074B2 (en) | Automatic reduction of modes of electronic circuits for timing analysis | |
US20210263837A1 (en) | Real time fault localization using combinatorial test design techniques and test case priority selection | |
CN117907812B (zh) | 电路检测方法及装置、电子设备、存储介质、程序产品 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
Ibrahim et al. | An on-chip IEEE 1687 network controller for reliability and functional safety management of system-on-chips | |
Eisenhardt et al. | Spatial and temporal data path remapping for fault-tolerant coarse-grained reconfigurable architectures | |
CN109145338B (zh) | 一种修复电压降的方法及装置 | |
US11500639B2 (en) | Arithmetic processing apparatus and control method using ordering property | |
US20200349304A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
US10997087B2 (en) | Direct memory access | |
US20100199284A1 (en) | Information processing apparatus, self-testing method, and storage medium | |
US8726206B1 (en) | Deadlock detection method and related machine readable medium | |
US20090249132A1 (en) | Data Processing Apparatus and Method of Verifying Programs | |
JP5279817B2 (ja) | 試験装置および試験方法 | |
US7945433B2 (en) | Hardware simulation accelerator design and method that exploits a parallel structure of user models to support a larger user model size | |
JP2021005379A (ja) | 深層学習チップを検出する方法、装置、電子機器、およびコンピュータ記憶媒体 | |
JP6473023B2 (ja) | 性能評価モジュール及びこれを組み込んだ半導体集積回路 | |
CN117313595B (zh) | 用于功能验证的随机指令生成方法、设备及*** | |
CN113742198B (zh) | 测试方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |