测试生长法的制作方法

文档序号:102352阅读:271来源:国知局
专利名称:测试生长法的制作方法
本发明涉及集成电路的测试,尤其是涉及响应电路设计信息的产生测量向量的方法。
由于超大规模集成电路器件的复杂性以及难于达到成品中内部导电通路,在设计阶段就经常要想方设法去确定所拟议的电路的可测试性,并设计出成套的可用测试输入或向量以检查所制造的器件中的可能故障。设计的向量,即那些准备用于电路正常操作的向量可能适宜也可能不适宜揭露电路中的隐藏故障,因这些故障只有在不寻常的操作条件下才变得明显。如果电路的输入端数很大,为揭露这些故障而应用二进制输入值的所有组合就会变得不切实际。另一种方法则利用自动测试码模式发生器,以提供一种适于揭露某个或某些指定的故障,例如电路中的“胶着”(stuck-at)故障。因而,采用一种故障模拟程序以检查结果,并确定其它故障是否也可用相同的输入向量检测其它故障。即,故障模拟器试图为一已知测试的效能分级。于是,另一种故障拟用于自动测试码模式发生器,这种故障不会被第一测试向量掩盖,而自动测试码模式发生器提供一种第二测试向量。这种迭代法继续下去,直到被掩盖的故障数同合乎要求或可以接受为止。可惜的是,这些过程,就以模拟而需用的计算机时间来说,是既冗长而又花钱的。许多设计者终于在可能的场合下避免采用这类测试方法。
总的说来,至今似乎还没有一种在集成电路器件中采用产生测试向量的方法,该方法是真正令人满意的。
根据本发明,一个已知的测试计数过程被用以提供可测试性信息,然后用这一相同的信息以枚举法产生测试向量。
更具体地说,一个集成电路网络的可测试性是根据测试计数过程来量度的,这个测试计数过程包括了通过介入门电路从输入端前向至一个主输出端并后向返回到输入端的敏感测试计数的传输,以便给网络中的节点提供测试计数矩阵。从所说矩阵,通过将各自的在所说输入端的敏感数值前向驱动至一所说输出端,并后向回到所说输入端的若干连续趟数来枚举测试计数,从而按照原来各电路节点处的所说矩阵所叙述的做法来累积测试计数。一组敏感值(每趟都要驱动这些节点值)被分别存储起来,而每组的输入敏感值都包括集成电路网络用的测试向量。
本发明的一个目的是要提供一种改进的测试集成电路器件的方法。
本发明另一个目的是要在设计和计算机模拟阶段(它不要求无节制地消耗计算机时间)提供一种改进的测试集成电路器件的方法。
在本说明书的结束部分要特别指出本发明的主题,并明显地提出权利要求
。但是,不管是本发明的构造还是操作方法,都可以和其他优点和目的一起,通过参考下列叙述和附图(其中相同的参考字符代表相同的元件)来很好理解。
图1是先有技术的自动测试码模式产生流程图,图2是根据本发明的用以产生测试向量的流程图,图3是门电路示意图,用以说明在测试计数中所采用的敏感的和钝感的测试值,图4说明可能在与门电路出现的敏感的和钝感的输入值和输出值,图5A画出一个测试计数矩阵,图5B画出一个异或门上的测试计数值,图6说明再汇聚扇出术语中的路径定义,图7说明为多个门电路用的前向敏感驱动,图8说明为若干个不同门电路用的后向敏感驱动,
图9说明为多个门电路用的后向钝感驱动,图10至26是本发明包括可测试性分析和测试向量产生过程的诸步骤0至16,图27是按图10至26过程推导出的一整套测试数组图,以及图28至32包括一个根据本发明的计算机化过程的流程图。
参考附图,具体说是参考图1,图中说明的先有技术过程包括自动测试码模式产生(方框10)和故障模拟(方框12)。这些方块在通用数字计算机中一般作为连续步骤加以执行,并将它重复应用,直到集成电路器件中预定的或可以接受的故障数可以被该过程推导出来的输入激励或向量组揭露出为止。根据本文前面提到的,自动测试码模式发生器以一组被揭露的故障开始,该组故障包括了集成电路器件中各种电路节点处的所有“胶着”故障。设计先有技术的自动测试码模式发生器以提出一个输入向量或一组输入数值,对至少一个“被揭露”的故障进行测试。然后,故障模拟器按照有多少故障被复盖来对自动测试码模式发生器分级,而在判定框14中,确定出所需的或可接受的故障复盖是否已经达到。如果当未达到,就要经过判定框16(如故障复盖表现为可以达到的)回到自动测试码模式发生器,该处的自动测试码模式发生器提出另一个向量,用故障模拟器进行分级。有可能输入和输出端的某些故障是未暴露的,因而可以在18处累积未暴露的故障组。当已达到所需故障复盖时,过程在方框20处紧致和合并故障指向测试组22,并提供一整套的测试组24。就如本文前面提到过的,这种先有技术的过程实施起来是很花时间的,因而也很花费。
根据本发明,在采用的一种简化过程中,为采用测试计数过程的可测试性分析30而利用了图2中26的电路描述和故障复盖要求28,这在下文会更全面地叙述。测试计数的结果与测试的向量数目有关,这些向量适用于要求达到所需目标可测试性的场合。可测试性的结果32被直接用于提供完整的测试组合36的测试生成步骤34。
测试生成程序宜在通用数字计算机连同下面电路本身的设计和模拟一起加以执行。但在下面的描述中,该过程的步骤将首先在概念上予以说明,随后才对程序算法作更详尽的介绍。
为了要了解本过程,首先需要说明测试计数或可测试性分析,因此曾用它确定某一已知电路的可测试性,同时也要说明需用于达到预定可测试性结果的向量数。1982年4月在科罗拉多州维尔举行的第五届电气和电子工程师学会可测试性设计专题研究小组上,在谢尔登B.艾克斯和巴拉克里希南.克里希拿墨提(Balakrishnan Krishnamurthy)的题为“估计测试量的测试计数技术”的论文中叙述了测试计数。根据该测试计数算法,每一引线的“敏感”值,可用每个原始门电路的输入和输出敏感值之间的简单代数关系,传输到要测试的电路网络里。只有当(当且仅当)引线“a”上“胶着在V”的故障是可观察时,引线“a”上的逻辑值v才是敏感的,同理,当且仅当引线“a”上“胶着在V”的故障是不可观察时,引线“a”上的逻辑值v才是钝感的。敏感的0和1分别表示为0+和1+。钝感的0或1则表示为0-或1-。参看图3,敏感的(和钝感的)值在接收了向量a=1、b=0、c=1(或简单写成101)的电路上表示。在执行敏感值时,可在输出引线上观察到,而在执行钝感值时,在输出引线上观察不到。对于任一个加到网络的测试向量而言,每条引线将表现为四个值0+、1+、0-或1-中的一个值。总之,这四个值称为测试值。
测试时,或相当于应用多个顺序测试向量以检测具体的故障时,引线a表现出的敏感的0和1的总数分别表示为a+0或a+1,而钝感的0和1的总数则分别表示为a-0或a-1,a+0、a+1、a-0和a-1这四个量叫做测量计数。在下文中,n+0等用以代表任意引线(如果没有含糊不清)的测试计数。一条引线“a”的测试计数矩阵是由a+0、a+1、a-0和a-1组成的2×2矩阵,它们分别在矩阵的左上、右上、左下和右下方。也可以使用3×3的测试计数矩阵以携带有关各列和行的和的额外信息。在这种情况下,2×2矩阵恰好是在相应的3×3矩阵的左上方。图5A说明典型的矩阵。
门电路输入端上的测试计数和同一门电路输出端上的测试计数必须满足称之为约束的某些关系。由于这些约束,门电路输入测试计数的改变会引起输出测试计数的改变,这种现象称之为前向传输。反之,由输出测试计数的改变而引起的输入测试的改变则称之为后向传输。前向和后向这两个传输,如本文所说,都受约束的控制。首先考虑与门的一个例子。如图4中说明的,每当一个与门的输出引线“C”需要是0+时,输入引线就至少有一个必须是0,它当且仅当其它输入是1-时才是灵敏的。因为这两种情况是互相排斥的,可得下面的结论C+0≥a+0+b+0(1)另一方面,每当有一个输入引线需要是1+时,输出和其它的输入引线就必须都是1+。故C+1≥max(a+1,b+1) (2)方程式(1)和(2)是通过一个与门的测试计数前向传输的约束。
后向传输也会影响测试计数。仔细考查图4中所有八种可能的情况后,就可显示出每当某一个输入引线是1-时,不是其余的输入引线全是0+就是输出引线是1-。因为这两种情况是互相排斥的,故存在一个约束为a-1≥b+1+c-1(3)另外,每个输出引线或其它任一个输入引线为1+时,输入引线就呈现1+。因此,a+1≥max(b+1,c+1) (3a)显然,通过结合(2)和(3a),也可推导出
a+1=b+1=c+1(4)方程式(3)和(4)是与门的后向传输约束。
同理,所有类型的一元门都可用相似方法得到。或门的相应约束被排列在下面,因这些约束是用在序贯的例子里。倒相器的约束也是很直观的。方程式(5)和(6)是或门前向传输的约束,(7)和(8)是或门后向传输的约束C+1≥a+1+b+1(5)C+0≥max(a+0,b+0) (6)a-0≥b+1+c-0(7)a+0=b+0=c+0(8)对于一个异或门来说,原始测试计数技术并没有寻访各灵敏度和逻辑值(n+0,n+1)的传输。对于多个异或门来说,敏感计数(n+0/n+1)的不同组合可能在相同的输入敏感计数的输出引线上。但总的敏感值(n+0+n+1)在各不同组合里保持不变,并等于输入引线间的最大的总敏感值。在根据本发明过程的测试计数传输中,总的测试计数在异或门输出引线上被平分。故如(n+0+n+1)的最大值为+,则输出引线上被传输的测试计数被赋予数值(5/5)。注意图5B。虽然其它组合也是可能的,但这个组合提供了非常满意的结果。
利用测试计数过程,为需要测试的电路网络中的各种节点推导出测试计数矩阵。为了便于说明,可以假定所有“胶着”的故障都是要检测的(即当引线停留在零电平或一电平,只要电路是在正确地工作,就不管节点应呈现什么电平)。在传输过程中,利用表达式(1)至(8)的约束,以及所提出的异或工具,一开始就可以将1/1赋予网络的各个输入引线(指出胶着在0和胶着在1的故障或各输入引线的1/1测试计数)。测试计数既前向又后向地传输。通过例子,在图10中解释一种典型电路的测试计数矩阵,这些矩阵曾经按前述的约束公式(1)至(8)加以推导。作为测试计数过程的结果(根据本发明的过程中称为TMA或可测试性测量分析),辨认出电路中各节点的测试计数,也辨认出测试胶着值所需的输入向量的总数。从图10中负载“Z”上的测试计数5/2看出所需的向量总数是7,其中五个测试向量将产生一个零输出,而二个测试向量则产生一个一输出。传输测试计数的过程,导致图10中说明的测试计数矩阵类型,在前述艾克斯和克里希拿墨提的论文中有更加全面的描述。根据本发明,还将测试计数矩阵信息进一步句以利用,用枚举法的测试产生确定测试向量,这将在下文更全面地描述。局部枚举首先用于再汇聚扇出回路,全局枚举则最后负责整个电路。
在测试生成过程中,由于有一个或多个下列的因素而使再汇聚扇出出现问题(a)自掩蔽在分支上设置的敏感值可以被其它分支上设置的灵敏值掩蔽掉,使根部(stem)变得不灵敏。
(b)多通路敏感化在某些情况下,根部可能是敏感的,而所有分支则是钝感的。
(c)冗余不论用什么过程,某些沿再汇聚路径的故障可能都检测不出来。
在处理测试生成期的再汇聚扇出期间,在这点引进根部分析会是有帮助的。根部分析以分析真实电路中所过到的名种结构来处理分支和根部(或公共输入)的敏感值之间的关系。参考图6,给下列名词下定义以协助解释根部分析D路径一个扇出路径,对分支和再汇聚点都敏感。要注意的是,分支上逻辑值的改变会引起再汇聚点(即再汇聚门的输入引线)上逻辑值的改变。换句话说,D路径往往是允许路径,符号nD表示再汇聚扇出中D路径的总数。
ND路径一个扇出路径,对分支是钝感的,但对再汇聚点则是敏感的。要注意的是,分支上逻辑值的改变不会引起再汇聚点上逻辑值的改变。换句话说,ND路径往往是禁止的路径。符号nND表示再汇聚扇出中的ND路径的总数。
U路径一个扇出路径,对分支和再汇聚点上都是钝感和。要注意的是,U路径可以是允许路径,也可以是禁止路径,而分支上的逻辑值的改变仅且仅当路径是允许时,才会影响再汇聚点上逻辑值的改变。符号nu代表再汇聚扇出中U路径的总数。
也要观察到,对于一元门的输入引线来说,敏感分布有三种可能性全都不是敏感的,只有一个是敏感的,或者全都是敏感的。对于异或门来说,要么全是敏感的,要么全都是不敏感的。
当对再汇聚门,缩写成RG,作上述观察时,再汇聚扇出根部S的敏感可以按表1所提出的分类成六种可能的情况。在表1中,S+和S-分别代表敏感的和钝感的根部。“部分”列指的是,扇出的再汇聚路径说明一子集再汇聚或RG的输入引线。“全部”列指的是,所有RG的输入引线都来自相同的扇出。
扇出根部和分支敏感度的传输一元RG 异或RG情况 nDnNDnu部分全部部分全部1 =0 =0 >0 S-S+当且仅当 S-S-多路径敏感化S-相反情况2 =0 >0 =0 S-S-S-S-3 =0 >0 >0 S-S-不赋值不赋值4 >0 =0 =0 S+S+S+当且仅当 S+当且内当nD是奇数 nD是奇数S-相反情况 S-相反情况5 =1 =0 >0 S-当且仅当 S-当且仅当某些u路径 某些u路径不赋值 不赋值是允许的 是允许的S+相反情况 S+相反情况6 >0 >0 =0 S+S+S-当且仅当 S-当且仅当nD是偶数 nD是偶数S+相反情况 S+相反情况表1 根部分析为了要用枚举法进行测试向量生成,也必须知道敏感驱动和钝感驱动。参看图7,图中说明了不同类型的门电路的前向敏感驱动。有圈号的输入引线是“驱动”引线,而全部未加圈号的引线则是“从动”引线。例如,如果与门的驱动线各自需是0+的话,则其它所有的从动输入引线必须置于1-,而从动输出引线必须为0+。敏感驱动被用于确定各自所用的敏感值,以便形成测试向量。
就如同在测试计数的前向和后向传输的情况一样,也要用说明后向敏感驱动的图8和说明后向钝感驱动的图9来利用前向和后向敏感驱动。注意,不存在前向钝感驱动。下文用实例将更清楚地了解到不管是再汇聚扇出回路还是整个电路的选定输入引线都称为驱动引线,而该值则被“驱”向再汇聚门或公共输出。于是,各自的敏感值和钝感值后向地从动。以全局枚举法完成处理后,一些部分解答能将累积(和存储)起来以规定测试向量的最小可用数目的本性。
按本发明用枚举法的测试生成举处理,以“局部枚举”开始,将借助图10至19的示意图给以概念性的解释。显然,实际的处理是按电路的模拟在通用数字计算机完成的,但希望能理解该处理相对于典型例子的显著特色。
如上指出,在使用而部枚举法之前,迫切要调用TMA(包括公知的测试计数过程在内的可测试性,测量分析器)以得到可测试性信息,即用于局部枚举的测试计数矩阵。取得了例如图10中说明的已知电路的这种信息,为了方便,可把它指定为过程的步骤0。正如将会知道的,图10的电路只表示门电路网络,并利用它作为集成电路构成方式的简单例子,在这点上,本发明的这种处理法是可以加以应用的。这种电路包括诸输入端或节点a至f,一个共用的输出端或节点Z,以及中间节点g、h、i、j、和k。输入节点a和b被连到或非门G1,其输出在节点g驱动与门G4。同理,输入节点c和d被连到或门G2,其输出在节点h提供与门G4和G5的公输入端h1和h2。与门G4和G5的输出在节点i和j处驱动与门G6,而门电路G6的输出在节点k处为或门G7提供一个输入,而G7驱动输出节点Z。输入端e和f分别连到并驱动与门G5和或门G7。
在图10给出的电路例子中,说明了整个电路在节点Z的唯一主输出,但以后将了解到,对于更复杂的电路而言,网络被要求的成锥形。见第14届设计自动化会议记录(1977年6月,第479-485页)博托夫、弗朗斯和奥斯的文章“大逻辑网终用的测试生成”。对于每个圆锥体来说,建立了锥体中所有引线的测试计数矩阵。之后,将用最终枚举法生成的所有锥体的向量重新集合或合并,以熟悉这种技术的人士所理解的方式产生出一套完整的测试组。
从节点h开始,并包括以驱动关系连到与门G6的与门G4和G5的电路,称为再汇聚扇出回路,其中的门电路G6是再汇聚门,而节点h是根部。初始的测试计数过程(其结果在图10中用测试计数矩阵作为范例)并不能精确处理再汇聚扇出。但测试计数过程为扇出回路的输入引线也为扇出回路外的引线提供了初步的测试计数。特别是使用局部枚举法以其端处被再征用的测试计数来重新存储任一漏失的信息。对于一个扇出回路的局部枚举法而言,要产生一组部分解答以显示回路的传输性能。而对于那些其结局测试计数大于原始生成的测试计数的引线来说,要调节相关的测试计数大以反映新的重新存储起来的信息。应该了解,在有逻辑冗余的场合,某些故障永远也检测不到。合理的过程结果是,制造一种已知电路是可能的不方便的。
局部枚举法首先被用于节点h和k间的再汇聚扇出回路。为了解释局部枚举法,如图10中说明的相同电路,以及为了解释全局枚举用的相继图形都在图11至19中重复出现。图11被指定为这个回路的局部枚举法的步骤1,回路中的节点h1采用了图7中所示的前向敏感驱动以及图8和9的后向敏感和钝感驱动对0+(带圈号)进行枚举。引线h1上的敏感值0+被向前驱动到再汇聚门G6,并后向驱动,导致在附有扇出回路的图11中的引线上所注明的敏感和钝感值。使用这个过程,可看出引线h1和h2有一个矛盾,因而h1=0+被认为是冗余的。
图12是局部枚举的步骤2,该过程枚举了h2=0+。再次利用图7至9的敏感和钝感驱动,在各有关再汇聚扇出回路的引线上确定出各自的敏感和钝感值。h1和h2又再次有一个矛盾,因而h2=0+是冗余的。
在某些例子中,这样一种再汇聚扇出回路可能是不可测试的。但是,当且仅当其分支和相邻引线是完全可测(即0+和1+的存在可以验证)时,一个再汇聚扇出回路才是完全可测的。一个未被检测出的故障一旦被标出位置来,所有等值的故障(如有的话)也就可以定位了。
在冗余的情况中,敏感值的不存在并不意味是不可检测的根部。图11和12中的步骤1和2指出h1=0+和h2=0+并不存在。但多路径敏感的可能性仍能使根部h=0+是可检测的。参看图13,即局部枚举处理例子的步骤3,当且仅当再汇聚路径说明了再汇聚门的所有输入引线而且它们全都是允许的u路径时,多路径敏感条件才可能被满足。(注意图6和根部分析用的表1,特别是情况1)图13中的枚举法步骤3满足这些条件,因而多路径敏感化可以使根部h=0+。
因此,每条分支上0+和1+的存在首先被验证以提供冗余的早期征兆。所有沿再汇聚路径的相邻引线也必须对0+和1+的存在加以验证。在冗余的情况下,有可能确定根部的敏感是不可检测的,但另一方面,可能确定多路径的敏化。
进而到图14,局部枚举法的步骤4,于是枚举h1=1+。可以看出,不会像导致图14中注明的敏感值那样,从敏感驱动产生出矛盾。接下去枚举图15中即g=0+的步骤5的节点g。在图16即步骤6中,用与再汇聚扇出回路有关的各引线上所指出的结果枚举e=0+。
在图17即步骤7中,从步骤4,如图10说明那样,用与节点h相关测试计数矩阵复制部分解答。即根据测试计数矩阵,节点h上敏感值1+的测试计数已经在步骤1至6中加以累积了。
同理,在步骤8即图18中,从步骤5即图15得到的部分解答被复制以满足节点g上的额外要求,因为将会看出,图10中节点g的测试计数矩阵指出了0+敏感值的两个计数。
通过图18的步骤8,在再汇聚扇出回路的各分支和其它输入处使用了各种敏感驱动,一直到回路的测试计数矩阵数目满足到可能将冗余考虑进去的程度为止。与步骤有关的解答,即有关的敏感与钝感值被存储起来。
在图19中,再汇聚扇出回路的测试计数矩阵是以冗余计数量0来调整的。重复TMA或测试计数的前向传输和后向传输,因此,要注意在引线h1和h2上的测试计数,敏悉值0+被置为0。相应地使用先前解释过的在关系式(1)至(8)中所提出的约束、在第二轮的TMA调整余下的测试计数矩阵。
在这里用例子来说明的电路中,只出现了一个再汇聚扇出回路。当然,如果碰到不止一个这样的回路,就要为各个回路作局部枚举。如果回路位于另一个回路里,就要首先为最里面的回路进行局部枚举。
在局部枚举和第二轮TMA(图19)后,要进行全局枚举,以便在输入端处供应所需的测试向量来满足由图19中的第二轮TMA所引起的测试计数矩阵的测试计数。在图20至26中说明了电路的全局枚举法。
参看图20(全部过程的步骤10),从C=O+驱动(按图7所说明的敏感驱动)电路,c和d输入离开Z处的主输出最远。按图7-9说明的驱动,向前而又后向地驱动这个敏感值,在各节点导致如图20说明的数值。因为节点h有一敏感值0+,故部分地为再汇聚扇出回路选用了从步骤3(图13)得来的部分解答。电路中的其它节点都赋予符合敏感和钝感驱动的数值。
在图21的步骤11中,我们从c=1+驱动,并为扇出区选用来自步骤4的部分解答。同理,在步骤12(图22)中,我们从d=1+驱动,并为扇出区选用来自步骤7的部分解答,而在步骤13(图23)中,我们从a=1+驱动,并选用来自步骤5的部分解答。在步骤14(图24)中,我们从b=1+驱动,并为扇出区选用来自步骤8的部分解答。在步骤15(图25)中,驱动是从e=0+开始的,并选用来自步骤6的部分解答。在步骤16中,驱动是从f=1+开始的,我们抄录来自步骤12(图22)的解答,但以所有敏感改变为钝感来满足K=0-。
由步骤10至16(图20至26)所表示的部分解答被存进存储器里,即在一个分开的选定输入驱动的各组中,各节点处的敏感和钝感被适当地存进存储器里。必须注意的是,各种部分解答(表示在图20至26中)满足图19中所提出的代表第二轮TMA的测试计数矩阵。各种逐次所选驱动,它们或满足测试计数,或驱动其它引线以满足测试计数,一直到总测试计数累积到大体上是部分解答为止。在每一情况下,并不需要以每一个用测试计数矩阵所代表的敏感和钝感值去驱动每一个具体的输入节点,因为,正如从上面参考图可以看出的那样,常以一个敏感值或钝感值的驱动决定其它输入节点的敏感或钝感值,这在累积中将满足测试计数。
图27中说明了先前过程的全套测试组合,即图中重直线左侧处的七个测试向量。前此利用的敏感驱动再次用加圈号说明,以方便比较。
参看图27的测试组合,当加上给定的输入测试向量(在图27的左侧)时,将在特殊节点出现的总敏感和钝感值应对应于图19中的该节点的测试计数。例如,根据图19中节点j的测试计数矩阵,节点j应赋予0+一次,1+二次,0-一次,1-二次。从图27的列j可见,这些要求在所推导的测试组合里是能满足的。在该测试计数的基础上,无需常规的故障模拟就可知道故障复盖。注意,主输出引线Z将至少取用0+四次,1+三次,换句话说,这证实了有七个输入向量,采用了测试所说明的电路。
这种所描述的测试生成法于是直接用可测试性信息以建立测试向量。各引线上的测试计数矩阵的物理意义将加以解释,以便以敏感和钝感数来提供该引线上的需要。通过在电路中前向地和后向地驱动各引线处的敏感值来供应正确的测试向量组合,以便以通常形成一个被存储的规定测试向量的部分解答,为其余网络提供敏感和钝感值x。包括测试向量在内的部分解答适于一次存储一个,这种处理要重复进行直到所有的测试计数全都用尽为止。结果,得到一组满足具体需要的向量。以这种方式出现的测试生成包括一种获得已知是存在的解答的方法,和先前大多数测试生成算法对照,后者是盲目地寻找解答的。
虽然有人提议上述部分解答要序贯地加以引导,也要注意各个枚举处理(局部的和全局的)是彼此独立的。换句话说,这方法适于并行处理以得到各种测试向量,如果是这样要求的话。
现要参看图28至32,它们包括用于执行局部枚举的软件的流程说明。就如我们记得的,局部枚举参与为再汇聚扇出回路提供部分解答,并代表全部枚举处理的第一部分。即,一个电路里的再汇聚扇出回路的部分解答是在最终或全局枚举之前进行的。
首先参看图28,如方框40所提出的,处理是以未枚举的最里的再汇聚扇出回路开始的。于是,利用电路本身计算机模拟,选定一个最里的再汇聚扇出回路。程序然后前进至图28中方框42所指出的例行程序“枚举这扇出回路的传输条件”,这种例行程序在图29中的P1和P2间还要再加以说明。参看图29,看出程序流指向图30中标志P3-P4间的例行程序“冗余检查”44。
参看图30,判定方框46进入到确定至今是否产生过任何的部分解答。就第一轮来说,结果一般是“没有”。但如果某些部分解答因要说明某些与特殊再汇聚扇出回路有关的节点的测试计数而已用公式表示过,则从所有相应计数减去部分解答。例如,参看图5A的测试计数矩阵,如果已知节点的一个部分解答包括敏感值1+,则图5A的矩阵中行上面的数字1会暂时减低至零,这表明在这个范围内已经由这个部分解答满足了测试计数矩阵。
在任何一种情况下,接下去程序流都指向判定方框58,在这里确定出那些从公共根部分支出去的引线是否枚举过。如果所有的分支都没有枚举过,就在方框60选择一未加枚举的分支作为每个图7的敏感驱动的“驱动”引线。如果所有分支都已枚举过,则进入判定方框62以确定所有相邻引线是否都已枚举过。再汇聚扇出回路的相邻引线,包括例如图10中的引线g或e。如果答案再次为是,则返回到图29的P4处。如果答案是否,则在图30的方框64中选择一个未枚举过的相邻引线作为如图7中所说明的敏感驱动的驱动引线。一般说来,输入引线是在方框60和64,以最远的分支,即离开再汇聚门最远的分支(或相邻引线)开始来选择输入引线的。然后,逐步接近应用的灵敏度值(目前它尚未发现和需用以满足特殊驱动引线上的测试计数),以选择较近再汇聚门的引线。在这些离再汇聚门具有相同距离的引线中,以随意的次序或连续的次序的方式取用这种输入。
在图30的点p5处,程序前进到“驱动引线上敏感值的回路枚举”即点P5和P6间图31中66的例行程序。参看图31,程序流再指向图32中的点P7-P8间的子程序“朝再汇聚门敏感性前向驱动”68。
现参看图32,在方框70里,选定的驱动引线被置于未曾枚举的敏感值,即0+或1+。在判定方框72中,要作出确定这个驱动引线即在再汇聚扇出回路的端点处是否是一个再汇聚点,如果答案是是,则要经点P8回到图31的程序。另一方面,如果答案是否,则进入判定方框74。显然,每个图7的前向敏感驱动要考虑的门电路的输入开始从门到门前进,直到到达再汇聚点为止。在判定方框74中要确定驱动引线是否是异或门一元门或内扇出回路的一个输入。在第三种情中,要考虑到本轮的例行程序可能是为拥有一个已经枚举过的内回路的再汇聚扇出回路的例行程序,然后在方框76中,在该处所获得的并被存储的适用的部分解答,如前面指出的,例如在图20至25加以选用。所选用的部分解答是一种符合于节点直到所说内回路的现有解答或处理的部分解答。然后在方框78中,取决于这种部分解答的内回路输出被选择成新的驱动引线。在方框78之后,程序前进到方框88,其中的新驱动引线的敏感性是按照这种部分解答来确定的。
回到判定方框74,如果要驱动的门电路类型是一元门(它是“与”门、“或”、“与非”、“或非”或“非”逻辑元件),就要在关于驱动引线值的判定方框80中做出确定,即它是否是“控制性的”或“非控制性的”值。一个控制性的驱动引线值是唯一确定门电路输出的一个逻辑值。因此,例如对一个与门来说,在输入处的0+敏感性对所有其它(如与门)敏感输入都是1-时,才是控制性的敏感。如果该逻辑值不是唯一地确定门电路的输出,则这个驱动引线值是非控制性的。因此,如果与门的所有其它敏感输入对一个与门来说都是1+时,则输入到与门的1+就是非控制性的。在方框82中,如果驱动引线值是控制性的,则所有其它输入都要设定为非控制性和钝感的输入。根据方框84,如果驱动引线值是非控制性的,则所有其它输入都要设定为非控制性和敏感的输入。于是在方框86中,门电路的输出被指定为新的驱动引线。在方框86后,程序前进到方框88,其中新驱动引线的敏感性是按照图7指出的向前敏感驱动来确定的。
如果按判定方框74确定的门电路类型是一个异或门,程序流就到达方框90,其中路径(假定不止一个)中最后一个异或门(或者如只有一个异或门时的唯一异或门)的输出成为新的驱动引线。然后在方框92中,这种驱动引线的值,对一个部分解答来说设定为0+,而对另一个部分解答来说设定为1+,故提供了两个截然不同的解答。在方框88或方框92之后,为确定驱动引线是否是再汇聚点而返回判定方框72。当达到再汇聚点时,程序经标志P8回到图31的程序而进入方框94。根据方框94,以后向敏感和钝感驱动(图8和9)来证明所有分支路径上的敏感值的含意,从而确定朝再汇聚扇出回路输入侧的各种其它节点上的敏感值。在方框96中,如果检测出一个矛盾(例如连同图11和12所叙述的例子),则在方框98宣告扇出回路是冗余的。如果没有矛盾,则在方框100中用表1指出的根部分析,完成根部敏感性的确定,且将所有新的枚举值如方框102所提出的作为一个部分解答存储起来。在方框98或方框102之后,经点P6而返回图30的程序。然后根据图30,在所有分支和相邻引线都枚举(在步骤58和62中)后,回到图29的程序P4。下面要叙述的是,在判定方框104中,(从方框98的结果)要作出确定扇出回路是不是冗余的。如果是,在方框106中,如图19所说明的那样,以所有冗余计数都置于零来重新运行TMA。然后回到点P3,而且不需要选择会导致重复确定冗余的再汇聚扇出回路敏感值,就可以重新运行过程。多路径的敏感化也可以按根部分析(表1)来选择。如果判定方框104的确定是,扇出回路不是冗余的,则程序流通到方框108,它因所有负计数都加以它们的补偿值而适于重新运行TMA。这个步骤的必要,是因为原一轮的TMA,例如如图10所描述的是不精确的,并且作为从方框48中计数演绎的结果,会得到一或多个负计数。于是计数要加以改正以提供正计数。
在方框108后,程序回到图28的点P2处和判定方框110,方框110需判定是否存在有任一个再汇聚扇出回路,其中嵌套有现有的再汇聚扇出回路。如果情况确是这样,则模拟要用于方框112中的外扇出回路,而整个过程要为该外扇出回路重复。如果没有这种外扇出回路,程序就前进到方框114,以确定在研究中的并不拥有现有扇出回路的电路中是否存在另一个未枚举的再汇聚扇出回路。如果存在有尚未枚举的另一个再汇聚扇出回路,则要在方框116中选择这种回路而回到方框40。如果没有其它再汇聚扇出回路,则结束程序。
为了进行全局枚举,可遵循基本上相同的程序,自然也无需从最里的回路等等开始。反而,要考虑的是最初的输入和主输出之间的整个电路,同时按前述方法导出规定输入向量的部分解答。此外,如果这种重新运行需要遵循全局枚举的话,全局枚举处理就以图19的重新运行TMA开始。当然,方框72将参照锥体的主输出而不参照再汇聚点。在后向驱动或“后向追踪”中,如输出引线是敏感的,而且如果门电路是再汇聚门,则选择从局部枚举得到的部分解答。如果门电路不是再汇聚门但输出引线是敏感的,则要进行后向敏感驱动并减缩测试计数。如果门电路是一个再汇聚门且输出引线是钝感的,则要选择从局部枚举得到的部分解答。如果门电路不是一个再汇聚门且输出引线也不是敏感的,则要完成后向钝感驱动。如果输出是0-(对于一与门来说)或1-(对于一或门来说),则什么也不用做。测试计数是减量的。如果在后向追踪中有含糊不清处,即多于一组的可能的输入敏感值,则要选出一组能满足测试计数。
完整的处理算法可如下形式化。粗体字代表子程序调用,斜体字代表电路引线或内变量。鉴于先前已有描述,这些算法和所包括的注释一起基本上是显然的。
程序测试-生成(){
预处理();
全局枚举();
后处理();
}过程预处理(){划分网络成锥体;
对于每一锥体{对每一个输入引线a{开始测试计数矩阵;
从主输出计算其所测深度}当测试计数矩阵是不稳定时{前向传输();
后向传输();
}如有任一个再汇聚扇出则作扇出处理();
}过程前进_传输();
{从主输入前向传输矩阵至主输出;
}过程后向_传输();
{从主输出后向传输矩阵至主输入;
}过程后处理();
{合并不同锥体所产生的子向量;
}过程扇出_处理(){对每群有关的再汇聚扇出回路{/**从最里一个回路开始*递归算出扇出回路条件,*/从最里回路至最外回路循环{局部_枚举();
如测试计数有改变或有冗余存在则重新调用TMA以精炼测试计数矩阵;
}}}过程局部_枚举(){从最深的分支到最浅的分支(从P.0.测量起){/**在分支上验证灵敏1和0的存在*/对于e_val=0+和1+{如e_val未在分支上枚举则{以前向和后向敏感/钝感驱动验证e_val的存在;如有可用的,就利用从内回路得到的部分解答;如没有矛盾则{完成根部分析以确定根部逻辑和敏感值;记录枚举作为一部分解答;

此外说明未检测的分支故障和等价故障;
}}}/**如果通过敏化任一分支还不能敏化*根部,通过多路径敏化,根部敏化仍有*可能;
*/如在根部上还未枚举0+或1+则{检查多路径敏化的可能性;
如多路径敏化失败则说明根部故障是不可检测的;
否则记录枚举作为部分解答;
}/**沿所有再汇聚路径枚举所有相邻的引线。
*/从最深的相邻引线至最浅相邻引线{对于e_val=0+和1+{如e_val在曾在引线上枚举则
{以前向和后向驱动逻辑及敏感值在引线上验证e_val的存在,如有可能就利用从回路得到的部分解答;
如果没有矛盾则记录枚举作为一个部分解答;
否则说明引线故障和等值故障是不可检测的;
}}}/**如果用局部枚举建立的传输条件(部*分解答)不能从前级满足所有的需要,就复*制某些现有的部分解答以满足那些未被满*足的需要;
*/如根部和任一相邻引线的枚举数比相应的敏感测试计数少,则复制现有部分解答以满足其余测试需要;
}过程全局_枚举(){预定所有引线为“未置”;
对各最深的非零敏感测试计数的主输入{如敏感测试计数是对0+而言的则设输入引线至0+;
否则设输入引线至1+;
给主输入引线记为“置”;
将测试计数减1;
现行_引线=该主输入引线当现行_引线<>主输出引线;
{如下一个门电路是一个再汇聚扇出则取一适用的部分解答;
否则完成前后敏感驱动;
给所有有关引线记为“置”;
减少现行门的输出和其它输入的测试计数;
现行_引线=门电路的输出引线;
}}对于有“置”输出和“未置”输入{后向追踪()记所有关系引线为“置”;
}}}过程后向追踪(){如输出引线是灵敏的则如门电路是再汇聚门选出一适用的部分解答;
否则{完成后向灵敏性驱动;
如有模糊不清,检查测试计数;
减少所有输入上的测试计数。
}否则,如门电路是一个再汇聚门,则选出一适用的部分解答;
否则{完成后向钝度驱动;
如有模糊不清,检查测试计数;
输出为0(对与门来说)或1(对或门来说),则什么也不用做;或减少输入上的测试计数}}在展示了和叙述了本发明的一个最佳实施例的同时,对于那些熟悉这种技术的人士来说,显然可以作出许多改变和改进而无需在较大方面偏离本发明。因而,所附上的权利要求
是要包括属于本发明真实精神和领域内的所有这种改变和改进。
权利要求
1.一种用于测试一个集成电路网络的一组测试向量的确定方法,所说集成电路网络包括多个门电路,门电路被互连在包括所说集成电路网络的输入和输端的节点处,这种方法用以揭露所说网络中的预定种类的故障,其特征在于下列步骤根据一种测试计数过程测量所说集成电路网络的可测试性,这个过程包括通过该网络的介入门电路从输入端前向至主输出端又后向返回到所说输入端的敏感测试计数的传输,以便为包括所说输入和输出端的所说网络节点提供测试计数矩阵,通过连续多次从所说输入端处的测试计数矩阵前向驱动各个敏感值至一所说输出端又后向返回到所说输入端,从所说矩阵枚举测试计数,以便在所说节点累积为所说矩阵所叙述的测试计数,以及分开存储一组敏感值,所说输入端每一次都被驱动到这些敏感值,各组都包括所说网络的测试向量。
2.根据权利要求
1的方法其特征在于,枚举测试计数包括首先为再汇聚扇出回路局部地枚举敏感值,以确定扇出回路根部的敏感性,然后为其余所说电路网络全局地枚举敏感值。
3.一种用于测试一个集成电路网络的一群测试向量的确定方法,所说集成电路网络包括多个门电路,门电路被互连在包括所说集成电路网络的输入和输出端节点处,这种方法的特征在于下列步骤以一测试计数过程测量电路网络的可测试性,以便为网络中的多个节点提供测试计数,以及多次枚举各个敏感值以满足所说测试计数,每次都为测试所说电路网络规定一输入向量,每次都包括根据出现在被驱动的相邻引线上敏感性的逻辑确定通过所说网络前向地和后向地驱动一个敏感值。
4.根据权利要求
3的方法,其特点在于所说测试计数过程包括按已知约束在所说网络中传输测试值。
5.一种为一个集成电路网络的一群测试向量的确定方法,所说集成电路网包括多个门电路,门电路被互连在包括所说集成电路网络的输入和输出端的节点处,这种方法用以揭露所说网络中的预定种类的故障,其包括测试计数的可测试性信息对所说网络来说是已知的,所说方法的特征包括在所说网络中,根据逻辑确定从输入端前向驱动各自的敏感值至一输出端,以及在所说网络中,根据逻辑确定后向驱动各自的敏感和钝感值直到所说测试计数被满足为止,在所说输入端上的敏感和钝感值作为包括所说网络的测试向量的所说过程的结果。
专利摘要
一种用以提供适用于测试超大规模集成电路器件的测试向量方法,包括测量可测试性的步骤,它应用测试计数过程以提供多个测试计数矩阵。然后从输入端处开始通过电路前向地和后向地驱动各自的敏感值,来枚举敏感值,直到累积到所需测试计数为止。枚举法规定的测试向量能测试实际的电路。如果电路包括再汇聚扇出回路,则这些回路在随后的全局枚举期间首先被枚举以提供所采用的部分解答。
文档编号G01R31/3183GK86107798SQ86107798
公开日1987年5月20日 申请日期1986年11月15日
发明者安吉洛·C·J·洪, 弗朗西斯·C·王 申请人:特克特朗尼克公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1