技术领域
[0001] 本申请涉及芯片测试领域,具体而言,涉及一种线性与非线性相结合的测试激励压缩方法和装置。
相关背景技术
[0002] 本部分旨在为权利要求书或说明书中陈述的内容提供背景或上下文,此处描述的内容不因为包括在本部分中就承认是现有技术。
[0003] 在集成电路设计领域,电子设计自动化工具(Electronic Design Automation,EDA)是辅助设计人员完成电路设计工作的大型工业软件。数字集成电路在制造中不可避免的会存在一些缺陷。为了有效测试芯片,需要使用EDA工具对电路进行可测性设计(Design For Testability,DFT)和自动测试向量生成(Automatic Test Pattern Generation,ATPG)。
[0004] 在流片后,测试仪器使用ATPG生成的测试向量对芯片进行测试,随着数字集成电路的规模逐步增大,测试数据量及测试所需通道数也随之增加,然而测试仪器的数据带宽、测试通道数有限,这就导致了测试成本的提高,为了降低测试数据量和测试时间,就需要对测试向量进行压缩。
[0005] 针对上述的问题,目前尚未提出有效的解决方案。
具体实施方式
[0032] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0033] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0034] 当前的可测性设计都采用了扫描链设计来提高芯片的可测性,扫描链技术是将芯片中触发器替换为扫描单元,且将这些扫描单元串成多条扫描链,设扫描链的条数为M,最长扫描链的长度为L,则可以通过M个扫描端口数,用L个扫描时钟周期,将所有扫描单元进行赋值,其中扫描链上的测试向量的数据量相对于总体的测试向量占比很大,因此,测试压缩技术是对扫描链上的测试数据进行压缩。测试向量分为两个部分:测试激励和测试响应,测试激励指的是待测电路扫描链的输入,测试响应指的是待测电路扫描链的正确输出,与之相对的测试压缩技术也分为两大类:测试激励压缩和测试响应压缩。
[0035] 本方案是一种测试激励压缩的方案,测试激励压缩将M个扫描端口数压缩成N个(N远小于M),从而减少了测试数据量。测试激励压缩根据电路对应的布尔函数的类型可以分为线性和非线性两类。线性方法包括线性变换法,非线性方法包括编码法和广播扫描方法。
[0036] 测试激励中存在两种类型的数据:确定位和无关位,逻辑值0或逻辑值1属于确定位,改变确定位的数值会使得该测试激励无法检测到对应的故障;无关位的逻辑值可以任意修改,不会影响到故障的检测。测试激励压缩的目标是将测试激励数据y压缩成x,通过电路将x解压缩成y1后,其y1和y中确定位的逻辑值保持不变。测试激励压缩的效果有两个指标来衡量:其一是,测试数据量=测试激励的条数*测试激励的移入时间*扫描链的条数;其二是,测试应用时间=测试激励的条数*测试激励的移入时间。
[0037] 线性变换法通过构建一个布尔线性方程组对测试激励进行压缩,方程的自由变量x为对应压缩后的数据,线性变换法是利用测试激励中确定位占比低这一点进行压缩,确定位越少,需要求解的方程的数目越少,则方程组需要的自由变量x越少。组合电路和时序电路都能够实现布尔线性方程组的功能,其中时序电路与组合电路相比,能够利用多个时钟周期的输入,因此压缩能力更强。
[0038] 时序线性变换法的电路结构如图1所示,包含两个部分:线性反馈移位寄存器(LFSR,linear feedback shifter register)和相性移位器(Phase Shifter),其中压缩能力由LFSR所决定,LFSR的度越大(也就是LFSR中触发器的个数越多),对应的压缩能力越强,时序的线性变换法中LFSR的度越大,则压缩能力越强。测试激励压缩能力越强,能够压缩的测试激励中的确定位的数目越多,则测试激励能够合并的成功率越高,会使得测试激励条数减少,但是LFSR中触发器越多,则LFSR需要初始化的周期数越大,会导致测试激励的移入时间变长,从而使得测试数据量和测试应用时间上升。因此,LFSR的度通常会选一个中间值,来平衡测试激励条数和LFSR初始化周期数。
[0039] 广播扫描是用同一个扫描通道去驱动多个不同的扫描链来达到测试激励压缩的效果,扫描通道的值可以由它驱动的扫描链的值进行合并得到,如果存在两条扫描链对应位上的确定值不同,代表有冲突,则压缩失败。广播扫描主要是利用测试激励中确定位低这一特性,确定位越少,发生冲突的概率越低,则压缩的成功率越高。广播扫描方法可以在生成测试激励之前,预生成广播扫描结构,然后使用预生成的广播扫描结构对测试激励进行压缩,该方法的压缩能力相比线性变换法而言,压缩能力更弱。广播扫描方法也可以在生成所有测试激励后,根据测试激励分析扫描链之间的兼容性,来生成广播扫描结构,此种方法压缩率更高,但是对应的电路面积更大。
[0040] 编码法是将测试激励切分为多个信息块,然后用相应的码字对信息块进行替换,从而达到压缩的效果,编码的方法有Huffman编码、FDR编码等,编码法对应的硬件代价高,在实际的设计中不适用。
[0041] 综上,时序线性变换法压缩率高,组合的线性变换法和预生成的广播扫描法比时序的线性变换法压缩率更低,编码法和根据测试激励生成结构的广播扫描法需要使用的电路面积更大,不太适用于大规模的电路的测试激励压缩。
[0042] 申请人基于以上对测试激励压缩技术的研究,认识到在时序的线性变换法中,提高LFSR的度虽然可以提高压缩能力,但是对应的LFSR初始化周期数也会提高,从而增加了测试应用时间和测试数据量,最终并不能有效的提高压缩率。
[0043] 针对这个问题,根据本申请实施例的一方面,提供了一种线性与非线性相结合的测试激励压缩装置的实施例。本申请设计了一个线性与非线性结合的测试激励压缩结构,一方面,增大LFSR的度,使得线性结构的压缩能力提高,另一方面,使用非线性方法对LFSR的初始化数据进行压缩,从而降低LFSR的初始化的时钟周期数。使用非线性方法对LFSR的初始化数据进行压缩的原因是:LFSR的初始化数据确定位占比很高,使用线性方法无法进行压缩。
[0044] 如图2所示,包括:
[0045] 1)线性压缩结构(即线性部分),线性压缩结构用于对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,压缩测试数据包括压缩测试激励和线性压缩结构的原始初始化数据。
[0046] 线性压缩结构包括:线性反馈移位寄存器,线性压缩结构用于通过逻辑运算对扫描输入数据中的原始测试激励进行初次压缩;相位变换器,与线性反馈移位寄存器连接,相位变换器用于通过相位变换对扫描输入数据中的原始测试激励进行二次压缩,得到待测芯片的压缩测试数据。
[0047] 2)非线性压缩结构,非线性压缩结构用于对线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,原始初始化数据对线性压缩结构进行初始化所需的时钟周期数多于压缩初始化数据对线性压缩结构进行初始化所需的时钟周期数,对压缩初始化数据进行解压缩后得到的初始化数据中的确定位与原始初始化数据中的确定位相同。
[0048] 3)选择器,分别与非线性压缩结构和线性压缩结构连接,用于接收扫描输入数据和压缩初始化数据。
[0049] 涉及的压缩和解压缩两个过程:1)图2中的硬件部分中的phase shifter的输出是连接到待测芯片,Phase shifter的输出远比扫描输入或者输出化输入的引脚要多,这是将一个扫描输入转换到phase shifter的输出,也就是芯片输入的测试数据过程,称为解压缩,如果没有图2中的装置,则需要更多的引脚和存储更多的测试数据,这是为什么需要解压缩;2)压缩是由于软件中的产生测试数据的算法产生测试数据为Phase Shifter的输出,为了让其转换为扫描输入,需要一个压缩算法将其压缩。可以简单的理解为:有一个文件A,体积较大,需要通过压缩算法进行压缩成文件B,在使用文件A的时候需要进行解压缩,但是对于测试芯片来说,解压缩的过程需要有图2中的电路部分进行完成。
[0050] 各阶段的作用:1)非线性部分的LFSR在实际工作之前,需要对其初始化,非线性部分的压缩就是对这部分初始化的数据进行压缩,解压缩则是利用电路结构对其压缩后的数据进行解压缩;2)线性部分则是对芯片的测试数据进行解压缩和压缩。
[0051] 在上述方案中,线性解压缩电路简单,但是对应的软件算法的压缩能力弱,芯片的测试数据量虽然大,但是大部分测试数据压缩相对容易,且引脚多,因此使用线性解压缩电路;LFSR虽然数据少,但是较难压缩,且输入引脚少,适合非线性压缩。
[0052] 图3是根据本申请实施例的线性与非线性相结合的测试激励压缩方法的流程图,如图3所示,该方法可以包括以下步骤:
[0053] 步骤S302,利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,压缩测试数据包括压缩测试激励和线性压缩结构的原始初始化数据。
[0054] 步骤S304,利用非线性压缩结构对线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,原始初始化数据对线性压缩结构进行初始化所需的时钟周期数多于压缩初始化数据对线性压缩结构进行初始化所需的时钟周期数,对压缩初始化数据进行解压缩后得到的初始化数据中的确定位与原始初始化数据中的确定位相同。
[0055] 上述原始初始化数据包括按照时间顺序排列的多条初始化向量,可根据多条初始化向量的切换周期,建立多条初始化向量的冲突图,每条初始化向量的比特位数与线性压缩结构中线性反馈移位寄存器的触发器个数相同;对冲突图进行最小图染色处理,得到各个输入端口的广播向量和广播配置,广播配置用于指示每个输入端口与线性反馈移位寄存器之间的映射关系,压缩初始化数据包括广播配置。
[0056] 在上述实施例中,可以按照如下方式建立多条初始化向量的冲突图,包括:生成多条初始化向量的向量矩阵,其中,向量矩阵的每一列对应于一条初始化向量,向量矩阵的每一行用于初始化相同的线性反馈移位寄存器;按照多条初始化向量的切换周期,将向量矩阵划分为多个向量子矩阵,向量子矩阵的每一列的位数与切换周期的向量切换数相同,向量子矩阵的每一行用于初始化相同的线性反馈移位寄存器;创建多个节点,并通过比较各个线性反馈移位寄存器的行向量来建立节点之间的连接关系,从而得到冲突图,其中,若两个线性反馈移位寄存器的行向量中的确定位不同则建立这两个线性反馈移位寄存器对应的节点之间的连接,否则不建立这两个线性反馈移位寄存器对应的节点之间的连接。
[0057] 在上述实施例中,对冲突图进行最小图染色处理,得到各个输入端口的广播向量,包括:执行多轮颜色分配操作:初始化颜色列表,其中,初始化后的颜色列表为空;为冲突图中的节点分配颜色,其中,具有连接关系的两个节点的颜色不同,将为节点分配的颜色存入颜色列表;将执行多轮颜色分配操作后颜色列表中颜色数量最少的,作为冲突图的最终染色结果;将冲突图中颜色相同的节点对应于同一个输入端口,其中,输入端口的数量与颜色列表中颜色的数量相同;为每个输入端口生成广播向量,并建立该输入端口与对应线性反馈移位寄存器之间的映射关系。
[0058] 步骤S306,将压缩测试激励和压缩初始化数据发送给测试仪,以便于测试仪对待测芯片进行测试。
[0059] 通过上述步骤,利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,压缩测试数据包括压缩测试激励和线性压缩结构的原始初始化数据;利用非线性压缩结构对线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,原始初始化数据对线性压缩结构进行初始化所需的时钟周期数多于压缩初始化数据对线性压缩结构进行初始化所需的时钟周期数,对压缩初始化数据进行解压缩后得到的初始化数据中的确定位与原始初始化数据中的确定位相同;将压缩测试激励和压缩初始化数据发送给测试仪,以便于测试仪对待测芯片进行测试,可以解决相关技术中测试向量数据量较大的技术问题。另外,本方案可以增大LFSR的度,使得线性结构的压缩能力提高,且使用非线性方法对LFSR的初始化数据进行压缩,从而可降低LFSR的初始化的时钟周期数。
[0060] 针对提高LFSR的度虽然能够提高压缩能力,但是由于增加了LFSR的初始化时钟周期数,导致测试激励压缩率无法提高的问题,本申请提出了线性与非线性结合的测试激励压缩的方案,其关键点在于线性与非线性结合的测试激励压缩方法,使用非线性结构对LFSR初始化数据进行压缩,从而可以增加LFSR的触发器个数而不增加LFSR的初始化时钟周期数。作为一种可选的实施例,下文结合具体实施方式进一步详述本申请的技术方案:
[0061] 本申请提出的线性与非线性相结合来进行压缩的电路结构如图2所示,该电路结构的输入由初始化输入数据和扫描输入数据两个部分构成,电路结构可以分为三个部分,第一个部分为非线性压缩结构,第二个部分为一个选择器,第三个部分为线性压缩结构。非线性压缩结构的输入为初始化输入数据,输出到选择器。选择器的输入有两部分,第一部分是扫描输入数据,第二部分是非线性压缩结构的输出。线性结构与时序线性变换法的结构类似,由LFSR和Phase shifter组成,线性结构的输出将连接到待测电路上,作为待测电路的输入。
[0062] 测试激励压缩的流程分为两个部分,第一个部分为压缩过程:ATPG产生测试向量,根据测试压缩结构将测试向量进行压缩,然后将压缩后的向量存储到测试仪(ATE)上;第二部分为解压缩过程:ATE使用测试激励压缩电路对压缩后的数据进行解压缩,然后将解压缩后的测试向量加载到待测芯片上的扫描链上。
[0063] 测试向量压缩首先由ATPG产出一组测试向量,测试向量进行动态压缩compaction,以此来减少测试向量的条数,经过动态压缩后的测试向量由测试压缩进行压缩,减少单条向量的数据量。本申请是关于测试激励压缩,因此,后续只介绍测试激励压缩的实施方式。
[0064] 测试向量首先经过LFSR和Phase Shifter组成的线性结构进行压缩,LFSR和Phase Shifter的线性结构可以对应到一个线性方程组,如下所示:
[0065]
[0066] 其中向量b由b0到bn‑1组成,表示扫描链上的测试数据,其中b0代表移入时钟周期为0的时候扫描链上移入的数据;向量x由x0到xn+c‑1组成,向量x表示压缩后的测试数据,其中x0到xc‑1表示LFSR初始化数据,xc到xn+c‑1表示扫描链上测试向量压缩后的测试数据。矩阵Re由子矩阵A0到An‑1组成,其中Ai表示第i个时钟周期时线性压缩结构对应的线性方程组。
[0067] 线性结构的测试向量的压缩则是从向量b到向量x的线性变换,测试向量压缩是否能够成功取决于线性方程组求解成功,因此需要线性矩阵Re的秩Rank(Re)>=smax,其中smax为所有测试向量中最大确定位数目,Rank(A)和LFSR中触发器的个数成正比,为了保证所有测试向量都能够压缩,LFSR的触发器个数D需要满足D>=smax+m,其中m为一个常数,且当D越大,线性压缩结构的压缩能力越强,会使得动态压缩后的向量数目更少,这是由于动态压缩能力受线性压缩制约,动态压缩会使得向量中确定位增多,测试压缩如果无法对动态压缩后的测试向量进行压缩,则动态压缩则要重新进行。
[0068] 以上部分阐述了线性压缩结构如何对测试向量进行压缩,后续介绍如何生成线性压缩结构,也就是线性压缩结构的综合。线性压缩结构的综合首先使用ATPG和动态压缩生成测试向量,根据测试向量中的最大确定位数目smax决定LFSR的触发器个数D,相同的触发D器个数的LFSR有不同的反馈关系,每种反馈关系都对应着有限域GF(2)中的多项式,不同的反馈关系会影响着LFSR输出序列的随机性,从而影响线性结构的压缩能力,为了保证D
LFSR输出序列随机性高,LFSR对应的多项式应该为GF(2)的本原多项式。Phase Shifter是由异或门组成的异或网络,其输入的端口数为D,输出的端口数为M,D为LFSR中触发器的个数,M为扫描链的条数,可以对应一个线性矩阵P,矩阵的行数为M,列数为D,其目的是减少LFSR的二维输出序列中的依赖性,LFSR的二维输出序列的依赖性如图4,LFSR中相邻触发器的值只相差一个时钟周期,将相邻扫描链数据依赖相差的周期数称为相位数。
[0069] 需要进一步说明的是,相同的触发器个数的LFSR有不同的反馈关系,每种反馈关D系都对应着有限域GF(2)中的多项式,不同的反馈关系会影响着LFSR输出序列的随机性,从而影响线性结构的压缩能力,为了保证LFSR输出序列随机性高,LFSR对应的多项式应该D
为GF(2)的本原多项式。
[0070] 以图5为例,当触发器的个数都为4个的时候,有两种不同的连接方式,第一种是Q3的输出和Q0的输出当作XOR门的输入,然后XOR门的输出当作反馈传递给Q3的输入;第二种是Q2的输出和Q0的输出当作XOR的输入,然后XOR的输出的当作Q3的输入。两者虽然寄存器4 3 4 2
的个数相同,但是对应的多项式不一样,一个是x+x+1,另一个是x+x +1,当基于四个寄存器一个初始值(不全为0),以{Q3,Q2,Q1,Q0}={0001}为例,第一个时钟之后值变为{Q3,Q2,Q1,Q0}={1000},以此计算下去,{Q3,Q2,Q1,Q0}的值的组合一共有15种(最大也只能是
15),而右边的结构则不能产生15种不同的输出,因此左边的结构输出的序列随机性更强。
可以证明当多项式为本原多项式时,对应的结构输出序列种类最多,输出的随机性高。
[0071] Phase Shifter的作用是扩大相位数,如果相位等于扫描链的长度,则相当于将多扫描链串成一条扫描链,由LFSR来驱动,依赖降低到最小。Phase Shifter其结构由LFSR决定,Phase Shifter要扩大LFSR触发器之间相位数,则要通过组合电路生成出LFSR几个时钟后的数据,其中Phase Shifter结构对应的矩阵P如下所示:
[0072]
[0073] 其中向量b代表选择哪个扫描链作为参考扫描链,其他的扫描链的数据是参考扫描链扩大相位数的数据,t代表相邻扫描链扩大的相位数。以上是线性压缩结构的压缩方法和对应结构综合方法。
[0074] 非线性压缩结构是对LFSR中初始化数据的压缩,LFSR和Phase Shifter组成线性结构经过压缩后,压缩后的测试数据包括两个部分,第一个部分为LFSR的初始化数据,第二部分为加载到扫描链上压缩后的测试数据,加载LFSR初始化时钟所需的周期为初始化周期,LFSR越大,初始化时钟周期越大,使得测试应用时间增大,非线性结构对LFSR中初始化数据进行压缩,一方面降低了初始化数据量,另一方面降低初始化时钟周期数。非线性压缩是利用的测试向量中不同扫描链上的数据是兼容的性质来进行压缩,如图6所示,在前两个时钟周期,第一条扫描链和第二条扫描链兼容,第三条扫描链和第四条扫描链兼容,在后两个时钟周期,第一条和第三条扫描链兼容,第二条和第四条扫描链兼容,因此可以只使用三个端口进行传输数据,其中两个为数据端口,另一个为控制端口,控制端口的输入的控制信号决定了输入端口和扫描链的连接关系,每种连接关系称为一种广播配置。广播配置应该适应与所有的测试数据。非线性压缩结构是针对LFSR触发器的数据进行压缩,也可也使用上述的方法,其中广播配置由LFSR中的数据生成,其非线性结构的综合方法为:首先确定多少条向量公用一个广播配置,然后用LFSR中数据建立冲突图,然后对冲突图求最小图染色,染色结果广播配置,染色的数目为压缩后的输入端口的数目。如图7为例,LFSR中有八个触发器,一共有十条向量,以五条向量作为广播配置的切换周期,建立的冲突图如子图b和子图c所示,子图b为前5条向量所建立的冲突图,子图c为后五条向量所建立的冲突图,分别进行图染色,则得到相应的广播配置。
[0075] 如图6所示,非线性压缩结构是对LFSR中初始化数据的压缩,LFSR有一组触发器组成,当进行解压缩的时候,需要对这些寄存器进行初始化,图6中的a子图中的chain1代表的是LFSR中的第一个寄存器,以此类推,1th代表的是第一条向量的初始化数据,以此类推,分为前五个向量和后5个相连建立两个冲突图(这样做是因为如果用十个向量建立冲突图,每个节点之间冲突概率会变大,则能够压缩的概率变小),首先说明下冲突的概念,如果两个触发器中的数据不同,则这两个触发器则不能共享相同的输入,则代表冲突,以前5个向量为例,第一个触发器与第二个触发器冲突,因为第一个触发器的前五个向量的数据为1x1xx,而第二个触发器的数据为xx0x1(其中的x代表don’t care值,与任何值都不冲突),可以看到这两个触发器在3rd的数据不一致,第一个触发器为1,第二个触发器为0,第一个触发器和第二个触发器冲突,则对应冲突图中的节点1和2建立一条冲突边,以此类推,可以得到子图b中的冲突图,如下表1所示:
[0076] 表1
[0077] th nd rd th th1 2 3 4 5
1 x 1 x x
x x 0 x 1
[0078] 上述方案中,最小图染色是指:冲突图中相邻的节点(以一条边的相连的两个节点)不能使用同一种颜色染色,在这种规则下,求出冲突图能够以最少多少个颜色对冲突图进行染色,以图b为例,一个有八个节点,编号1‑8,1和2相连,则不能以同一个颜色进行染色,图b中最少可以用3中颜色进行染色,{1,4,5,8}用一种颜色,{2,3,6}用一种颜色,{7}单独使用一种颜色。
[0079] 在进行染色结果广播配置时,以图b中的染色结果对应着广播配置,广播配置则为,输入端口1驱动1,4,5,8触发器,输入端口2驱动2,3,6触发器,输入端口3驱动7触发器,图c中的染色结果也可以推到出一种广播配置。
[0080] 由于非线性结构只对LFSR初始化数据进行压缩,且非线性结构的端口数往往多于LFSR和Phase组成的线性结构,因此,使用一个选择器进行切换,当对LFSR进行初始化时,扫描仪中的数据从非线性结构的输入端口加载,然后经过解压缩输入到LFSR中。初始化完毕后,扫描仪中的数据直接加载到LFSR中进行解压缩加载到待测芯片的扫描链上。
[0081] 与相关技术中的方法相比,本申请的非线性压缩只需要对LFSR的初始化数据进行压缩,LFSR的初始化数据量要远小于测试激励数据量,因此非线性压缩所需的硬件面积相比之前对整个测试激励压缩进行压缩的非线性结构要小,从而可以提高LFSR的度,而不会增大LFSR的初始化时钟周期数,从而提高测试压缩率。综上,本申请提出的线性与非线性结合的测试激励压缩的方法能够降低测试应用时间和测试激励数据量,且保持较低的硬件面积。
[0082] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0083] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0084] 根据本申请实施例的另一个方面,还提供了一种用于实施上述线性与非线性相结合的测试激励压缩方法的线性与非线性相结合的测试激励压缩装置。图8是根据本申请实施例的线性与非线性相结合的测试激励压缩装置的示意图,如图8所示,该装置可以包括:
[0085] 线性压缩单元81,用于利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,所述压缩测试数据包括压缩测试激励和所述线性压缩结构的原始初始化数据;
[0086] 非线性压缩单元83,用于利用非线性压缩结构对所述线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,所述原始初始化数据对所述线性压缩结构进行初始化所需的时钟周期数多于所述压缩初始化数据对所述线性压缩结构进行初始化所需的时钟周期数,对所述压缩初始化数据进行解压缩后得到的初始化数据中的确定位与所述原始初始化数据中的确定位相同;
[0087] 发送单元85,用于将所述压缩测试激励和所述压缩初始化数据发送给测试仪,以便于所述测试仪对所述待测芯片进行测试。
[0088] 通过上述模块,利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,压缩测试数据包括压缩测试激励和线性压缩结构的原始初始化数据;利用非线性压缩结构对线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,原始初始化数据对线性压缩结构进行初始化所需的时钟周期数多于压缩初始化数据对线性压缩结构进行初始化所需的时钟周期数,对压缩初始化数据进行解压缩后得到的初始化数据中的确定位与原始初始化数据中的确定位相同;将压缩测试激励和压缩初始化数据发送给测试仪,以便于测试仪对待测芯片进行测试,可以解决相关技术中测试向量数据量较大的技术问题。另外,本方案可以增大LFSR的度,使得线性结构的压缩能力提高,且使用非线性方法对LFSR的初始化数据进行压缩,从而可降低LFSR的初始化的时钟周期数。
[0089] 可选地,所述原始初始化数据包括按照时间顺序排列的多条初始化向量,其中,非线性压缩单元还用于:根据所述多条初始化向量的切换周期,建立所述多条初始化向量的冲突图,其中,每条初始化向量的比特位数与所述线性压缩结构中线性反馈移位寄存器的触发器个数相同;对所述冲突图进行最小图染色处理,得到各个输入端口的广播向量和广播配置,其中,所述广播配置用于指示每个输入端口与线性反馈移位寄存器之间的映射关系,所述压缩初始化数据包括所述广播配置。
[0090] 可选地,非线性压缩单元还用于:生成所述多条初始化向量的向量矩阵,其中,所述向量矩阵的每一列对应于一条初始化向量,所述向量矩阵的每一行用于初始化相同的所述线性反馈移位寄存器;按照所述多条初始化向量的切换周期,将所述向量矩阵划分为多个向量子矩阵,所述向量子矩阵的每一列的位数与所述切换周期的向量切换数相同,所述向量子矩阵的每一行用于初始化相同的所述线性反馈移位寄存器;创建多个节点,并通过比较各个所述线性反馈移位寄存器的行向量来建立节点之间的连接关系,从而得到所述冲突图,其中,若两个所述线性反馈移位寄存器的行向量中的确定位不同则建立这两个所述线性反馈移位寄存器对应的节点之间的连接,否则不建立这两个所述线性反馈移位寄存器对应的节点之间的连接。
[0091] 可选地,非线性压缩单元还用于:执行多轮颜色分配操作:初始化颜色列表,其中,初始化后的颜色列表为空;为所述冲突图中的节点分配颜色,其中,具有连接关系的两个节点的颜色不同,将为节点分配的颜色存入所述颜色列表;将执行多轮颜色分配操作后所述颜色列表中颜色数量最少的,作为所述冲突图的最终染色结果;将所述冲突图中颜色相同的节点对应于同一个输入端口,其中,输入端口的数量与所述颜色列表中颜色的数量相同;为每个输入端口生成广播向量,并建立该输入端口与对应线性反馈移位寄存器之间的映射关系。
[0092] 此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在相应的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
[0093] 根据本申请实施例的另一个方面,还提供了一种用于实施上述线性与非线性相结合的测试激励压缩方法的服务器或终端。
[0094] 图9是根据本申请实施例的一种终端的结构框图,如图9所示,该终端可以包括:一个或多个(图中仅示出一个)处理器901、存储器903、以及传输装置905,如图9所示,该终端还可以包括输入输出设备907。
[0095] 其中,存储器903可用于存储软件程序以及模块,如本申请实施例中的线性与非线性相结合的测试激励压缩方法和装置对应的程序指令/模块,处理器901通过运行存储在存储器903内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的线性与非线性相结合的测试激励压缩方法。存储器903可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器903可进一步包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0096] 上述的传输装置905用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置905包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置905为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0097] 其中,具体地,存储器903用于存储应用程序。
[0098] 处理器901可以通过传输装置905调用存储器903存储的应用程序,以执行下述步骤:
[0099] 利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,所述压缩测试数据包括压缩测试激励和所述线性压缩结构的原始初始化数据;利用非线性压缩结构对所述线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,所述原始初始化数据对所述线性压缩结构进行初始化所需的时钟周期数多于所述压缩初始化数据对所述线性压缩结构进行初始化所需的时钟周期数,对所述压缩初始化数据进行解压缩后得到的初始化数据中的确定位与所述原始初始化数据中的确定位相同;将所述压缩测试激励和所述压缩初始化数据发送给测试仪,以便于所述测试仪对所述待测芯片进行测试。
[0100] 可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0101] 本领域普通技术人员可以理解,图9所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,终端还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
[0102] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read‑Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0103] 本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行线性与非线性相结合的测试激励压缩方法的程序代码。
[0104] 可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
[0105] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0106] 利用线性压缩结构对扫描输入数据中的原始测试激励进行压缩,得到待测芯片的压缩测试数据,其中,所述压缩测试数据包括压缩测试激励和所述线性压缩结构的原始初始化数据;利用非线性压缩结构对所述线性压缩结构的原始初始化数据进行非线性压缩,得到压缩初始化数据,其中,所述原始初始化数据对所述线性压缩结构进行初始化所需的时钟周期数多于所述压缩初始化数据对所述线性压缩结构进行初始化所需的时钟周期数,对所述压缩初始化数据进行解压缩后得到的初始化数据中的确定位与所述原始初始化数据中的确定位相同;将所述压缩测试激励和所述压缩初始化数据发送给测试仪,以便于所述测试仪对所述待测芯片进行测试。
[0107] 可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0108] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0109] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0110] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
[0111] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0112] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0113] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0114] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0115] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。