专利名称:系统芯片外建自测试数据的压缩方法及专用解码单元的制作方法
系统芯片外建自测试数据的压縮方法及专用解码单元
技术领域:
本发明涉及集成电路测试技术,特别是对系统芯片(System-on-a-Chip,简称 SoC)的外建自测试(Built-Off Self-Test,BOST)方法中测试数据压縮方法及专用解码单 元。
背景技术:
集成电路技术的发展使得可在一个芯片中集成数以亿计的器件,并且可以集成预
先设计和经过验证的IP,如存储器,微处理器,DSP等。这种多元化的集成芯片已经成为能
处理各种信息的集成系统,被称为片上系统或系统芯片。SoC大大降低了系统成本,縮短了
设计周期,加快了产品上市时间,但是SoC产品的测试面临越来越多的挑战,如 1、芯片测试点少,可直接控制或观测的测试点有限,通常只能通过芯片有限的输
入/输出引脚进行测试而芯片内部节点很难通过宏观机械装置直接控制或观测。 2、自动测试设备(简称ATE)价格昂贵,芯片的设计和制造技术发展速度比ATE的
设计和制造技术发展快,芯片的时钟频率已超过了目前最先进的ATE的频率,无法进行全
速领lj试。 3、测试数据量大,SoC中集成的IP越多,所需测试数据量就越大。预计到2014年 存储测试向量所需存储器的容量是1999年的150倍,将会超过ATE的存储深度。
芯片的测试已成为制约集成电路发展的一个"瓶颈"。已有大量的文献对集成电路 的测试方法展开研究,主要有内建自测试(Built-In Self-Test,简称BIST)和外建自测试 两种方法。内建自测试方法,依靠芯片自身的资源完成对芯片的测试。此方法将测试模式 生成器TPG、测试过程控制和测试响应评价功能模块嵌入在被测电路CUT上,摆脱了对ATE 的依赖,减少了测试费用。但由于BIST生成的多是伪随机测试向量,测试时通常存在着抗 随机故障(Random Resistant Fault,简称RRF),故BIST存在故障覆盖率不高、测试序列较 长的弊端。虽然可以通过加权或采用混合模式的BIST等方法来进一步提高测试效率,但随 着电路规模的扩大,RRF的增多,要付出的硬件开销将显著增加。 外建自测试方法又称为测试源划分技术,此方法将所需的测试向量经过压縮存储 在ATE中,测试期间,通过片上的解压电路将其还原施加到被测电路上。它同样是将一些测 试资源从ATE移入到芯片中,以达到减少测试数据量、縮短测试时间的目的,并能允许使用 低速ATE而不降低测试质量。该方法不需要了解被测设计(Design Under Test,简称DUT) 的具体内部结构,可以很好的保护知识产权,因而得到了广泛地应用。 由于SoC测试数据的特殊性, 一个好的测试源划分技术,需要在压縮率、解码硬件 开销和控制协议三个方面做出权衡。经典的方法有基于游程的编码方法,基于统计的编码 方法、基于字典的编码方法和基于折叠计数器的方法。基于游程的编码方法有Golomb码、 FDR码、EFDR码、交替码、交替连续码等编码方法,但这类方法都存在着控制协议复杂等问 题;基于统计的编码方法有选择哈夫曼编码、变长哈夫曼编码,但这类方法存在解压硬件 开销大,解码过程复杂等问题;基于字典的编码方法有LZ77、 LZ78、 LZW等,但这类方法需要存储字典开销大,同时大量的变长索引使解码非常复杂。基于折叠计数器的方法能够将 整个测试集嵌入到多个折叠集中,这样将整个测试集的存储变成了多个折叠种子的存储, 是一种非常优秀的方法,然而由于折叠集的翻转规律的单一性,使得单个折叠集所能嵌入 的测试向量个数非常少,最后需要的折叠集的数量仍然很大;折叠集的另一缺点是从折叠 种子到折叠向量之间的还原是串行的,因此其应用时间很长,这增加了测试过程。
发明内容
本发明所要解决的技术问题是为避免上述现有技术所存在的不足之处,提供一种 非侵入式的外建自测试测试数据压縮方法及专用解码单元,无需改变被测试的电路结构, 即可达到并行还原翻转序列的目的,降低所需测试数据的存储容量,縮短测试应用时间。
本发明是通过以下技术方案解决上述技术问题的系统芯片外建自测试数据的压 縮方法,具体步骤如下 a、采用自动测试模式生成工具ATPG,生成确定的完全测试集T,其测试向量个数 为N; b、通过所述完全测试集T构建序列图顶点表示测试向量,边表示两个顶点所对 应测试向量之间的翻转关系,边上的数值代表两个顶点所对应测试向量之间需要翻转的位 置; c、寻找最大可嵌入翻转序列从包含最大确定位的测试向量所对应的顶点开始遍 历图,遍历原则首先选取该顶点所有直接相连的边上的数值个数最小的边,若该边上所 对应的数值与其以前遍历的路径上的所有对应的边上的数值无相同值,则该边即为遍历路 径;若该边上所对应的数值与其以前遍历的路径上的所有对应的边上的数值有相同值,则 选择判断该顶点直接相连的剩下的边的数值情况,直到该边上所对应的数值与其以前遍历 的路径上的所有对应的边上的数值无相同值;此过程一直重复到所有顶点全部遍历或某一 顶点所有对应边上的对应数值均与其以前遍历的路径上的所有对应的边上的数值有相同 值,所有顶点所对应的测试向量集即为所得最大可嵌入翻转序列,记为1\ ;
d、无关位填充无关位的填充在遍历过程中动态完成。每成功遍历一条边,则该边 相连的两个顶点所对应的两个测试向量的无关位需要填充,首先按该边上的数值所对应的 位置以相反值填充无关位,对其它位置的无关位的填充则是判断是否有一个向量在该对应 位置有确定位,若是则该无关位按相同值填充,否则,无关位不需要填充;
e、寻找可嵌入翻转序列数量将1\中所包含的测试向量从T中删除,记为T',即 T' = T-L,对T'按步骤b构建序列图,并在T'中按步骤c寻找最大可嵌入翻转序列T2 ;重 复上述过程,一直到剩下序列全部嵌入到可翻转序列Tn,即T = {1\,T2,……,TJ ,其中1\,
T2,……,Tn均为可翻转序列,其中^^!.然后利用自动测试设备将压縮的数据导入被测
2 ,
芯片,由被测芯片的解压縮电路来进行解压,最后将解压縮后的数据传输到被测电路的扫 描链。 本发明还提供了一种用于实现所述系统芯片外建自测试数据压縮方法的专用解 码单元,包括用于展开翻转序列个数的计数器,译码器,或门,用于控制从种子到生成测试向量翻转位置的可配置网络,带输出反馈的D触发器,所述计数器的输出端连接所述译码 器的输入端,所述译码器的输出端连接所述或门的输入端,所述或门的输出端连接所述可 配置网络的输入端,所述可配置网络的输出端连接所述D触发器。数据输出信号在时钟控 制下将解压縮的数据传输出被测设计的扫描链,完成整个解压縮过程。所述可配置网络由 翻转序列的翻转顺序来配置,而不是确定不变的 本发明的优点在于本发明通过将整个测试集嵌入到几种不同的翻转序列中,这 样只用存储几种翻转序列的种子,从而达到压縮数据的目的,翻转序列的翻转规律可以不 同,增加了压縮的灵活性。
下面参照附图结合实施例对本发明作进一步的描述。
图1为本发明的原始测试集; 图2是由本发明原始测试集生成的完整序列图;
图3为本发明专用解码单元的结构示意图。
具体实施方式
所述压縮方法步骤a中的完全确定测试集的生成方法如下 采用ATPG工具生成确定的完全测试集T,测试集T中所含的测试向量能够测试到 所有的故障。对ATPG工具的选择,要使其生成的测试向量含有无关位,接下来的步骤就是 对生成的确定的完全测试集T进行压縮。构建序列图 参见图1、图2,所述压縮方法步骤b中的序列图是通过将图1中的t。、 t2、 t3、
^作为顶点,边表示两个顶点所对应测试向量之间的翻转关系,将他们之间需要翻转的位
置记录在边上,如t。到t2需要翻转第一位。寻找最大可嵌入翻转序列 选择顶点t。作为起始地点,到顶点t2、 t3、 t4边上所对应的值的数量分别是3,
1 , 2, 2,到顶点t2边上对应的值的数量最少,选取该边作为遍历路径;同样,对顶点t2选取到
顶点t3的边作为遍历路径;对顶点^选取到顶点^的边作为遍历路径;整个遍历的路径为
t。 一 t2 — t3 — V如图2中虚线所示。 所述压縮方法步骤C中寻找可嵌入翻转序列数量的具体步骤如下首先通过 所述完全测试集T构建序列图,再在该序列图中寻找最大可嵌入翻转序列,如图2中 t。 一 t2 — t3 — ^序列即为最大可嵌入序列,将该最大可嵌入翻转序列全部从序列图中删 除,并删除与该最大可嵌入序列顶点直接相连的边,构成新图,本例中只剩下顶点t4,再在 该序列中寻找最大可嵌入翻转序列,此过程一直到所有顶点全部嵌入到翻转序列。本例中, 只剩下顶点^,其可以做成单独的翻转序列。本例中,可嵌入翻转序列的数量为2。
所述压縮方法的压縮效果分析 从寻找最大可嵌入翻转序列算法中,可以看出,任意两个序列均可以嵌入到一个 可翻转序列,即对于一个完整的测试集(设测试向量的个数为N,测试向量的长度为m),即
最坏情况下,所能得到的可嵌入翻转序列数量为
2
,同样,最好情况下,对于一个翻转序到
附之
列,最多所能嵌入的向量个数为m+l个。因此,本方案所能得到的压縮率在
TV Tw + l
间,优于现有技术。 专用解码单元的实现 参见图3,专用解码单元包括计数器、译码器、或门、可配置网络和带输出反馈的 D触发器计数器用于展开翻转序列的个数,如对于序列t。 一 t2 — t3 — t"共4个序列,选 择2位的计数器即可。当计数器的值为k时,在译码器控制下选中前k个或门,该电路结构 规律性强,易于实现。可配置网络用于控制从种子到生成测试向量的翻转位置,如对于序列 t。 一 t2 — t3 — 其翻转的位置分别是第1位、第3位、第2位,因此可配置网络的第1根 线直接相连,第2根线与第3根线交叉相连,如图3所示。带输出反馈的D触发器由传统的 D触发器增加两个二选一电路构成。 需要说明的是,本发明公开的非侵入式的外建自测试测试数据压縮方法除了应用 在系统芯片(SoC)上,本领域技术人员只要对其稍加修改,还可以应用在其他集成电路上。 因此本发明的应用并不只限于系统芯片(SoC),应用在其他集成电路的类似方法也落入本 发明保护范围。 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以 理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换 和变型,本发明的范围由所附权利要求及其等同物限定。
权利要求
系统芯片外建自测试数据的压缩方法,其特征在于采取以下步骤a、采用自动测试模式生成工具,生成确定的完全测试集T,其测试向量个数为N;b、用所述完全测试集T构建序列图顶点表示测试向量,边表示两个顶点所对应测试向量之间的翻转关系,边上的数值代表两个顶点所对应测试向量之间需要翻转的位置;c、寻找最大可嵌入翻转序列从包含最大确定位的测试向量所对应的顶点开始遍历图,遍历原则首先选取该顶点所有直接相连的边上的数值个数最小的边,若该边上所对应的数值与其以前遍历的路径上的所有对应的边上的数值无相同值,则该边即为遍历路径;若该边上所对应的数值与其以前遍历的路径上的所有对应的边上的数值有相同值,则选择判断该顶点直接相连的剩下的边的数值情况,直到该边上所对应的数值与其以前遍历的路径上的所有对应的边上的数值无相同值;此过程一直重复到所有顶点全部遍历或某一顶点所有对应边上的对应数值均与其以前遍历的路径上的所有对应的边上的数值有相同值,所有顶点所对应的测试向量集即为所得最大可嵌入翻转序列,记为T1;d、无关位填充无关位的填充在遍历过程中动态完成。每成功遍历一条边,则该边相连的两个顶点所对应的两个测试向量的无关位需要填充,首先按该边上的数值所对应的位置以相反值填充无关位,对其它位置的无关位的填充则是判断是否有一个向量在该对应位置有确定位,若是则该无关位按相同值填充,否则,无关位不需要填充;e、寻找可嵌入翻转序列数量将T1中所包含的测试向量从T中删除,记为T’,即T’=T-T1,对T’按步骤b构建序列图,并在T’中按步骤c寻找最大可嵌入翻转序列T2;重复上述过程,一直到剩下序列全部嵌入到可翻转序列Tn,即T={T1,T2,……,Tn},其中T1,T2,……,Tn均为可翻转序列,其中 <mrow><mi>n</mi><mo>≤</mo><mfrac> <mi>N</mi> <mn>2</mn></mfrac><mo>;</mo> </mrow>然后利用自动测试设备将压缩的数据导入被测芯片,由被测芯片的解压缩电路来进行解压,最后将解压缩后的数据传输到被测电路的扫描链。
2. —种用于实现所述系统芯片外建自测试数据压縮方法的专用解码单元,其特征在于所述解码单元包括用于展开翻转序列个数的计数器,译码器,或门,用于控制从种子到生成测试向量翻转位置的可配置网络,带输出反馈的D触发器,所述计数器的输出端连 接所述译码器的输入端,所述译码器的输出端连接所述或门的输入端,所述或门的输出端 连接所述可配置网络的输入端,所述可配置网络的输出端连接所述D触发器。
3. 所述根据权利要求2所述一种用于实现所述系统芯片外建自测试数据压縮方法的专用解码单元,其特征在于所述可配置网络由翻转序列的翻转顺序来配置。
4. 所述根据权利要求2所述一种用于实现所述系统芯片外建自测试数据压縮方法的 专用解码单元,其特征在于带输出反馈的D触发器由传统的D触发器增加两个二选一电路 构成。
全文摘要
本发明涉及集成电路测试技术,特别是对系统芯片(System-on-a-Chip,简称SoC)的外建自测试(Built-Off Self-Test,BOST)方法中测试数据压缩方法及专用解码单元。本发明通过将整个测试集嵌入到几种不同的翻转序列中,这样只用存储几种翻转序列的种子,从而达到压缩数据的目的,翻转序列的翻转规律可以不同,增加了压缩的灵活性。本发明还提供了一种用于实现所述系统芯片外建自测试数据压缩方法的专用解码单元,包括用于展开翻转序列个数的计数器,译码器,或门,用于控制从种子到生成测试向量翻转位置的可配置网络,带输出反馈的D触发器。
文档编号G01R31/3183GK101762782SQ20101004653
公开日2010年6月30日 申请日期2010年1月13日 优先权日2010年1月13日
发明者詹文法, 马俊 申请人:詹文法;马俊