一种测试流程动态调整方法及调整系统与流程

文档序号:17598547发布日期:2019-05-07 19:53阅读:262来源:国知局
一种测试流程动态调整方法及调整系统与流程

本发明涉及集成电路测试技术领域,具体来说是一种测试流程动态调整方法及调整系统。



背景技术:

传统的集成电路测试过程,需要运行dc测试、功能测试、iddq测试、内建自测试、延迟测试和扫描测试等不同类型的测试,每一种类型的测试都需要运行多条测试向量,测试时间非常长,在集成电路整个产业链中所占比重越来越大。

在传统的集成电路测试过程中,对于每个芯片加载的测试类型是固定不变的,对于每个测试类型的测试向量的顺序也是固定不变的。不失一般性,设对于一个确定的集成电路的测试,需要的测试类型有:y1,y2,……,yi,……,yn;对于任一测试类型,其包含若干个确定的测试向量,其中的测试向量的加载顺序也是固定不变的,不失一般性,设yi中包含的测试向量为:vi1,vi2,……,vij,……,vim。其中i,j,n,m均为整数。

对于集成电路的测试主要是将坏的芯片挑出来,因此越早发现坏的芯片,测试效果越好。7前的集成电路测试时,对所有的被测电路采用的是同一流程同一测试顺序,未考虑故障之间的相关性。对具体被测电路,未考虑高质量的测试类型和高质量的测试向量。测试类型的顺序和测试向量的顺序在测试被测电路时是静态的,没有将测试效率发挥到极致。

针对上述问题,发明专利cn201110317892.4提出直接根据前期的测试结果动态调整测试向量,其调整方法是先记录单个测试向量的运行次数a和该向量对应测的故障芯片数b,再通过故障芯片数b/测试向量的运行次数a的值,即的大小作为权值来调整测试向量的顺序。其存在两个方面的问题:1.集成电路测试时,是挑出故障的集成电路,因此碰到集成电路有故障时,对该集成电路测试就停止,后续的测试向量就不再加入,因此可能会存在后续高质量测试向量永远不会加载的情况,即存在不能完全按测试向量质量排序的可能。2.上述发明中仅考虑测试向量之间的顺序调整,未考虑测试类型的顺序问题。随着集成电路复杂度的增加,不同的电路需要开发新测试类型,如果只是将这种新的测试类型添加到最后,显然不是最优的。



技术实现要素:

本发明要解决的技术问题是提供一种测试流程动态调整方法及调整系统,提高测试效率,减低测试成本。

本发明通过以下技术方案来解决上述技术问题:

一种测试流程动态调整方法,包括测试类型调整;

所述测试类型调整包括:

计算单个测试类型对应能测出坏芯片的次数总和;

计算单个测试类型能测坏芯片对应时间总和;

根据次数总和和时间总和计算单个测试类型的权重;

按权重重新排序,得到新的测试类型序列。

优选的,还包括针对每一个测试类型进行测试向量调整;每一个测试类型内包括多个测试向量;所述测试向量调整具体为:计算单个测试向量的权重,根据测试向量的权重排序,得到新的测试向量顺序。

优选的,:对于确定测试类型yi的测试向量vi1,vi2,……,vij,……,vim对应的运行时间分别为:ti1,ti2,……,tij,……,yim;单个测试向量vij的权重wj=n’ij/tij,计算j=1,2,……,m时权重wj的值;

根据测试向量vi1,vi2,……,vij,……,vim对应权重wj值的大小,将wj按从大到小顺序排列对应测试向量,得到新的测试向量v’i1,v’i2,……,v’ij,……,v’im。

优选的,在对测试向量排序之前,先进行初始化,具体为:

51)设置初始化参数num,所述num为正整数;

52)判断是否所有测试向量的运行次数均大于mum,若不是,选择第一条测试向量为当前测试向量,跳转到步骤53);若是,跳转到步骤57);

53)将当前测试向量提前到测试向量最前,跳转到步骤54);

54)判断是否有下一个测试向量,如果是,选择下一个测试向量为当前测试向量,跳转到步骤53);如果否,跳转到步骤55);

55)选择当前的测试向量对任一未测的集成电路进行测试,更新该测试向量的运行次数,判断该集成电路是否存在故障,如果该集成电路有故障,更新该测试向量所测的故障数,跳转到步骤52);如果该集成电路无故障,跳转到步骤56);

56)选择下一个测试向量为当前的测试向量,跳转到步骤55);

57)初始化结束。

优选的,还包括动态组合调整,具体为:

51)判断是否还有集成电路未测试完,若已全部测试完,转到48);

52)任选一待测芯片,依排序后的测试类型和测试向量,按顺序加载测试向量,如果测试该芯片无故障,重复步骤51);如果测试该芯片有故障,转到步骤53);

53)记录测试到集成电路故障的对应测试向量和测试类型,累加测试向量测试到的故障集成电路数;

54)判断当前测试向量v″ij是否需要与它前一的测试向量v″i(j-1)交换顺序,具体如下:判断测试向量v″ij测试到故障集成电路的次数n″ij与测试向量v″i(j-1)测试到故障集成电路的次数n″i(j-1)的大小,若n″i(j-1)≥n″ij,不需要调整向量的顺序,转到步骤51);若n″i(j-1)<n″ij,将测试向量v″ij与它前面的测试向量v″i(j-1)交换顺序,并同时交换能测的故障集成电路数量;

55)判断交换到前面的测试向量是否还需要继续向前交换,具体为:将v″i(j-1)更新为当前测试向量,重复步骤54),判断该测试向量v″i(j-1)是否需要与前一测试向量v″i(j-2),若不需要交换,转到步骤56),若需要交换,重复步骤55);

56)判断当前测试类型yi″需不需要与它前一的测试类型y″i-1交换顺序,具体为:分别计算yi″与y″i-1的权重比较的大小,若转到步骤51),否则交换测试类型yi″和y″i-1的顺序,转到步骤51);

57)判断交换到前面的测试类型是否还要继续向前交换。将y″i-1更新为当前测试类型,重复步骤56),判断该测试类型y″i-1是否需要与前一测试类型y″i-2;若不需要交换,转到步骤56),若需要交换,重复步骤57)。

48)结束测试。

优选的,所述yi″与y″i-1的权重计算公式为其中,为测试类型yi″对应能测出坏芯片的次数总和,为测试类型yi″能测坏芯片对应时间总和,t″ij为确定测试类型yi″中的测试向量v″ij对应的运行时间,n″ij为运行到某个时间点,统计到坏的芯片是由于测试向量v″ij所测的对应次数。

本发明还提供一种测试流程动态调整系统,

包括测试类型调整模块;

所述测试类型调整模块包括:

测试类型次数计算单元:计算测试类型对应能测出坏芯片的次数总和;

测试类型时间权重计算单元:计算测试类型能测坏芯片对应时间总和;

测试类型权重计算单元:根据次数总和和时间总和计算测试类型的权重;

测试类型排序单元:按权重重新排序,得到新的测试类型序列。

优选的,还包括针对每一个测试类型进行测试向量调整的测试向量调整模块,每一个测试类型内包括多个测试向量;所述测试向量调整模块用以计算单个测试向量的权重,根据单个测试向量的权重排序,得到新的测试向量顺序。

优选的,还包括初始化模块;所述初始化模块用以设置初始化参数num,所述num为正整数;然后判断当前测试向量运行次数是否小于num,如果是,则将当前测试向量提前到测试向量最前,继续运行下一个测试向量;如果否,初始化结束。

优选的,还包括动态组合调整模块;所述动态组合调整模块具体为:

51)判断是否还有集成电路未测试完,若已全部测试完,转到步骤48);

52)任选一待测芯片,依排序后的测试类型和测试向量,按顺序加载测试向量,如果测试成功,重复步骤51);如果测试失败,转到步骤53);

53)记录测试到集成电路故障的对应测试向量和测试类型,累加测试向量测试到的故障集成电路数;

54)判断当前测试向量v″ij是否需要与它前一的测试向量v″i(j-1)交换顺序,具体如下:判断测试向量v″ij测试到故障集成电路的次数n″ij与测试向量v″i(j-1)测试到故障集成电路的次数n″i(j-1)的大小,若n″i(j-1)≥n″ij,不需要调整向量的顺序,转到步骤51);若n″i(j-1)<n″ij,将测试向量v″ij与它前面的测试向量v″i(j-1)交换顺序,并同时交换能测的故障集成电路数量;

55)判断交换到前面的测试向量是否还要继续向前交换,具体为:将v″i(j-1)更新为当测测试向量,重复步骤54),判断该测试向量v″i(j-1)是否需要与前一测试向量v″i(j-2),若不需要交换,转到步骤56),若需要交换,重复步骤55);

56)判断当前测试类型yi″需不需要与它前一的测试类型y″i-1交换顺序,具体为:分别计算yi″与y″i-1的权重比较的大小,若转到步骤51),否则交换测试类型yi″和y″i-1的顺序,转到步骤51);

57)判断交换到前面的测试类型是否还要继续向前交换。将y″i-1更新为当测测试类型,重复步骤56),判断该测试向量y″i-1是否需要与前一测试向量y″i-2;若不需要交换,转到步骤56),若需要交换,重复步骤57)。

48)结束测试。

优选的,所述yi″与y″i-1的权重计算公式为其中,为测试类型yi″对应能测出坏芯片的次数总和,为测试类型yi″能测坏芯片对应时间总和,t″ij为确定测试类型yi″中的测试向量v″ij对应的运行时间,n″ij为运行到某个时间点,统计到坏的芯片是由于测试向量v″ij所测的对应次数。

本发明的优点在于:

本发明实施例提出一种分级动态调整测试类型和测试向量的方法,根据前期的测试结果,动态调整测试类型,将高质量的测试类型调整到最前面,让坏的被测电路最早测试出来。可以提高测试效率,降低测试成本。

进一步的,还可以根据前期的测试结果,结合当前的测试情况,动态调整测试向量的顺序,将高质量的测试向量调整到最前面,让坏的被测电路最早测试出来。可以提高测试效率,降低测试成本。且通过加入判断程序,可保证所有测试向量全部运行过,动态调整时不会遗漏高质量的测试向量。

本发明的优点是考虑测试向量和测试类型的质量,将高质量的测试向量和测试类型提前。其创新之处是根据前期集成电路的测试结果,对将测试向量和测试类型进行了分级排序,将易出现故障的测试向量和测试类型动态调整到前面。同时,还结合了当前的测试情况,动态调整测试类型和测试向量的顺序,使排序后的测试类型和测试向量更适合实际的集成电路测试。实际测试时,可以更早的发现有故障的集成电路,减少了测试时间。

附图说明

图1为本发明实施例提供的方法的流程示意图。

具体实施方式

为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:

一种测试流程动态调整方法,其根据测试类型的测试结果来调整测试类型的顺序。

不失一般性,假设测试类型有:y1,y2,……,yi,……,yn。对于任一测试类型yi的测试向量为vi1,vi2,……,vij,……,vim,与测试向量对应的测试时间分别为:ti1,ti2,……,tij,……,yim。运行到当前时间点,前期坏的芯片由于测试向量vi1,vi2,……,vij,……,vim所测试成功,其测成功的对应次数分别为ni1,ni2,……,nij,……,nim。

测试类型调整方法按如下步骤进行:

步骤11:计算测试类型yi对应能测出坏芯片的次数总和:

步骤12:计算测试类型yi能测坏芯片对应时间总和:

步骤13:根据次数总和和时间总和计算测试类型yi的权重:

步骤14:按权重wyi重新排序y1,y2,……,yi,……,yn,得到新的测试类型序列:y1',y2',……,yi'……,yn'。

上述方法仅对测试类型进行调序。为了实现多级调整,进一步的还可以对每个测试类型中的多个测试向量进行调序,具体为:

本实施例的主要思想是先测试一部分集成电路,根据测试结果先初始化测试类型的顺序和测试向量的顺序。一边测试电路一边调整测试向量的顺序,当累积到一定程度,调整测试类型的顺序。整个过程是动态更新的。具体过程如下:

1、随机测试

首先,从被测集成电路,随机选取不同批次的集成电路,按不同测试类型,不同测试向量加载,按某一顺序运行集成电路的测试,这个顺序可以是客户要求,也可以是任选的,甚至是改变的。不失一般性,被测集成电路的测试类型有:y1,y2,……,yi,……,yn;对于任一测试类型,其包含若干个确定的测试向量,设yi中包含的测试向量为:vi1,vi2,……,vij,……,vim。其中i,j,n,m均为整数。对于有故障的集成电路,统计其信息,不失一般性,假设统计到坏的芯片是由于测试向量vi1,vi2,……,vij,……,vim所测,其测的对应次数分别为ni1,ni2,……,nij,……,nim。

随机测试的目的是为了让不同批次的集成电路都有样本被测试,更具有代表性。

2、初始化

设置初始化参数num,该值最小为1,最大为前期统计的测试向量{vi1,vi2,……,vij,……,vim}所能测试到坏集成电路时的动行次数{ni1,ni2,……,nij,……,nim}的最大值。num的值决定最终的测试向量调整顺序的结果,值越大效果越好,一般情况取{ni1,ni2,……,nij,……,nim}的最大值,记num=max{ni1,ni2,……,nij,……,nim},一般情况下num取最大值。

51)设置初始化参数num,所述num为正整数;

52)判断是否所有测试向量的运行次数均大于mum,若否,选择第一条测试向量为当前测试向量,跳转到步骤53);若是,跳转到步骤57);

53)将当前测试向量提前到测试向量最前,跳转到步骤54);

54)判断是否有下一个测试向量,如果是,选择下一个测试向量为当前测试向量,跳转到步骤53);如果否,跳转到步骤55);

55)选择当前的测试向量对任一未测的集成电路进行测试,更新该测试向量的运行次数,判断该集成电路是否存在故障,如果该集成电路有故障,则更新该测试向量所测的故障数,跳转到步骤52);如果该集成电路无故障,跳转到步骤56);

56)选择下一个测试向量为当前的测试向量,跳转到步骤55);

不失一般性,假设此时统计到坏的芯片是由于测试向量vi1,vi2,……,vij,……,vim所测,其测的对应次数分别为n’i1,n’i2,……,n’ij,……,n’im。

初始化的目的是为了确保每一个测试向量都能应到测试,避免高质量的测试向量未使用的情况。初始化过程为先选再测,即先将所有小于num的向量全部提到前面,然后运行测试,只要不是所有向量都小于num,一直循环。

3、初步排序

1)测试向量排序

不失一般性,对于确定测试类型yi的测试向量vi1,vi2,……,vij,……,vim对应的运行时间分别为:ti1,ti2,……,tij,……,yim。

步骤1:令vij的权重wj=n’ij/tij,计算j=1,2,……,m时权重wj的值。

步骤2:根据测试向量vi1,vi2,……,vij,……,vim对应权重wj值的大小,将wj按从大到小顺序排列对应测试向量,得到新的测试向量v’i1,v’i2,……,v’ij,……,v’im。

得到的测试向量v’i1,v’i2,……,v’ij,……,v’im即为动态调整后的测试向量。

2)测试类型排序

步骤1:计算测试类型yi对应能测坏芯片的次数总和:

步骤2:计算测试类型yi能测坏芯片对应时间总和:

步骤3:根据次数总和和时间总和计算测试类型yi的权重:

步骤4:按权重wyi重新排序y1,y2,……,yi,……,yn,得到新的测试类型:y1',y2',……,yi'……,yn'。

初步排序的基本思想是根据前面的测试结果将质量高的测试向量和测试类型放有前面,可以更早的让集成电路故障出现,减少故障集成电路的测试时间。

4、动态组合调整

不失一般性,假设当前的测试类型按顺序为:y1″,y2″,……,yi″,……,yn″;yi″中包含的测试向量为:v″i1,v″i2,……,v″ij,……,v″im。坏的芯片是由于测试向量v″i1,v″i2,……,v″ij,……,v″im所测,其测的对应次数分别为n″i1,n″i2,……,n″ij,……,n″im

当前已进行了部分集成电路的测试,还有大量未测集成电路等待测试。由于测试类型和测试向量是排过序的,因此在动态调整时,只用考虑当前的测试类型和测试向量会不会向前移动,具体测试过程如下。

步骤1:判断是否还有集成电路未测试完,若已全部测试完,转到步骤8。

步骤2:任选一待测芯片,依前面调整好的测试类型和测试向量,按顺序加载测试向量,如果测试成功,重复步骤1;如果测试失败,转到步骤3。

步骤3:记录测试到集成电路故障的对应测试向量和测试类型,将测试向量测试到的故障集成电路数在原始的数字上增加1。不失一般性,设由于测试类型yi″中测试向量v″ij测到集成电路存在故障,到目前为止,该测试向量v″ij能测到集成电路出现的故障数为n″ij,此时,需要将n″ij增加1,即n″ij=n″ij+1。

步骤4:判断当前测试向量v″ij需不需要与它前一的测试向量v″i(j-1)交换顺序。具体如下:判读测试向量v″ij测试到故障集成电路的次数n″ij与测试向量v″i(j-1)测试到故障集成电路的次数n″i(j-1)的大小,若n″i(j-1)≥n″ij,不需要调整向量的顺序,转到步骤1。若n″i(j-1)<n″ij,将测试向量v″ij与它前面的测试向量v″i(j-1)交换顺序,并同时交换能测的故障集成电路数量。

步骤5:判断交换到前面的测试向量是否还要继续向前交换。将v″i(j-1)更新为当测测试向量,重复步骤4,判断该测试向量v″i(j-1)是否需要与前一测试向量v″i(j-2)。若不需要交换,转到步骤6,若需要交换,重复步骤5。

步骤6:判断当前测试类型yi″需不需要与它前一的测试类型y″i-1交换顺序。分别计算yi″与y″i-1的权重比较的大小,若转到步骤1,否则交换测试类型yi″和y″i-1的顺序。转到步骤1。

步骤7:判断交换到前面的测试类型是否还要继续向前交换。将y″i-1更新为当测测试类型,重复步骤6,判断该测试向量y″i-1是否需要与前一测试向量y″i-2。若不需要交换,转到步骤6,若需要交换,重复步骤7。

步骤8:结束测试。

需要指出的是测试类型的调整和测试向量的调整可以同步进行,也可以分开进行,计算过程相对独立。可以先调整测试类型顺序,再在测试类型内部调整测试向量顺序;也可以先调整测试向量的顺序,后调整测试类型顺序。两种算法相对独立,最终结果是一样的。

本实施例还提供一种测试流程动态调整系统,包括测试类型调整模块、测试向量调整模块、初始化模块、动态组合调整模块。

所述测试类型调整模块包括:

测试类型次数计算单元:计算测试类型对应能测出坏芯片的次数;

测试类型时间权重计算单元:计算测试类型能测坏芯片对应时间权重;

测试类型权重计算单元:计算测试类型的权重;

测试类型排序单元:按权重重新排序,得到新的测试类型序列。

还包括针对每一个测试类型进行测试向量调整的测试向量调整模块,每一个测试类型内包括多个测试向量;所述测试向量调整模块用以计算单个测试向量的权重,根据单个测试向量的权重排序,得到新的测试向量顺序。

所述初始化模块用以设置初始化参数num,所述num为正整数;然后判断当前测试向量运行次数是否小于num,如果是,则将当前测试向量提前到测试向量最前,继续运行下一个测试向量;如果否,初始化结束。

所述动态组合调整模块具体为:

51)判断是否还有集成电路未测试完,若已全部测试完,转到步骤48);

52)任选一待测芯片,依排序后的测试类型和测试向量,按顺序加载测试向量,如果测试成功,重复步骤51);如果测试失败,转到步骤53);

53)记录测试到集成电路故障的对应测试向量和测试类型,累加测试向量测试到的故障集成电路数;54)判断当前测试向量v″ij是否需要与它前一的测试向量v″i(j-1)交换顺序,具体如下:判断测试向量v″ij测试到故障集成电路的次数n″ij与测试向量v″i(j-1)测试到故障集成电路的次数n″i(j-1)的大小,若n″i(j-1)≥n″ij,不需要调整向量的顺序,转到步骤51);若n″i(j-1)<n″ij,将测试向量v″ij与它前面的测试向量v″i(j-1)交换顺序,并同时交换能测的故障集成电路数量;

55)判断交换到前面的测试向量是否还要继续向前交换,具体为:将v″i(j-1)更新为当测测试向量,重复步骤54),判断该测试向量v″i(j-1)是否需要与前一测试向量v″i(j-2),若不需要交换,转到步骤56),若需要交换,重复步骤55);

56)判断当前测试类型yi″需不需要与它前一的测试类型y″i-1交换顺序,具体为:分别计算yi″与y″i-1的权重比较的大小,若转到步骤51),否则交换测试类型yi″和y″i-1的顺序,转到步骤51);

57)判断交换到前面的测试类型是否还要继续向前交换。将y″i-1更新为当测测试类型,重复步骤56),判断该测试向量y″i-1是否需要与前一测试向量y″i-2;若不需要交换,转到步骤56),若需要交换,重复步骤57)。

48)结束测试。

所述yi″与y″i-1的权重计算公式为其中,为测试类型yi″对应能测出坏芯片的次数总和,为测试类型yi″能测坏芯片对应时间总和,t″ij为确定测试类型yi″中的测试向量v″ij对应的运行时间,n″ij为运行到某个时间点,统计到坏的芯片是由于测试向量v″ij所测的对应次数。

本实施例中的i、j、n、m均为正整数。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1