专利名称:一种单输出无反馈时序测试响应压缩电路的制作方法
技术领域:
本发明涉及集成电路芯片的可测性技术领域,特别是涉及一种芯片全扫描设计中的单输出无反馈时序测试响应压缩电路。
测试响应压缩的主要思想是首先设计一个内置的响应压缩器,该压缩器能够尽可能将测试响应输出压缩到一个或几个输出,这些输出通过引脚输出到测试设备。对于一般的可测性设计,可用作扫描输入和输出的引脚是限定的。这些限定可能是来自于版图设计的需要,也有可能是兼顾的测试设备的实际测试资源情况。这样,如果输出被压缩变少后,就可以有更多的引脚用于设计更多的测试扫描链,从而缩短了最长扫描链的长度,减少了用于扫描进/扫描出向量的时间。而扫描测试中,主要的时间耗费就是在移动扫描向量上,因此通过测试响应压缩我们可以大大减少扫描测试时间。同时,由于增加了扫描链,单个扫描链上的数据量就会相应减少,因此,测试响应压缩还减少了每个测试通道需要的测试容量。
对于测试响应输出有几个特征,这些特征是我们设计不同压缩电路必须要面对的问题1)单位时间内,发生故障的数目比较少,一般不会超过4个。2)响应中可能包含很多不确定位。不确定位是指其值在仿真的时候是不能确定的。3)必须能提供一个简单的能够收集完全诊断信息的方法,而且这种诊断必须是没有假设条件的。适合于解决以上三个问题的压缩电路方案可以分为两大类组合压缩电路和时序压缩电路。组合压缩电路是指通过简单的组合电路来实现压缩电路。这种压缩电路设计方法比较简单,一种最简单的实现就是利用异或树。其理论基础是基于奇偶校验。通过合理的设计异或树的结构和规划压缩输出的个数,可以有针对性的解决上文提出的三个问题。组合电路的一个不足之处在于压缩率比较低,而且不能提供完全的针对方案,其诊断必须是基于一些假设,而这些假设是无法保证的。时序压缩电路是通过移位寄存器实现压缩。这种压缩电路压缩比相对较高,且误判率也比较低。但是最直接的时序电路压缩比如MISR,在响应压缩的时候,不能有效的处理不确定位。其通常的方法是通过合理的可测性设计去消除这些不确定状态。而不确定位在大规模的SOC设计中是不可能被完全消除的。因此要想使得时序压缩电路在SOC的测试响应压缩中依然有效,就必须对其加以变革。创造出新的针对上述三个特征的时序压缩电路。
本发明提出了一个新的商-压缩器。该电路是在充分研究上述测试向量三个基本特征的基础上提出的,也是一个时序的压缩电路。它不仅继承了时序压缩电路压缩比高(只有一个输出,压缩比最高),和测试向量无关等优点,还通过合理的设计避免了少故障抵消。出对于输中出现的不确定位也能够有效的进行处理。并且可以提供完全诊断能力。
本发明构造了一种新的时序压缩电路商-压缩器。该电路包含两个组成部分响应扩散网络和商-移位寄存器链。其硬件实现参考图1。图1描述了一个5输入的商-压缩器电路架构。从图1可以看出,响应扩散网络主要由异或树构成,通过与门连接于商-移位寄存器链;由异或门和寄存器交替组成的商-移位寄存器链。除了异或树外,扩散网络还包含了若干个与门,这些与门组成了一个屏蔽电路。可使商-移位寄存器链工作于压缩模式和扫描模式。商-移位寄存器链由若干个相邻的异或门和寄存器交替组成。响应扩散网络的输入来源于芯片全扫描时的扫描链的输出,它的输出对应于商-移位寄存器链的输入。商-移位寄存器链除了和响应扩散网络有数据接口以外,还有一个输入qin和输出qout。输入qin用于提供初始化种子和测试向量,该输入端可选;。qin并不是必须的,可以通过将它设定值0来简化设计,用于多设计一条扫描链。单输出qout用于输出压缩结果。若干异或门和等数目的寄存器,用于响应压缩。
对于一个具体的商-压缩器,其基本的配置参数有下两个输入个数N,商-移位寄存器链的级数K。为了提供可靠的故障发现能力和诊断能力,对于我们的具体应用的商-压缩器N等于K。也就是说商-移位寄存器链的级数总是和扫描链的输出是对应的。
为了能够提供完全可诊断能力,需要一种机制能够将扫描链的输出不加压缩的收集到测试设备的诊断缓存中。利用这些信息,调用一个后处理的诊断程序就可以对电路进行门级的错误定位。在商-压缩器中,这种机制是通过控制商-移位寄存器链的工作模式来实现的。下表列出了对应的工作模式及相应的控制信号。
表1商-移位寄存器链的工作模式
可以看出,对于商-移位寄存器链有两种工作模式扫描模式和压缩模式。扫描模式是用于将移位寄存器链中的内容扫出来观察,同时给寄存器链置入新的种子。压缩模式是利用线性压缩原理对待测芯片输出进行压缩。
商-移位寄存器链的扫描模式提供了一种可以获得所有扫描链输出的信息的能力。简单的一个测试流程包含了下面三个步骤1)初始化商-移位寄存器链为0qin=0;qmask=0;
2)捕捉扫描链的输出到商-移位寄存器链中的寄存器中。其时的信号qin=0;qmask=03)冻结所有扫描链的时钟,利用扫描模式将商-移位寄存器链中的内容扫出来,同时初始化商-移位寄存器链为0qin=0,qmask=1;重复执行以上三个步骤就可以逐拍得到扫描链的输出。这一过程可以通过采用STIL描述一个测试协议,使用自动测试设备自动实现。当需要的逐拍相关于扫描链输出的数据被收集到测试设备的调试缓冲器以后,使用一个表示响应扩散网络的的方程来计算得到扫描链的实际输出。这些输出可以作为一个自动诊断程序的输入,对芯片进行故障定位。
本发明的关键技术在于响应扩散网络的设计方法。
如果发明中的响应扩散网络采用异或门实现,那么可以用一个扩散矩阵来准确表征它。在这个矩阵中,每一行表示一个输入,每一列表示扩散网络的一个输出。如果第i行,第j列为1,那么表示扩散网络的第i个输入通过异或树和第j个输出相关。相关的意思是指,如果有一个输入发生故障,且没有其他输入发生故障和不确定位,那么这个故障就会被反应到和它相关的输出上。有了这个定义,附图1中响应扩散网络可以用下面一个扩散矩阵来表示Π=0110111001100111010101110]]>在这个矩阵中,可以看出扩散网络的第1个输入和第2,3,5输出相关。所以,如果,第1个输出发生了故障,那么就会被扩散到2,3,5个寄存器上。这样这个故障就会被观察到3次。
由于扩散矩阵和响应扩散网络的一一对应关系,在本发明以后的表述中,设计的对象将都是扩散矩阵,可以用一个很简单的综合算法来实现它和实际异或树的转换。上文已经提及商-压缩器的一个基本配置是K=N。对于扩散矩阵来说,就是要求矩阵列数和行数完全相等,在下面的设计定理中,都有这一前提。
在发明的背景中已经提到结构测试响应输出的三个方面的特点,针对这三个特点,下文对扩散矩阵提出了具体的设计规则。
为了方便的描述这些规则,需要首先介绍一个”等价”的概念。
对于两个k-维的两个向量R1,R2,R1和R2等价如果下列两个条件成立1)R1和R2中包含1的个数相等2)R1和R2中包含1的个数相等且为1或者i,j |PR1(i)-PR2(i)|=|PR1(j)-PR2(j)|(i,j<=k)其中,PR1(i)和PR1(j)指在向量R1中的第i,j个1所处的位置。PR2(i)和PR2(j)表示在向量R2中第i,j个1所处的位置下面给出两个设计定理来保证对于少错误不发生误判[定理1]如果一个扩散网络对应的扩散矩阵中任意两行都不等价,那么商-压缩器可以发现任意1个或者2个故障。这些故障可以发生在任意一条扫描链上,出现的时间可以相同拍也可以是在不同拍。[定理2]如果一个扩散网络对应的扩散矩阵中任意两行都不等价且每一行所含的1的个数为奇数的话,那么商-压缩器最终必然可以发现1个,2个或是任一奇数个错误。这些错误可以出现在任意一条扫描链,出现的时间可以是相同拍也可以是不同拍。
因为扩散矩阵中没有两行是等价的,所以不存在一个错误的相关寄存器经过移位后和另一个错误的相关寄存器相完全抵消的情况,所以定理1成立。对于定理2,如果有1个错误被扩散到商-寄存器链中,那么受感染的寄存器的个数为奇数。当第2个错误被植入后,由于错误的抵消效应,此时,留在寄存器链中的受感染的寄存器的个数为偶数个。比如,如果两个错误的相关寄存器有1个位相互抵消,那么留在寄存器链中受感染的寄存器个数就要减2。2个位相互抵消的类似,所以偶数个错误植入后,保留错误信息的寄存器个数总是为偶数,定理1保证了2个错误植入后不会出现剩余的错误信息寄存器个数为0的情况。当有第3个故障植入的时候,此时保留有错误信息的寄存器的个数又变成了奇数,可能为1,3,5……。所以还不会出现全部抵消的情况。当第4个故障植入的时候,保留有错误信息的寄存器的个数重新变成了偶数,而且可能为0。很显然,为0表示将要发生误判。所以,定理2不能保证对于4以及更高的偶数个错误不发生误判。而对于大于3的奇数个错误,其情况和3个错误时候类似,保留错误信息的寄存器的个数总为奇数,也就是至少被观察1次,所以不可能发生误判。
分析图1扩散网络对应的扩散矩阵П,可以发现它符合定理2要求的条件。每一行都不和其他行等价。且每一行都包含3个1s。该例设计中所有行所含的1的个数是相对的且均为3。使用等奇数个1的设计方法可以简化设计,而且能够提供很好的时延性能。特别是对于奇数为3的设计可以使得设计时压缩器的面积代价较小。
对于响应压缩性能评价时,一个很重要的指标就是这种压缩器对于不确定位的处理能力。由于芯片设计规模的不断增大,已提出的消除不确定位的方法,比如增加观察点,增加可控制点的办法很难完全奏效。而由于反馈电路的存在,使得普通的时序压缩电路很难处理不确定位的问题。本文提出的响应压缩器由于取消了反馈电路,所以,对于输入有不确定位植入时,该不确定位将会被扩散到商-寄存器链中,在最多K拍以后将被扫出,不会继续屏蔽其他通过扩散网络扩散过来的错误。下面一个定理说明了商-压缩器具有的对于不确定位的处理能力[定理3]如果定理2中的两个条件都被满足,那么对于伴随着1个不确定位的单故障,必将被商-压缩器所发现。
既然定理2规定扩散矩阵中没有任何两行是等价的,因此单个不确定位通过扩散网络扩散后不可能完全屏蔽单个错误所扩散的寄存器位。至少有1个带有错误信息的寄存器会被观察到。当然,如果有多个不确定为植入时,情况就不一样了。多个不确定位扩散成一个巨大的区域,使得错误被扩散到的寄存器有可能完全包含在这个区域内,从而被彻底屏蔽。
对于一个压缩器,能够提供完整的诊断信息是很难的。因为响应压缩一般都是有损压缩,所以无法完整的收集到实际扫描链上的输出。前面已经描述过,商-压缩器中的商-寄存器链可以被重构为一条串行的扫描链,且通过相应的信号配合,可以达到收集完整信息的目的。当然这只是一种可能性,下面一个定理将保证这种可能性变成现实[定理4]商-压缩器将可以收集到完整的扫描链输出错误信息,这些错误可以是发生在同一时刻也可以发生在不同时刻,当设计的扩散矩阵满足秩(扩散矩阵的转置)=N如果我们假设,扩散网络在t时刻的输入为Xt=[x1(t),x2(t),x3(t),ΛΛ,xn(t)]T,商-寄存器链各寄存器的状态为St=[s1(t),s2(t),s3(t),ΛΛ,sm(t)]T。П为扩散网络对应的扩散矩阵,那么有下列等式成立ПT*XtSt-1=StSt-1是商-寄存器链在t-1时刻的状态。如果我们通过初始化置入种子将St-1初始化为0,那么上式可以简化为ПT*Xt=St在上式中,我们可以通过将商-寄存器链控制到扫描模式得到St的值。因此定理4实际上变成了一个解决矩阵方程的问题如何设计矩阵ПT使得上式中的Xt有唯一确定的解。因此可以应用克莱姆法则证明定理4。
举一个例子来说明这种诊断能力,对于图1的商-压缩器,如果发现在t时刻有故障发生,那么响应的诊断信息收集流程被插入测试流程,收集到t时刻的商-寄存器链的状态信息为StS=11010,]]>它不同于期望的输出结果StE=10000.]]>我们利用StS的值可以计算出对应扫描链输出的值0111011001100110010111110*x1x2x3x4x5=11010]]>可以利用高斯消去法解上述方程得到扫描链的输出值StS=11010,]]>比较XtE=10101.]]>可以诊断出第2条和第3条扫描链发生了错误。
上面的内容,详细阐述了保证响应压缩器对于少故障的发现能力,对于不确定位的处理能力,全诊断能力的一些设计定理。概括定理1,2,3,4可以得出一个商一压缩器的推荐设计规则,符合这些规则将可以保证压缩器能够处理1,2,3或者其他奇数个错误,能眵具有处理不确定位的能力,并且能够提供完全的诊断能力[设计规则]4)扩散矩阵中任意两行都不等价;5)扩散矩阵中每一行都含有奇数个1;
6)扩散矩阵转置的秩等于商-压缩器的输入;
图1是一个5输入的商-压缩器的门级实现电路图;图2是带有商-压缩器的芯片全扫描可测性设计框架图;图3是应用商-压缩器的可测性设计流程图。
图1中,包含了两个部分,其中一个部分是由10个异或门和5个与门构成的一个可控异或树,被称为响应扩散网络。另一部分是由5个异或门和5个寄存器交替组成的一个移位寄存器链,被称为商-移位寄存器链。在图中用圆圈十字表示异或门,用与门符号表示与门。
图2中,由若干扫描联链和一个商-压缩器构成。扫描链的输出通过商-压缩器压缩后通过引脚输出观察。
具体实施例方式
本发明应用于对测试响应进行压缩。图2描述出了带有商-压缩器的全扫描设计框架。从图中可以看出,响应压缩器被设计在扫描链的输出上。将多个扫描链的输出压缩成一个输出,通过一个扫描输出引脚输出到测试设备上比较。因此从整个设计流程来看,响应压缩器的设计基本上和扫描链的设计可以相互独立。因此响应压缩器的插入不需要修改原芯片的设计流程,也不用修改原芯片的可测性设计流程。
图3列出了应用商-压缩器的可测性设计流程。可以看出,对于一个应用商-压缩器的可测性设计流程可分为下列几步1)综合,扫描链设计。在这一步需要规划好可用于扫描链设计的引脚。因为商-压缩器是单输出的,所以只需预留出一个输出引脚用于压缩电路输出,其他引脚都可以用于输入。在这些输入中,只需要预留出一个引脚用于qmask,其他都可以用于作为扫描链的输入。因此,对于规定可用的扫描引脚M,我们最多可设计M-2条扫描链。该步规划扫描链设计的数目,同时在综合过程中插入扫描链;
2)设计,插入商-压缩器。当扫描链设计好后,根据本发明提出的三条设计规则自动生成一个符合条件的扩散矩阵。然后用综合工具,自动生成扩散网络。将扩散网络和商-寄存器链进行连接就可以得到完整的商-压缩器。再将它作为一个单独的设计模块包含到整体的设计中。然后对整体的设计进行一次设计规则检查,检查是否有延迟过大或是其他电学方面的不足。
3)利用ATPG工具针对扫描链设计产生测试向量,并将其转化为并行的结构,调故障模拟器得到逐拍的响应结果。并输出到一个商-压缩器的软件模拟器中。该软件模拟器能够根据具体的配置快速的模拟出压缩输出结果。并记录到向量文件中。
4)将ATPG工具产生的扫描链输入和商-压缩器软件模拟的结果合并到一个测试向量中,同时加上qmask的控制信号。输出作为最终的测试向量。即合并ATPG工具产生的向量和压缩器模拟器得到的结果,得出最终的测试向量。
在这个流程中,自动生成商-压缩器的扩散矩阵是一个关键问题。在自动生成扩散矩阵的算法中我们要考虑到设计的异或树对时延的影响。对于符合上述三个设计规则的扩散矩阵,由于各行取值的差别,可能导致所生成的异或树在关键路径上的延迟有很大的差别。如果设计的异或树各输入路径上的异或门分布比较平均的化,则总体的性能就能达到最优化。
本发明,由于商-压缩器是单输出压缩电路,所以具有压缩率高的特点。应用商-压缩器的全扫描设计能够增加2倍扫描链,缩短了扫描链的长度,也就减少了测试时间。同时针对扫描测试中容易出现的故障模型进行特殊的设计,保证没有误判情况。商-压缩器还能够处理不确定位的能力。如果一些诊断的操作被插入,商-压缩器能够提供完全收集扫描链输出信息的能力。
权利要求
1.一种商-压缩器电路,包含响应扩散网络和商-移位寄存器链两个组成部分其特征在于,1)由异或树构成的响应扩散网络,通过与门连接于商-移位寄存器链;2)由异或门和寄存器交替组成的商-移位寄存器链。
2.根据权利要求1的商-压缩器电路,其特征在于,响应扩散网络包含N个输入端,连接N条扫描链的输出;输入qmask,用于控制商-移位寄存器链的工作模式,商-移位寄存器链有两种工作模式扫描模式和压缩模式;若干异或门,用于将扫描输出中的错误位扩散到商-移位寄存器链中;若干与门,用于控制商-移位寄存器链的工作模式。
3.根据权利要求1的商-压缩器电路,其特征在于,商-移位寄存器链,包含输出端qout,用于输出压缩结果;输入端qin,用于提供初始化的种子及测试向量,该输入端可选;若干异或门和等数目的寄存器,用于响应压缩。
4.根据权利要求2的商-压缩器电路,其特征在于,响应扩散网络对应的扩散矩阵的设计规则,包含1)扩散矩阵中任意两行都不等价;2)扩散矩阵中每一行都含有奇数个1;3)扩散矩阵转置的秩等于商-压缩器的输入。
5.根据权利要求2的商-压缩器电路,其特征在于,扫描模式,用于将移位寄存器链中的内容扫出来观察,同时给寄存器链置入新的种子; 压缩模式是利用线性压缩原理对待测芯片输出进行压缩。
6.一种商-响应压缩器的方法,步骤如下1)综合,扫描链设计,该步规划扫描链设计的数目,同时在综合过程中插入扫描链;2)设计,插入商-压缩器,根据权利要求4中提出的三条规则,设计压缩电路,自动生成一个符合条件的扩散矩阵,并作为设计的一个模块包含进电路的整体设计,然后进行设计规则检查;3)利用ATPG工具针对扫描链设计产生测试向量,并模拟得出期望的输出响应,通过商-压缩器的软件模拟器模拟得出期望的压缩结果;4)合并ATPG工具产生的向量和压缩器模拟器得到的结果,得出最终的测试向量。
全文摘要
本发明涉及芯片可测性设计中的测试响应压缩器。提出一种单输出时序压缩电路商-压缩器。该压缩电路包含两个部分(1)响应扩散网络。(2)商-移位寄存器链。为了处理扫描输出中的错误抵消,不确定位以及提供完全的诊断能力。响应扩散网络对应的扩散矩阵设计符合三个规则(1)扩散矩阵中任意两行都不等价;(2)扩散矩阵中每一行都含有奇数个1;(3)扩散矩阵转置的秩等于商-压缩器的输入;由于商-压缩器是单输出压缩电路,所以具有压缩率高的特点。应用商-压缩器的全扫描能够增加2倍扫描链,缩短扫描链长度,减少测试时间。同时针对扫描测试中容易出现的故障模型进行特殊的设计,保证没有误判情况。商-压缩器还能处理不确定位。如果诊断的操作被插入,商-压缩器提供完全收集扫描链输出信息。
文档编号G06F7/52GK1460923SQ0314907
公开日2003年12月10日 申请日期2003年6月25日 优先权日2003年6月25日
发明者韩银和, 李晓维 申请人:中国科学院计算技术研究所