CN104515950B - 一种集成电路的内建自测试方法及应用 - Google Patents
一种集成电路的内建自测试方法及应用 Download PDFInfo
- Publication number
- CN104515950B CN104515950B CN201510014547.1A CN201510014547A CN104515950B CN 104515950 B CN104515950 B CN 104515950B CN 201510014547 A CN201510014547 A CN 201510014547A CN 104515950 B CN104515950 B CN 104515950B
- Authority
- CN
- China
- Prior art keywords
- test
- circuit
- vector
- row
- matrix
- 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.)
- Expired - Fee Related
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种集成电路的内建自测试方法及应用。本发明通过使用二元判定图来生成电路中每一个故障的所有测试矢量,并通过对测试矢量的选取,来获得具有极小规模的电路测试集;在被测电路的内建自测试中直接使用这种极小规模的电路测试集来对电路进行测试。本发明可以使内建自测试达到100%的故障覆盖率,同时在测试时间方面由于是使用了极小规模测试集,因此使测试时间有了很大地降低,可以使测试时间达到较小。因此,本发明提供的内建自测试方法能有效地检测集成电路中是否存在故障。
Description
技术领域
本发明属于集成电路测试领域,特别涉及一种集成电路的内建自测试方法及应用。
背景技术
在集成电路的设计与制造过程中,首先要确保电路的设计符合事先定义的产品功能规范,其次在电路芯片的生产过程中的缺陷和误差等可能导致部分产品中存在故障,针对此类问题而进行的检测过程称为电路测试。
在电路测试的早期,测试过程往往被安排在芯片设计和制造过程之后。测试工程师通过使用电路的功能与结构,并结合一定的测试算法来制定产品的测试方案。随着电路集成度和复杂度的不断增加,而电路的外部管脚却又非常有限,这导致外部测试设备对于电路内部的可控制能力和可观测能力下降,测试生成和故障模拟都面临着困难,从而极大地增加了测试的难度和成本。因此,为了解决电路的测试问题,需要人们在设计电路的同时就考虑电路的测试问题,即进行电路的可测性设计。可测性设计除了在设计电路的结构时尽量采取有利于测试的方案,还经常将一些具有测试用途的结构加入到电路中,这样不仅可以改善电路的可测性,还可以减小总的测试成本。目前,可测性设计已成为大规模集成电路设计中的必不可少的一个重要手段。
内建自测试(Built-In Self-Test,BIST)就是一种可测性设计技术,它能够最大限度地把测试过程集成在芯片内部,同时支持芯片的全速测试(即在电路的工作时钟频率下进行的测试)。内建自测试的基本思想是使被测电路自己生成能检测电路中的故障的测试矢量,而不是要求通过外部的测试设备来生成并施加测试向量。因此,内建自测试必须有附加的额外电路,它通常由如下三部分组成:测试矢量生成器、测试响应分析器和测试控制器。测试矢量生成器主要完成测试矢量的产生,测试响应分析器主要完成被测电路响应的压缩和比较,测试控制器完成整个测试过程的控制。测试矢量生成器所产生的测试向量在时钟脉冲的作用下施加到被测电路上;为了减少测试响应数据所占用的存储空间和便于分析,常常将响应数据进行压缩,测试响应分析器就是把测试响应数据压缩成特征符号并进行比较。
内建自测试具有如下的优点:(1)可以进行全速测试,即在电路的工作时钟频率下进行测试,因此可以检测电路在实际工作条件下所存在的故障;(2)可以实现对电路的在线测试,这一点对可靠性要求较高的系统具有很好的实际意义;(3)减少了对昂贵的测试仪器的依赖性。
对内建自测试的设计,达到较高的故障覆盖率和较短的测试时间,是人们在内建自测试的研究方面一直追求的目标。而且,现有的电路内建自测试方法较难达到较高的故障覆盖率(例如100%的故障覆盖率)或者需要较长的测试时间。
发明内容
本发明的首要目的在于克服现有技术的缺点与不足,提供一种集成电路的内建自测试方法。本发明通过使用二元判定图来生成电路中每一个故障的所有测试矢量,并通过对测试矢量的适当选取,来获得具有极小规模的电路测试集,之后,在内建自测试中直接使用这种极小规模测试集来对电路进行测试,从而提供了一种具有100%的故障覆盖率和较短测试时间的内建自测试方法。
本发明的另一个目的在于提供所述集成电路的内建自测试方法的应用。
本发明在后面的阐述中使用了一些约定与术语,为清晰起见,下面对它们先进行说明:
(1)由于电路测试的一个主要目的是确定集成电路中是否存在故障,因此在测试之前需要建立电路中故障的物理模型。故障通常是指一个电路元件的物理缺陷,它可以使这个元件的功能失效,也可能不失效。本发明所针对的故障类型主要是固定型故障(s-a-0和s-a-1)。一个固定型故障是假定电路中的一条信号线的值是固定不变的,无论电路输入取什么值,该信号线的取值不变。若一个信号线的值固定在逻辑低电平上,则称之为固定0故障(记为s-a-0);若一个信号线的值固定在逻辑高电平上,则称之为固定1故障(记为s-a-1)。由于电路元件的损坏,连线的开路等这些故障都可以用固定型故障模型较准确地描述出来,因此固定型故障模型在实际中的应用非常普遍。
(2)电路的原始输入信号线,是指在电路中不接受电路内部任何信号的这种信号线;电路的原始输出信号线,是指电路中可以将信号送到电路外部进行测量的这种信号线。
(3)可以把电路中的一个信号线称为一个结点。
(4)电路的一个输入矢量是在电路的每个原始输入端所施加的输入值所组成的一个矢量;电路的一个测试矢量是指能够检测电路中的某个故障(例如s-a-0或s-a-1)的电路输入矢量;电路的一个测试集是指能够检测电路中所有信号线的s-a-0故障和s-a-1故障的所有测试矢量所构成的集合。
(5)正常电路是指无故障电路,这种电路中无故障。被测电路是指被检测的电路,这种电路中可能有故障,也可能无故障。
本发明的目的通过下述技术方案实现:一种集成电路的内建自测试方法,包括如下步骤:使用二元判定图来生成电路中每一个故障的所有测试矢量,并通过对测试矢量的选取,来获得具有极小规模的电路测试集;在被测电路的内建自测试中直接使用这种极小规模的电路测试集来对电路进行测试。
所述的二元判定图是一种有一个根结点的有向图;对一个二元判定图,其表达式为G=(V,E),V表示图中全部结点所构成的集合,E表示图中的全部边所构成的集合;二元判定图中的一个结点由如下三部分组成:一个值域、分别指向两个子结点(后继结点)的两个指针域。结点有如下两种类型:非终结点和终结点。终结点也称为叶子结点,它的值域的取值(也称为属性值)为0或1;它的指向后继结点的两个指针域的值都为零指针(即NULL指针)。非终结点的属性值为一个给定的逻辑布尔变量(例如xi),它的两个指针域分别指向它的两个子结点。二元判定图中边的集合E是由从父结点指向子结点的连接所组成。
例如,对布尔函数g=x1x2+x3,它的真值表如表1所示,它的二元判定图如图1所示。
表1布尔函数g的真值表
在图1中,用圆圈表示非终结点,用矩形框表示终结点。结点的属性值标在圆圈或矩形框内。图中的边用虚线和实线表示,虚线也称为0边,实线也称为1边。在图1中,有一个根结点,其属性值为x1,其余两个非终结点的属性值分别为x2和x3。在图1中有两个终结点,其属性值分别为0或1。在图1中用粗线标出的路径的含义是:当x1=1,x2=1时,函数g的值为1,即g=1,此时x3的值可任取即取0或1都可以。类似地,对表1中的每一种取值组合,都存在从根结点到一个终结点的一条路径。
构造一个任意的布尔函数h(x1,x2,…,xn)所对应的二元判定图的一种方法如下:把h写成如下的香农展开形式:
这里,xi(i=1,2,…,n)是取值为0或1的布尔变量;为h在xi上的香农展开因子,为h在xi上的补香农展开因子。布尔函数h的二元判定图递归地定义如下:
①若h的值是常数(1或0),则其二元判定图仅由一个终结点构成,终结点的值为该常数;否则,执行如下的步骤②。
②选取变量xi,生成两个非终结点(属性值为xi)。由该变量xi对布尔函数h进行香农展开,并从该结点出发引出两条有向边,一条边上的权为1(即1边),另一条边上的权为0(即0边)。
③在1边上对布尔函数重复进行步骤①和②,直至出现终结点为止;在0边上对布尔函数重复进行步骤①和②,直至出现终结点为止。
例如,按照如上的方法对逻辑布尔函数所构造的二元判定图如图2所示。这里,在生成布尔函数h的二元判定图时,进行香农展开时所选取的变量次序为x3,x1,x2。在对布尔函数h进行香农展开时所得到的函数如下:
m1=d1|x2=0=0,m2=d1|x2=1=1,m3=d4|x2=0=0,m4=d4|x2=1=1。
在图3中标出了对布尔函数h进行香农展开时所获得的这些函数u1,u2,d1,d2,d3,d4,m1,m2,m3,m4等。
对一个数字电路,构造它所对应的二元判定图的一种方法如下:(a)把电路划分为多个功能模块;(b)根据每个功能模块的逻辑功能,构造每个功能模块对应的二元判定图;(c)将电路功能模块的这些二元判定图组合起来,就构成了整个电路的二元判定图。
例如,对图4所示的电路(该电路被命名为C17电路),建立它的二元判定图的过程如下:首先,建立电路的每个原始输入信号线xi(i=1,2,…,5)所对应的二元判定图;其次,依次建立电路的内部结点L6,L7,L8和L9所对应的二元判定图;最后,建立电路的原始输出信号线L10和L11所对应的二元判定图。
所述的测试矢量通过如下步骤得到:
(1)对给定的被测电路,根据该电路的结构,建立正常电路(电路中无故障)所对应的二元判定图;
(2)对正常电路中的一个给定信号线注入一个故障(例如s-a-0或s-a-1),获得故障电路,并建立故障电路所对应的二元判定图;
(3)对正常电路与故障电路所对应的这两个二元判定图进行异或操作,获得一个测试二元判定图;找出该二元判定图中从根结点到属性值为1的终结点的所有路径,每一个这种路径上的边所对应的变量取值就为该故障的测试矢量。
所述的具有极小规模的电路测试集,通过如下步骤得到:对能检测电路故障的测试矢量按照所定义的属于关系进行选取,并通过进行相关的操作与处理,具体如下:
(A)对电路中的每一个信号线,分别注入s-a-0故障和s-a-1故障,并使用上述步骤(2)和步骤(3)来获得每一个信号线的s-a-0故障和s-a-1故障的所有测试矢量;
(B)把检测每个信号线的s-a-0故障和s-a-1故障的所有这些测试矢量组合在一起,构成电路的一个测试集,将其命名为ξ;设被测电路共有k个故障,它们分别被命名为f1,f2,…,fk;设在电路的测试集ξ中共有w个测试矢量,它们分别被命名为V1,V2,…,Vw;
(C)构建一个具有w行k列的矩阵,命名为C,该矩阵中的元素cij的取值如下:若测试矢量Vi(1≤i≤w)可检测故障fj(1≤j≤k),则矩阵C的第i行第j列的元素cij=1;否则,cij=0;
(D)用ψ表示一个集合,并置ψ为空集;
(E)从矩阵C中查找满足如下条件的这种列向量β:该列向量β中只有一个分量的值为1;由这个分量值1所在的行所对应的测试矢量α能检测该列向量β所对应的故障f,并且α是能检测故障f的唯一的测试矢量;若在矩阵C中存在这种列向量β,则将测试矢量α添加到集合ψ中;
(F)对矩阵C中的两个行向量X=(x1,x2,…,xk),Y=(y1,y2,…,yk),若对每一个i(1≤i≤k),都成立xi≤yi,则称X属于Y;
对矩阵C的第一行(记为Z1),把它与矩阵C的其他所有行(即行向量)的和(记为η1)进行比较:若它不属于η1,则把第一行Z1所对应的测试矢量V1添加到集合ψ中;若它属于η1,则将第一行Z1所对应的测试矢量V1从集合ξ中去除,并将第一行Z1从矩阵C中去除;这里,计算矩阵C中的多个行向量之和的方法是:把这多个行向量的对应分量的值相加;
对矩阵C的第二行(记为Z2),把它与矩阵C的其他所有行向量的和(记为η2)进行比较:若它不属于η2,则把第二行Z2所对应的测试矢量V2添加到集合ψ中;若它属于η2,则将第二行Z2所对应的测试矢量V2从集合ξ中去除,并将第二行Z2从矩阵C中去除;
类似地,对当前矩阵C的其他行(第三行至第w行)都进行这样的操作;
(G)所获得的集合ψ就为被测电路的一个具有极小规模的测试集。
所述的内建自测试是由电路给自身的子电路施加测试矢量,并压缩测试响应;然后把测试响应与正常的响应进行比较。
所述的内建自测试的结构包括依次连接的模式产生器、响应压缩器和比较器;由模式产生器自动产生具有极小规模的电路测试集中的每一个测试矢量,并施加到被测电路的输入端;测试响应被捕获并传送到响应压缩器,经过响应压缩器分析和处理之后得到一个与测试响应相对应的特征值,并将它传送到比较器;由比较器将获得的特征值与正常特征值进行比较,来判定被测电路中是否存在故障。
所述的模式产生器的实现方法是:把具有极小规模的测试集中的测试矢量固化在只读存储器ROM中,或者事先保存在随机存储器RAM中;在进行电路的测试时按顺序将它们读出,并送到被测电路的输入端。
所述的响应压缩器是使用多输入线性移位寄存器来实现,即在一般的线性反馈移位寄存器的基础上增加一个外部输入,并据此获得线性反馈移位寄存器的特征多项式的具体形式;当对线性反馈移位寄存器施加输入数据流时,根据它的特征多项式的特性来计算出线性反馈移位寄存器的输出数据流和余数,将该余数作为特征值。
所述的比较器的实现方法如下:比较器是把一些未知信号值与参考值作比较,它的电路结构是由运算放大器、稳定偏置电路、锁存器等组成,其中,运算放大器是依靠放大器的高增益把输入较微弱的信号进行放大;稳定偏置电路是对输入信号的整个信号周期进行处理;因此,通过使用运算放大器与稳定偏置电路,以实现对输入信号在整个信号周期内的信号放大等处理;锁存器是将比较所得的结果锁存到逻辑状态,它能利用数字技术中触发器的正反馈特性,并有效地增加开环增益和提高比较的性能。
所述的在被测电路的内建自测试中直接使用这种极小规模的电路测试集来对电路进行测试,包括如下步骤:
步骤1:由模式产生器自动产生电路测试集中的一个测试矢量,并施加到正常电路的输入端;
步骤2:正常电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,并得到一个与测试响应相对应的值,称为正常特征值;
步骤3:正常特征值被传送到比较器中进行保存;
步骤4:重复步骤1至步骤3,直到电路测试集中的每一个测试矢量都被产生和进行了相应的操作为止;
步骤5:由模式产生器自动产生电路测试集中的一个测试矢量,并施加到被测电路的输入端;
步骤6:被测电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,并得到一个与测试响应相对应的值,称为测试特征值;
步骤7:测试特征值被传送到比较器;由比较器将测试特征值与测试矢量所对应的正常特征值进行比较;若测试特征值与正常特征值相等,则进行步骤8;若测试特征值与正常特征值不相等,则转步骤10;
步骤8:重复步骤5至步骤7,直到测试集ψ中的每一个测试矢量都被产生和进行了相应的操作为止;
步骤9:输出如下的测试结果:被测电路中无故障,整个算法结束;
步骤10:输出如下的测试结果:被测电路中有故障,整个算法结束。
所述的集成电路的内建自测试方法主要用于检测集成电路中的固定型故障(s-a-0和s-a-1)。
本发明相对于现有技术具有如下的优点及效果:本发明提供的方法可以使内建自测试达到100%的故障覆盖率,同时在测试时间方面由于是使用了极小规模测试集,因此使测试时间有了很大地降低,可以使测试时间达到较小。
附图说明
图1是本发明的对逻辑布尔函数g=x1x2+x3的二元判定图。
图2是本发明的对逻辑布尔函数的二元判定图。
图3是本发明的对布尔函数进行香农展开所获得的一些函数及其二元判定图。
图4是本发明的C17电路的结构图。
图5是本发明的对C17电路获得的正常电路与故障电路分别所对应的二元判定图。
图6是本发明的内建自测试结构的示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,同时通过该实施例也说明了本发明所提供的集成电路内建自测试方法在电路的固定型故障检测中的应用。
实施例1
本发明提供的方法的主要的过程是:
(1)对一个给定的被测电路,根据电路的结构,建立正常电路所对应的二元判定图。
(2)对正常电路注入一个故障,获得故障电路,并建立故障电路所对应的二元判定图。
(3)对正常电路与故障电路所对应的这两个二元判定图进行异或操作,获得一个测试二元判定图,找出该二元判定图中从根结点到属性值为1的终结点的所有路径,每一个这种路径上的边所对应的变量取值就为该故障的测试矢量。
(4)重复步骤(2)和(3),直至获得了能检测电路中每个信号线的s-a-0和s-a-1故障的测试矢量;把这些测试矢量组合到一起,构成电路的一个测试集。
(5)对步骤(4)中已获得的测试集中的测试矢量进行选取,来获得具有极小规模的测试集。
(6)内建自测试结构由模式产生器、响应压缩器、比较器等模块组成。模式产生器自动产生具有极小规模的电路测试集中的每一个测试矢量,并施加到正常电路的输入端;正常电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,并得到一个与测试响应相对应的正常特征值,并被传送到比较器中进行保存。
(7)由模式产生器自动产生电路测试集中的一个测试矢量,并施加到被测电路的输入端;被测电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,并得到一个与测试响应相对应的测试特征值,并被传送到比较器。
(8)由比较器将测试特征值与正常特征值进行比较,来判定被测电路中是否存在故障。
下面以图4的C17电路为例,说明本发明的具体实施步骤:
步骤1:对C17电路,根据该电路的结构,建立正常电路所对应的二元判定图。由C17电路的结构可知,信号线L9只对电路的输出L11产生影响。因此,首先分别建立信号线L8和L9的在无故障情况下的二元判定图,然后对它们进行布尔NAND操作而获得正常电路中L11的二元判定图,如图5(a)所示。类似地,可以建立正常电路中L10的二元判定图。
步骤2:对正常电路的一个信号线注入故障(例如s-a-0或s-a-1),获得故障电路,并建立故障电路所对应的二元判定图。例如,这里对C17电路中的信号线L9发生s-a-0故障,故障电路所对应的二元判定图中只有一个属性值为0的终结点,对故障电路,信号线L8的二元判定图与它的在正常电路时的二元判定图相同;把信号线L9和L8的二元判定图进行布尔NAND操作而获得故障电路中L11的二元判定图,它仅由一个属性值为1的终结点组成,如图5(b)所示。
步骤3:对正常电路与故障电路所对应的这两个二元判定图进行异或操作,获得一个测试二元判定图。例如,对C17电路中的信号线L9发生s-a-0故障,把正常电路的二元判定图即图5(a)和故障电路的二元判定图即图5(b)进行异或操作,所获得的测试二元判定图如图5(c)所示。
步骤4:找出测试二元判定图中从根结点到属性值为1的终结点的所有路径,每一个这种路径上的边所对应的变量取值就为该故障的测试矢量。例如,在图5(c)所示的测试二元判定图中从根结点x2到属性值为1的终结点的所有路径,共有三条,分别为:(a)x2=0,x3=0,x5=0;(b)x2=1,x4=1;(c)x2=1,x4=0,x3=0,x5=0。在这三条路径中没有涉及到的变量,它们的值可任取为0或1。因此,信号线L9的s-a-0故障的测试矢量为:(*00*0),(*1*1*),(*1000)。这里,每个测试矢量中的分量的形式为(x1x2x3x4x5);符号“*”表示对应电路的原始输入信号线的值可任取为0或1。因此共有14个测试矢量,分别是:(00000),(10000),(00010),(10010);(01010),(01011),(01110),(01111),(11010),(11011),(11110),(11111);(01000),(11000)。由于基于二元判定图进行测试矢量的生成是通过对正常电路和故障电路所对应的两个二元判定图进行异或操作,实质上是求出使得正常电路与故障电路的输出不相同的所有电路输入矢量,因此可以获得电路中一个故障的全部测试矢量,因此上述所得到的14个测试矢量就是检测该故障的所有测试矢量。
步骤5:对电路中的每一个信号线,分别注入s-a-0和s-a-1故障,通过使用步骤2至步骤4计算每一个信号线的s-a-0故障和s-a-1故障的所有测试矢量。
步骤6:把检测每个信号线的s-a-0和s-a-1故障的所有这些测试矢量进行组合,获得电路的一个测试集(命名为ξ)。对C17电路共有22个故障,它们分别被命名为f1,f2,…,f22;其中,f1和f2分别表示信号线x1的s-a-0和s-a-1故障,f3和f4分别表示信号线x2的s-a-0和s-a-1故障,f5和f6分别表示信号线x3的s-a-0和s-a-1故障,f7和f8分别表示信号线x4的s-a-0和s-a-1故障,f9和f10分别表示信号线x5的s-a-0和s-a-1故障,f11和f12分别表示信号线L6的s-a-0和s-a-1故障,f13和f14分别表示信号线L7的s-a-0和s-a-1故障,f15和f16分别表示信号线L8的s-a-0和s-a-1故障,f17和f18分别表示信号线L9的s-a-0和s-a-1故障,f19和f20分别表示信号线L10的s-a-0和s-a-1故障,f21和f22分别表示信号线L11的s-a-0和s-a-1故障。
在C17电路的测试集ξ中共有16个测试矢量,它们分别被命名为V1,V2,…,V16。这16个测试矢量为:(0 0 0 0 0),(0 0 0 0 1),(0 0 0 1 1),(0 0 1 0 0),(0 0 1 1 0),(0 10 0 0),(0 1 0 0 1),(0 1 0 1 0),(0 1 0 1 1),(0 1 1 0 0),(1 0 0 0 0),(1 1 0 00),(1 1 0 0 1),(11 0 1 0),(1 1 0 1 1),(1 1 1 0 1)。
步骤7:构建一个具有16行22列的矩阵C如下:若测试矢量Vi(1≤i≤16)可检测故障fj(1≤j≤22),则矩阵C的第i行第j列的元素cij=1;否则,cij=0。对C17电路,所构建的矩阵C为:
步骤8:用ψ表示一个集合,并置ψ为空集。
步骤9:从矩阵C中查找满足如下条件的这种列向量β:该列向量β中只有一个分量的值为1。若在矩阵C中存在这种列向量β,则将测试矢量α添加到集合ψ中。此时对C17电路,在它所对应的矩阵C中不存在这种列向量β。
步骤10:对矩阵C的第一行Z1,把它与矩阵C的其他所有行向量的和(记为η1)进行比较。若它属于η1,则将第一行Z1所对应的测试矢量V1从集合ξ中去除,并将第一行Z1从矩阵C中去除。
对当前矩阵C的第二行Z2,把它与矩阵C的其他所有行向量的和(记为η2)进行比较。若它属于η2,则将第二行Z2所对应的测试矢量V2从集合ξ中去除,并将第二行Z2从矩阵C中去除。
类似地,对当前矩阵C的其他行(第三行至第16行)都进行这样的操作。
对C17电路所对应的矩阵C,在进行这一步即步骤10时,得到的结果为:V1、V2、V3、V4、V5、V6、V7和V8依次被从集合ξ中去除;V9、V10和V11被添加到集合ψ中;V12被从集合ξ中去除;V13被添加到集合ψ中;V14、V15和V16依次被从集合ξ中去除。因此,进行这一步即步骤10之后,获得的C17电路的具有极小规模的测试集ψ由4个测试矢量V9、V10、V11和V13所构成。
步骤11:C17电路的内建自测试结构由模式产生器、响应压缩器、比较器等模块组成。将具有极小规模的测试集ψ中的测试矢量固化在只读存储器ROM中,或者事先保存在随机存储器RAM中;在进行电路的测试时按顺序将它们读出,并送到被测电路的输入端。如图6所示,由模式产生器依次产生测试集ψ中的4个测试矢量V9、V10、V11和V13,并施加到正常电路的输入端;正常电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,并得到一个与测试响应相对应的正常特征值,并被传送到比较器中进行保存。
步骤12:由模式产生器自动产生C17电路的测试集ψ中的4个测试矢量V9、V10、V11和V13,并施加到被测电路的输入端;被测电路的测试响应被捕获并传送到响应压缩器,之后由响应压缩器对测试响应进行压缩,得到一个与测试响应相对应的测试特征值,并被传送到比较器。
步骤13:由比较器将测试特征值与正常特征值进行比较,若所有的测试特征值与对应的正常特征值都相等,则说明被测电路中无故障;若有一个或多个测试特征值与对应的正常特征值不相等,则说明被测电路中有故障。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (5)
1.一种集成电路的内建自测试方法,其特征在于包括如下步骤:使用二元判定图来生成电路中每一个故障的所有测试矢量,并通过对测试矢量的选取,来获得具有极小规模的电路测试集;在被测电路的内建自测试中直接使用这种极小规模的电路测试集来对电路进行测试;
所述的二元判定图的构造方法如下:把h写成如下的香农展开形式:
<mrow>
<mi>h</mi>
<mo>=</mo>
<msub>
<mover>
<mi>x</mi>
<mo>&OverBar;</mo>
</mover>
<mi>i</mi>
</msub>
<mo>&CenterDot;</mo>
<mi>h</mi>
<msub>
<mo>|</mo>
<mrow>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<mo>&CenterDot;</mo>
<mi>h</mi>
<msub>
<mo>|</mo>
<mrow>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
这里,xi是取值为0或1的布尔变量,其中,i=1,2,…,n;为h在xi上的香农展开因子,为h在xi上的补香农展开因子;布尔函数h的二元判定图递归地定义如下:
①若h的值为常数,其中常数为1或0,则其二元判定图仅由一个终结点构成,终结点的值为该常数;否则,执行如下的步骤②;
②选取变量xi,生成两个非终结点;由该变量xi对布尔函数h进行香农展开,并从该结点出发引出两条有向边,一条边上的权为1,另一条边上的权为0;
③在1边上对布尔函数重复进行步骤①和②,直至出现终结点为止;在0边上对布尔函数重复进行步骤①和②,直至出现终结点为止;
所述的测试矢量通过如下步骤得到:
(1)对给定的被测电路,根据该电路的结构,建立正常电路所对应的二元判定图;
(2)对正常电路中的一个给定信号线注入一个故障,获得故障电路,并建立故障电路所对应的二元判定图;
(3)对正常电路与故障电路所对应的这两个二元判定图进行异或操作,获得一个测试二元判定图;找出该二元判定图中从根结点到属性值为1的终结点的所有路径,每一个这种路径上的边所对应的变量取值就为该故障的测试矢量;
所述的具有极小规模的电路测试集,通过如下步骤得到:对能检测电路故障的测试矢量按照所定义的属于关系进行选取,并通过进行相关的操作与处理,具体如下:
(A)对电路中的每一个信号线,分别注入s-a-0故障和s-a-1故障,并使用上述步骤(2)和步骤(3)来获得每一个信号线的s-a-0故障和s-a-1故障的所有测试矢量;
(B)把检测每个信号线的s-a-0故障和s-a-1故障的所有这些测试矢量组合在一起,构成电路的一个测试集,将其命名为ξ;设被测电路共有k个故障,它们分别被命名为f1,f2,…,fk;设在电路的测试集ξ中共有w个测试矢量,它们分别被命名为V1,V2,…,Vw;
(C)构建一个具有w行k列的矩阵,命名为C,该矩阵中的元素cij的取值如下:若测试矢量Vi可检测故障fj,则矩阵C的第i行第j列的元素cij=1;否则,cij=0;其中,1≤i≤w,1≤j≤k;
(D)用ψ表示一个集合,并置ψ为空集;
(E)从矩阵C中查找满足如下条件的这种列向量β:该列向量β中只有一个分量的值为1;由这个分量值1所在的行所对应的测试矢量α能检测该列向量β所对应的故障f,并且α是能检测故障f的唯一的测试矢量;若在矩阵C中存在这种列向量β,则将测试矢量α添加到集合ψ中;
(F)对矩阵C中的两个行向量X=(x1,x2,…,xk),Y=(y1,y2,…,yk),若对每一个i,都成立xi≤yi,则称X属于Y,其中,1≤i≤k;
对矩阵C的第一行,记为Z1;把它与矩阵C的其他所有行的和,记为η1,进行比较:若它不属于η1,则把第一行Z1所对应的测试矢量V1添加到集合ψ中;若它属于η1,则将第一行Z1所对应的测试矢量V1从集合ξ中去除,并将第一行Z1从矩阵C中去除;这里,计算矩阵C中的多个行向量之和的方法是:把这多个行向量的对应分量的值相加;
对矩阵C的第二行,记为Z2;把它与矩阵C的其他所有行向量的和,记为η2,进行比较:若它不属于η2,则把第二行Z2所对应的测试矢量V2添加到集合ψ中;若它属于η2,则将第二行Z2所对应的测试矢量V2从集合ξ中去除,并将第二行Z2从矩阵C中去除;
类似地,对当前矩阵C的其他行,即第三行至第w行,都进行这样的操作;
(G)所获得的集合ψ就为被测电路的一个具有极小规模的测试集。
2.根据权利要求1所述的集成电路的内建自测试方法,其特征在于:所述的内建自测试的结构包括依次连接的模式产生器、响应压缩器和比较器。
3.根据权利要求2所述的集成电路的内建自测试方法,其特征在于:所述的模式产生器的实现方法是把具有极小规模的测试集中的测试矢量固化在只读存储器ROM中,或者事先保存在随机存储器RAM中;在进行电路的测试时按顺序将它们读出,并送到被测电路的输入端。
4.根据权利要求2所述的集成电路的内建自测试方法,其特征在于:所述的响应压缩器是使用多输入线性移位寄存器来实现,即在一般的线性反馈移位寄存器的基础上增加一个外部输入,并据此获得线性反馈移位寄存器的特征多项式的具体形式;当对线性反馈移位寄存器施加输入数据流时,根据它的特征多项式的特性来计算出线性反馈移位寄存器的输出数据流和余数,将该余数作为特征值。
5.权利要求1~4任一项所述的集成电路的内建自测试方法的应用,其特征在于:所述的内建自测试方法用于检测集成电路中的固定型故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510014547.1A CN104515950B (zh) | 2015-01-12 | 2015-01-12 | 一种集成电路的内建自测试方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510014547.1A CN104515950B (zh) | 2015-01-12 | 2015-01-12 | 一种集成电路的内建自测试方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104515950A CN104515950A (zh) | 2015-04-15 |
CN104515950B true CN104515950B (zh) | 2018-05-22 |
Family
ID=52791552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510014547.1A Expired - Fee Related CN104515950B (zh) | 2015-01-12 | 2015-01-12 | 一种集成电路的内建自测试方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104515950B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874177A (zh) * | 2015-12-14 | 2017-06-20 | 中国航空工业第六八研究所 | 一种基于场景的锁存器测试方法 |
CN108229207B (zh) * | 2016-12-09 | 2021-09-14 | 上海新微技术研发中心有限公司 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
CN109490753B (zh) * | 2018-11-13 | 2020-12-08 | 吉林大学 | 一种结合极小碰集约简集成电路测试模式集的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH063420A (ja) * | 1992-06-17 | 1994-01-11 | Toshiba Corp | 組み合わせ論理回路のテストパタン生成方法 |
JP2985922B2 (ja) * | 1992-10-28 | 1999-12-06 | 日本電信電話株式会社 | 論理関数データ処理装置 |
US5522063A (en) * | 1993-09-27 | 1996-05-28 | Nec Usa, Inc. | Method of finding minimum-cost feedback-vertex sets for a graph for partial scan testing without exhaustive cycle enumeration |
FR2810126B1 (fr) * | 2000-06-08 | 2004-03-12 | Bull Sa | Outil automatique d'analyse de testabilite |
US20050102594A1 (en) * | 2003-09-26 | 2005-05-12 | The Regents Of The University Of California | Method for test application and test content generation for AC faults in integrated circuits |
CN101226228B (zh) * | 2008-02-01 | 2010-06-02 | 清华大学 | 一种确定性自测试测试数据压缩装置及方法 |
US8413089B2 (en) * | 2011-04-29 | 2013-04-02 | Synopsys, Inc. | Performing implication and decision making using multiple value systems during constraint solving |
CN102435936B (zh) * | 2011-11-23 | 2013-09-04 | 华南师范大学 | 一种集成电路故障的单光子检测方法及检测系统 |
CN103499787B (zh) * | 2013-09-24 | 2016-01-27 | 中国科学院自动化研究所 | 一种测试数据压缩方法、数据解压缩装置及解压缩方法 |
-
2015
- 2015-01-12 CN CN201510014547.1A patent/CN104515950B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104515950A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Millman et al. | Diagnosing CMOS bridging faults with stuck-at fault dictionaries | |
CN109524055B (zh) | 基于soc ate定位存储器失效位的方法及测试系统 | |
CN104515950B (zh) | 一种集成电路的内建自测试方法及应用 | |
CN106250631A (zh) | 一种基于故障‑测试相关矩阵的故障诊断方法 | |
Sharma et al. | X-filter: Filtering unknowns from compacted test responses | |
CN105629156A (zh) | 基于遗传规划的模拟电路故障测试最优序贯搜索方法 | |
CN106546907B (zh) | 一种低功耗扫描自测试电路以及自测试方法 | |
CN102608519B (zh) | 基于节点信息的电路故障诊断方法 | |
CN104635144A (zh) | 一种不依赖基准曲线的硬件木马检测方法 | |
CN104615950A (zh) | 能检测极小硬件木马的电路设计方法及检测方法 | |
Kole et al. | Derivation of optimal test set for detection of multiple missing-gate faults in reversible circuits | |
Pundir et al. | CHECKERMARC: a modified novel memory-testing approach for bit-oriented SRAM | |
Reddy et al. | Detecting SEU-caused routing errors in SRAM-based FPGAs | |
Shi et al. | A key metric and its calculation models for a continuous diagnosis capability base dependency matrix | |
Wu et al. | A Repair-for-Diagnosis Methodology for Logic Circuits | |
Geetha et al. | OR-bridging fault identification and diagnosis for exclusive-OR sum of products reed-muller canonical circuits | |
Noorbasha et al. | LFSR Test Pattern for Fault Detection and Diagnosis for FPGA CLB CELLS | |
Jahanirad et al. | BIST-based online test approach for SRAM-based FPGAs | |
Julie et al. | 12N test procedure for NPSF testing and diagnosis for SRAMs | |
Benware et al. | Diagnosis of failing scan cells through orthogonal response compaction | |
CN203688761U (zh) | 一种fpga芯片的错误检测电路 | |
CN102446560B (zh) | 面板驱动电路中嵌入式存储器的分析装置与方法 | |
JP3139543B2 (ja) | 多重故障を有するcmoslsiにおける故障ブロックの特定化方法 | |
Wang et al. | Built-in self-test of molecular electronics-based nanofabrics | |
Chunping et al. | Five modified boundary scan adaptive test generation algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180522 Termination date: 20220112 |
|
CF01 | Termination of patent right due to non-payment of annual fee |