一种快速的集成电路测试流程优化方法

文档序号:5932088阅读:203来源:国知局
专利名称:一种快速的集成电路测试流程优化方法
技术领域
本发明涉及大规模集成电路测试技术领域,特别是一种快速的集成电路测试流程优化方法,是对集成电路芯片进行失效分析和降低测试成本的一种方法。
背景技术
半导体技术的快速发展推动了芯片集成度的和工作频率的迅速增加。芯片工作频率的增加不仅会增加芯片设计难度,而且使得芯片的后期测试成本也跟着增加。导致现代芯片测试成本增加的原因有1)芯片工作频率增加迅速,使得要提供真速测试的测试设备的工作频率也要随之发生相应的提高,然而,高频率的测试设备的成本是非常高的。2)测试时间过长,测试时间长源于现代芯片测试中,待测试的模块的数量十分庞大,对这些模块进行全面的测试需要很长的时间。3)测试数据量体积庞大使得对存储这些数据量的测试设备内存要求比较大,而大存储容量内存会增加测试设备单个通道上的成本。4)现代芯片的管脚比较多,对这些芯片进行测试需要相同数量的测试通道。通道数量的增加也会增加测试设备的成本。
芯片的测试主要包含三个部分测试功能测试、结构测试和参数测试。功能测试是使用根据芯片设计规范产生的功能性测试向量集对芯片进行测试。这些向量集对待测电路的功能进行逐一的测试。功能性测试向量集可来由芯片设计人员提供或者是来源于芯片在验证阶段生成的功能性验证测试向量。直接使用功能性测试向量对芯片进行成品测试有两个主要的问题(1)功能性测试向量对芯片制造中的物理缺陷覆盖率不是很高。(2)功能性测试向量体积比较庞大。为了提高测试覆盖率和减少测试成本,结构性测试被普遍采用。结构性测试包含了常见的扫描测试、逻辑内建自测试、存储器内建自测试、模拟电路内建自测试、边界扫描、测试资源划分等测试框架。由于结构性测试向量是针对实际物理缺陷抽象的故障模型产生的,因此相对于功能向量而言,结构性测试向量对芯片制造过程中的物理缺陷的覆盖率比较高。同时,从上面结构性测试向量产生的机制可以看出,结构性测试向量具有很强的针对性,这使得产生的测试向量体积比较小。参数测试是为了保证芯片在工作时参数符合工作环境的要求而施加的测试,参数测试包含直流参数测试、交流参数测试、总线的建立保持时间特性测试、芯片供给时钟的特性参数测试等。
分析了测试项目的构成可以发现一个降低测试成本的方法通过对测试向量的覆盖率进行分析,尽量删除一些在实际测试中对物理缺陷覆盖率比较低或者是没有什么覆盖能力的测试向量。然而,减少测试向量固然可以减少施加这些向量的时间,但是测试向量的减少会影响对芯片的测试覆盖率。
减少测试时间的另外一个思路是减少失效芯片的测试时间。芯片测试时,测试设备通常有两种模式可以设置“直到所有项目测试完”模式和“错误—停止”模式。“直到所有项目测试完”模式指对所有测试项目都要进行测试,即使一个芯片在测试中,在某个项目上遇到了实际响应和期望响应不一致时也不停止,继续将所有测试项目测完。“错误—停止”模式意味着如果测试设备发现错误,则立即停止测试,并将芯片放到相应的故障分类盒中。芯片在验证分析的阶段,为了尽量收集失效数据,需要采用第一种模式。当芯片完成了失效分析,进行大批量量产测试的时候,都选用“错误—停止”模式,因为在这种模式下,对于一个芯片而言,一旦发现故障,测试会立即停止。这样可以节省失效芯片的测试时间。这样,如果测试设备采用“错误—停止”模式,失效芯片的测试时间实际上是芯片第一个故障被发现的时间。如果将发现失效故障能力比较强的测试向量排在整个测试流程的前面,那么失效芯片就可以以一个较大概率在测试初期被淘汰,从而降低了失效芯片的测试时间和成本。采用这种方法,本质就是要对测试流程进行优化。
测试项目是完成一个测试目标的一系列测试向量的结合。测试项目的划分可大可小,一般根据实际测试的对象和目标进行划分。假设有n个测试项目,这些测试项目为I1,I2,…,In。测试流程FLOW是测试项目的一个有序集合,FLOW={I1,I2,…,In}。m个待测失效芯片的集合为D={D1,D2,D3,…,Dm},根据测试流程FLOW得到每个失效芯片的测试时间为T={TD1,TD2,TD3,…,TDn},这样测试流程优化就转变为寻找一个测试流程FLOW={I1,I2,…,In},使得T=ΣTDD∈{D1,D2,..Dn}]]>最小。
动态规划算法可以用来解决这个问题。动态规划算法采用多步决策过程。首先要建立一个目标函数,在动态规划过程中,用一个无向图来表示多步决策过程,在这个无向图中,每一个节点表示一个测试项目,两个连续决策阶段相邻节点之间连线表示这两个测试项目耗费的时间。每个阶段由目标函数计算总的测试成本。使用这种方法需要的搜索空间很大,假设测试流程由n个测试项目构成,那么整个状态搜索空间为2n,平均每个状态的输出变数为(n+1)/2,其计算复杂度就为O(dn2n)。应用动态规划方法对测试流程优化可参考下列文献“Optimal ordering of analog integrated circuit test to minimize test time”,byS.D.Huss and R.S.Gyurcsik,Published in the Proceeding of IEEE DesignAutomation Conference,1991,494~499。
“Defect-Oriented Test Scheduling”,by W.Jiang,B.Vinnakota,Published inIEEE Transaction on Very Large Scale Integration(VLSI)Systems,Vol.9,No 3,JUNE 2001,427~438”使用动态规划算法虽然能保证得到最优解,然而其指数增长的时间复杂度使得其很难适用于现代SOC大项目量的测试中。
本发明提出一种新的基于失效分析的测试流程优化方法。该方法采用一个新的数据结构—测试有效性表。和普通动态规划算法不一样,本发明采用基于启发信息的贪心算法,该贪心算法虽然不能总保证得到最优解,然而,其快速的优化速度可以使其在一个较短的时间内产生一个可以接受的测试流程优化结果。

发明内容
本发明的目的在于提供一种快速的集成电路测试流程优化方法。
本发明针对失效芯片的测试时间减少,提出了一种快速的测试流程排序方法。该方法具有简单、低时间复杂度、易于实现的优点。这些优点使得其特别适合于当前SOC测试中测试项目比较多的测试环境。
本发明目的之一是提供一个存储芯片失效分析结果数据的表结构—测试有效性表。该表结构简单,表的空间复杂度为测试项目的平方。
本发明目的之二是提供一种基于测试有效性表的启发式排序方法,该排序方法用于产生一个测试流程优化结果,该结果能够大大减少失效芯片的测试时间,从而降低芯片量产测试时的测试成本。
发明技术方案本发明提出的测试优化方法是基于对芯片进行验证分析时的失效分析数据的。
快速的集成电路测试流程优化方法,通过处理验证阶段收集得到的失效芯片的数据,对测试流程中的测试项目进行排序,达到降低失效芯片测试成本的目的。
由一系列完成特定测试任务的测试项目构成,测试流程中测试项目按顺序排列。
芯片测试一般要分两个阶段芯片验证分析阶段和芯片量产测试阶段。芯片验证分析阶段的任务是利用测试向量验证设计人员对芯片的期望是否在芯片中得到体现。同时,还要对芯片的失效进行分类和定性分析,收集大量的关于芯片的失效分析数据,这些数据一来可以用作测试流程优化的基础,二来可以反馈给物理设计人员作为新版本开发时的参考。物理设计人员可以根据实测的数据调整版图的设计,以优化直流和交流参数。

芯片在验证分析的时候,测试设备需要运行在“直到所有项目测试完”模式下。这样对于每个芯片都会将所有测试项目测完,每一个芯片就会有一个完整的记录。假设测试流程中有n个测试项目,这些测试项目为I1,I2,…,In。测试流程FLOW是测试项目的一个有序集合,FLOW={I1,I2,…,In}。m个待测失效芯片的集合为D={D1,D2,D3,…,Dm},根据测试流程FLOW得到每个失效芯片的测试时间为T={TD1,TD2,TD3,…,TDn}。失效分析后会得到芯片的失效分析数据,从测试设备中得出的数据格式一般为通过/失效测试信息表。在该表中,每一行代表一个失效器件,每一列代表一个测试项目。Fij是表格中第i行和第j列的值。上一页表格介绍了一个通过/失效测试信息表示例。Fij代表第i个失效器件对于第j个测试项目的测试结果。Fij取值有两个{0,1},如果Fij=1,则表示第i个器件不能通过第j个测试项目测试,反之,Fij=0,则代表第i个器件能通过第j个测试项目。
前面的失效分析,可以帮助知道那些测试向量对于芯片的实际故障是有效的,从而导引去选择测试向量。同时失效分析得出的数据还可以帮助我们优化测试流程,从而减少失效芯片的发现时间。测试流程优化首先需要对其流程进行划分,将测试流程划分为若干个细粒度的测试项目。每一个测试项目是一些性质相似的向量的集合。针对测试项目定义一些概念
定义1测试项目I的“有效系数”Y(I),其中Y(I)=测试项目I能够发现的失效芯片样本数目;定义2测试项目I的“特征有效系数”E(I),其中E(I)=只有测试项目I能够发现的失效芯片数目;本发明将提出一种新的数据结构—测试项目有效性表。假设一个测试流程Flow是由n个测试项目作为元素构成的一个集合,Flow=<I1,I2,…,Ii,…,In-1,In>,测试项目有效表如下所述

在这个表中,每一行和每一列均表示一个测试项目,其中,Y(Ii,Ij)表示测试项目Ii,Ij均能发现的失效芯片样本数目。很显然,Y(Ii,Ii)就是测试项目Ii的特征有效系数E(Ii),这些值在上图,已用阴影方格标出。当然,对于测试项目优化而言,测试时间也是一个需要考虑的因素,测试时间可由一个简单列表存储。

比较测试项目有效性表和通过/失效测试信息表中所含的信息,可以看出使用一个简单的脚本就可以将从测试设备上收集得到的通过/失效测试信息表转换为本发明中提出的优化方法的基础—测试项目有效性表。
为了减少失效芯片的测试时间,需要考虑两方面的问题测试项目的有效系数和测试项目耗费时间。在本发明书的“背景技术”部分内容中,已经说明由于动态规划算法复杂度太大,不适合应用于SOC测试流程优化中。实际测试需要一种效率更高且优化效果较好的排序方法。为了能在多项式时间内对测试流程进行排序,本发明采用一种基于启发式信息的排序方法。定义测试项目I的“效率系数”F(I)为效率系数F(I)=Y(I)/T(I)其中,Y(I)为测试项目I的有效系数,T(I)为测试项目I耗费的测试时间。
根据定义可以看出F(I)是一个兼顾测试有效性和测试时间的参数。对于一个测试项目I,F(I)愈大,说明该项目发现失效芯片的效率越高。选择测试项目的效率系数作为启发式搜索信息,可以帮助我们取得局部的最优解,对于整个测试流程全局优化而言,利用该启发式搜索信息虽然不一定总能找到最优解,却可以找到比较优化的近似解。


图1是本发明提出的基于测试项目效率系数的排序方法。
图2是本发明测试流程优化方法在量产测试中的实现步骤框图。
本发明一个内容即是提供了一种基于测试项目效率系数的测试项目排序方法。基于测试项目效率系数的排序方法如附图1所述,其其具体组成有如下几个步骤输入测试项目有效性表和测试项目时间耗费表;输出优化后的测试流程OPTIMIZED_FLOW,OPTIMIZED_FLOW中测试项目按顺序排列;步骤S1开始。在应用本方法之前,需要根据前文所述的方法建立测试项目有效性表。该表中包含了各个测试项目的有效性情况。同时,本方法的另一个前提条件是测试项目时间表,该表建立方法前文已经作了叙述。
步骤S2从测试项目有效表中选取一个测试项目,该项目的测试效率最大。在测试项目有效性表和测试项目时间表的基础上,按照效率系数计算公式可以计算出所有项目的效率系数。从中选择一个效率系数最大的项目。
步骤S3将步骤S2中选定的测试项目加入优化后流程OPTIMIZED_FLOW。在初始情况下,OPTIMIZED_FLOW是空集。加入OPTIMIZED_FLOW中的项目是按照加入的先后顺序排列的。
步骤S4从测试项目有效性表中删除步骤S2选定项目所代表的行和列。
步骤S5更新测试项目有效性表,重新计算测试项目中尚余测试项目的有效性值。因为步骤S3对测试项目表进行了删减,所以测试项目有效表中的最后一行“有效性”需要重新计算。
步骤S6判断所有测试项目是否均加入到OPTIMIZED_FLOW中。如果没有完全加入,则跳转到步骤S2;如果已经完全加入,则跳转到步骤S7。
步骤S7结束。
方法的输出是一个已经经过排序优化后的测试项目优化流程OPTIMIZED_FLOW。
下面用一个例子来详细描述附图1所提出的排序方法。
如果在一次测试中,有5片样片作为失效分析的样本。从失效分析中得到的通过/失效测试信息表为

简单分析该表可以看出,测试项目I1是一个对失效芯片样本比较有效的测试项目,只要使用该项目就可以判断所有芯片是失效的。从该表出发可以很容易得到测试项目有效性表


得到了测试项目有效性表后就可以应用本发明提出的启发式排序方法进行优化。
第一次执行排序方法方法第一步首先对测试项目根据效率系数进行排序,得到{I1(29.09),I3(21.05),I4(17.24),I7(14.61),I6(14.29),I2(6.72)},其中I1(29.09)表示测试项目I1的效率系数为29.09。选取具有最大效率系数的I1,加入新流程OPTIMIZED_FLOW={I1}。方法第二、三步,在测试项目有效性表中删除I1行和I1列,并更新测试有效性表得
第一次执行排序方法结果

第二次执行排序方法方法第一步首先对测试项目根据效率系数进行排序得到{I3(15.29),I4(13.79),I7(11.24),I6(11.11),I2(5.22)},选取具有最大效率系数的I3加入新流程OPTIMIZED_FLOW={I1,I3}。方法第二、三步,在测试项目有效性表中删除I3行和I3列,并更新测试有效性表得第二次执行排序方法结果

第三次执行排序方法方法第一步首先对测试项目根据效率系数进行排序得到{I4(10.34),I6(9.52),I7(8.99),I5(5.88),I2(4.78)},选取具有最大效率系数的I4加入新流程OPTIMIZED_FLOW={I1,I3,I4}。方法第二、三步,在测试项目有效性表中删除I4行和I4列,并更新测试有效性表得第三次执行排序方法结果

第四次执行排序方法方法第一步首先对测试项目根据效率系数进行排序得到{I6(7.94),I7(6.74),I2(3.92),I5(3.92)},选取具有最大效率系数的I6加入新流程OPTIMIZED_FLOW={I1,I3,I4,I6}。方法第二、三步,在测试项目有效性表中删除I6行和I6列,并更新测试有效性表第四次执行排序方法结果

第五次执行排序方法方法第一步首先对测试项目根据效率系数进行排序得到{I7(4.49),I5(2.94),I2(2.23)},选取具有最大效率系数的I7加入新流程OPTIMIZED_FLOW={I1,I3,I4,I6,I7}。方法第二、三步,在测试项目有效性表中删除I7行和I7列,并更新测试有效性表第五次执行排序方法结果

第六次执行排序方法方法第一步首先对测试项目根据效率系数进行排序得到{I5(0.98),I2(0.75)},选取具有最大效率系数的I5加入新流程OPTIMIZED_FLOW={I1,I3,I4,I6,I7,I5}。方法第二、三步,在测试项目有效性表中删除I5行和I5列。经过六次优化后,只剩下I2一个测试项目,因此不需要再次计算,直接将I2加入到优化流程。这样可以得到最后优化流程OPTIMIZED_FLOW={I1,I3,I4,I6,I7,I5,I2}。
本发明排序方法时间复杂度分析从方法描述可以看出,主要时间复杂度在两点寻找测试效率系数最大的测试项目和更新测试项目有效性表。在方法的第k步,测试项目有效表中尚余n-k个测试项目,在这些测试项目中寻找最大效率系数的测试项目时间复杂度为n-k,同时更新测试项目有效性表的复杂度为(n-k)*(n-k)。就整个方法执行过程而言,寻找具有效率系数最大值的测试项目的复杂度为Σk=0n-1(n-k)=(n(n-1)/2),]]>更新测试项目有效表的复杂度为Σk=0n-1(n-k)2=16[n*(n+1)*(2n+1)],]]>这样整个方法的时间复杂度就为o(dn3)。
本发明提出的测试流程优化方法,通过对测试流程中的测试项目进行重排序达到减少失效芯片测试时间的目的。该优化方法需要结合芯片成品验证阶段的失效分析,优化方法的数据来源于失效分析中得出的数据。
图2描述了本发明提出的优化方法在量产测试过程中所需要的一些步骤框图。对于一批量产芯片而言,应用本发明提出的优化方法,需要经历两大阶段验证阶段的失效分析和量产测试之前的优化。这两大阶段具体需要经历的下列几个步骤步骤S10确定验证分析阶段测试向量和测试流程。选择确定验证分析阶段测试向量,并划分为测试项目,根据这些测试项目形成验证分析阶段的测试流程。具体有如下几个串行的步骤a)收集所有需要验证的测试向量。
b)根据这些测试向量的测试目的,把具有相同目的的测试向量归结起来成为一个测试项目。
c)根据测试项目编制测试流程。验证阶段的测试流程中测试项目顺序并不很重要。
步骤S20应用步骤S10确定的测试向量和测试流程对芯片进行验证分析并得到原始的通过/失效测试信息表。在量产芯片中,选取一个合适的样本数目D,针对这D个样本芯片应用步骤S10指定的测试流程进行分析。记录分析数据,一般从测试设备得到的数据和通过/失效测试信息表相似,可直接转化得到通过/失效测试信息表。
在该步骤中需要注意的是a)样本数量选取的要适中。样本数量太少,则样本没有代表性,样本数量太大,则收集数据需要的时间太长,使得整个优化流程周期加长。根据发明人在几个芯片中应用本发明优化方法的经验而言,一般来说选取1000片失效芯片来分析是比较合适的。
b)在验证阶段测试设备测试模式需要设置为“直到所有项目测试完”。
步骤S30调用转换程序将通过/失效测试信息表转化为测试项目有效性表。该转换程序可以是根据这两个表格特点编制的自动转化软件。
步骤S40应用基于测试效率系数的排序方法,对测试项目进行优化,得到一个优化的测试流程。根据步骤S30得到的测试项目有效性表,然后应用附图1提出的基于测试项目效率系数的启发式式排序方法对测试项目进行排序,优化排序后就可以得到一个优化的测试项目流程。最后量产测试时即是采用这个排序后的测试流程对芯片进行测试。
本发明针对芯片量产测试中测试流程提出了一种新的优化方法,优化方法的目标是使得测试设备在测试失效芯片时能够尽早的发现故障,并淘汰这些失效芯片,从而降低失效芯片的实际测试时间,降低测试成本。优化方法的基础是一个测试项目有效性表,测试项目有效性表内容来自于芯片的失效分析数据,它全面的表达了测试项目对失效芯片的覆盖情况。利用该表并使用测试项目效率系数作为优化方法的启发式搜索信息,可以在一个较短的时间内找到比较优化的解。
本发明的测试流程优化方法。通过对测试项目重排序,减少了失效芯片的测试时间。基于芯片验证分析阶段的失效数据,本发明提出了一种测试有效性表用于存储失效数据,从测试设备直接得到的失效数据和测试有效性表的转化简单,易于自动实现。基于测试有效性表,本发明又提出了一种以测试项目效率系数为启发式搜索信息的排序方法。由于采用了启发式搜索排序方法,本发明优化方法虽然不一定总能提供最优解,却能在一个相对短的时间内提供一个比较优化的解。本发明提出的优化方法具有简单、易于实现且优化速度快的特点。优化速度快使得本发明特别适合应用于现代SOC测试中测试项目一般都比较多的情况。
权利要求
1.一种快速的集成电路测试流程优化方法,其特征在于,通过处理验证阶段收集得到的失效芯片的数据,对测试流程中的测试项目进行排序,达到降低失效芯片测试成本的目的。
2.根据权利要求1所述的快速的集成电路测试流程优化方法,其特征在于,由一系列完成特定测试任务的测试项目构成,测试流程中测试项目按顺序排列。
3.根据权利要求1所述的快速的集成电路测试流程优化方法,其特征在于,由如下具体步骤组成步骤S10确定验证分析阶段测试向量和测试流程;步骤S20应用步骤S10确定的测试向量和测试流程对芯片进行验证分析并得到原始的通过/失效测试信息表;步骤S30调用转换程序将通过/失效测试信息表转化为测试项目有效性表;步骤S40应用基于测试效率系数的排序方法,对测试项目进行优化,得到一个优化的测试流程。
4.根据权利要求3所述的快速的集成电路测试流程优化方法,其特征在于,步骤S10中的确定验证分析阶段测试向量和测试流程;其步骤如下a)收集所有需要验证的测试向量;b)根据这些测试向量的测试目的,把具有相同目的的测试向量归结起来成为一个测试项目;c)根据测试项目编制测试流程。
5.利要求3所述的快速的集成电路测试流程优化方法,其特征在于,步骤S30中的测试项目有效性表,基于验证分析阶段的失效芯片的失效数据,其具体组成如下所述a)测试项目有效性表每一行表示一个测试项目;b)测试项目有效性表每一列表示一个测试项目;c)测试项目有效性表第i行、第j列表示第i个和第j个测试项目在一个失效芯片样本内均能发现的失效芯片数目。
6.据权利要求3所述的快速的集成电路测试流程优化方法,其特征在于,步骤S40中的基于测试效率系数的排序方法,基于测试项目有效性表和测试项目效率系数,其排序方法具体组成如下所述输入测试项目有效性表和测试项目时间耗费表;输出优化后的测试流程OPTIMIZED_FLOW,OPTIMIZED_FLOW中测试项目按顺序排列;步骤S1开始;步骤S2从测试项目有效表中选取一个测试项目,该项目的效率系数最大;步骤S3将步骤S2中选定的测试项目加入OPTIMIZED_FLOW;步骤S4从测试项目有效性表中删去步骤S2选定项目所代表的行和列;步骤S5更新测试项目有效性表,重新计算测试项目中尚余测试项目的有效性值;步骤S6判断所有测试项目是否均已加OPTIMIZED_FLOW中,如果还没有完全加入,则跳转到步骤S2;如果已经完全加入,则跳转到步骤S7;步骤S7结束
全文摘要
一种快速的集成电路测试流程优化方法,通过对测试项目重排序,减少了失效芯片的测试时间。包括步骤S10确定验证分析阶段测试向量和测试流程;S20确定的测试向量和测试流程对芯片进行验证分析并得到原始的通过/失效测试信息表;S30调用转换程序将通过/失效测试信息表转化为测试项目有效性表;S40应用基于测试效率系数的排序方法,对测试项目进行优化,得到一个优化的测试流程。本发明提出的优化方法具有简单、易于实现且优化速度快的特点。优化速度快使得本发明特别适合应用于现代SOC测试中测试项目一般都比较多的情况。
文档编号G01R31/28GK1560646SQ20041000672
公开日2005年1月5日 申请日期2004年2月26日 优先权日2004年2月26日
发明者韩银和, 李晓维 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1