SoC测试中的基于平均值余量的测试封装扫描链平衡方法

文档序号:6005953阅读:164来源:国知局
专利名称:SoC测试中的基于平均值余量的测试封装扫描链平衡方法
技术领域
本发明涉及系统芯片(SoC)测试技术领域。
背景技术
在工程设计中引入“系统芯片”(System-on-Chip,SoC)可以简化设计,缩短产品上市时间,并且增加系统稳定性。然而随着SoC规模增大,SoC测试逐渐成为其制造过程中的瓶颈,SoC测试费用也不断增加。而SoC测试时间则是影响SoC测试成本和效率的重要因
οSoC测试通常包括三部分测试访问机制(TAM)、测试封装(Wrapper)、测试调度 (Scheduling) 0测试访问机制描述IP (Intellectual Property)核的测试端口如何被外界访问,测试封装则是为IP核外加一层接口以实现特定的TAM,最后测试调度描述了 IP核测试的先后顺序。文献Vikram Iyengar,Krishnendu Chakrabarty and Erik Jan Marinissen,Test Wrapper andTest Acces Mechanism Co-Oprimization for System_on_Chip (针对 SoC 白勺测试封装及测试访问机制的联合优化)Internationl Test Conference 2001,该文献中提出了一种基于BFD(BestFit Decrease)的算法,该BFD算法最初被设计用于解决装箱问题。该方法提出比较早,而且具有运行效率高、结构简单等优点,因此被广泛采用。该方法的缺点是BFD算法并不具备全局优化的能力。运用该方法将IP核内部扫描链逐条添加到feapper扫描链上时,只考虑当前每条Wrapper扫描链长度,而没有一个全局性的指导原则。因此BFD算法最后得到的是局部最优解,而在某些情况下,局部最优解不等同于全局最优解。该文献所介绍的方法具有简单、高效的优点,但不具备全局优化的能力。为了克服上述基于BFD算法的不具有全局优化这一缺点,文献Niu Daoheng, WangHong, Yang ShiYuan, Cheng BenMao, Jin Yang, Re-Optimization Algorithm for SoCffrapper-Chain Balance Using Mean-Value Approximation (基于平均值近似的 SoC 扫描链平衡算法 Ksinghua Science and Technology 2007 July P61 66 提出一种基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法。对于一个特定的IP核及给定的 Wrapper扫描链数目,该算法首先计算Wrapper扫描链长度平均值,然后以这个Wrapper扫描链长度平均值作为全局指导原则,将内部扫描链分别添加到Wrapper扫描链上。因此,对于某给定的IP核,按照基于平均值的Wrapper扫描链平衡算法,最理想的结果就是最后每条feapper扫描链长度均相等且等于其平均值。但是在实际处理问题过程中,最后feapper 扫描链很少有机会每条均相等且等于平均值。更实际的情况是,Wrapper扫描链的最终长度在其平均值附近波动,波动大小fifeapper扫描链平衡算法及IP核的内部扫描链长度等因数共同决定。另外上述的基于平均值的feapper扫描链平衡算法实现SOC测试的方法并不总是优先处理当前最长内部扫描链,这样做带来诸多弊端。该种方法虽然具有全局优化的能力, 但是它并不总是优先处理当前最长内部扫描链,而且其全局优化的指导原则并不贴近实际情况。

发明内容
针对现有SoC测试中的测试封装扫描链平衡方法中存在的不足,本发明提供了一种SoC测试中的基于平均值余量的测试封装扫描链平衡方法。本发明所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法的过程为首先,计算feapper扫描链长度平均值;然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的至 3% ;最后,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。上述计算feapper扫描链长度平均值的过程可以为
Ien(L)步骤Al、根据公式Zsmot= Σ &获得IP核内部扫描链长度之和Lsim ;L是所有IP
/'=1
内部扫描链的集合,L1表示集合L内的第一个元素,Ien (L)表示集合L内元素的数目,Llma) 表示集合L内最后一个元素;步骤A2、根据公式Smean = Lsum/len⑶获得feapper扫描链长度平均值^iean ;S是 Wrapper扫描链集合,Slen(s)表示feapper扫描链集合内最后一个元素。所述误差限Err 为 1 % Sfflean 至 3 % Sfflean0根据所述误差限及feapper扫描链长度平均值计算得到取值区间的过程可以为根据所述误差限,获得误差上限为= Sfflean(Ι+Err),误差下限为&。wn = Snrean(I-Err),所述取值区间为 Bup,Sdown]。所述根据取值区间作为全局优化的指导原则,实现测试封装扫描链平衡的过程为步骤Cl、将集合L降序排列获得降序排列后的集合L,同时将集合S清零;步骤C2、依序从降序排列后的集合L内取一个数Li,并将其添加到集合S中同时满足两个条件的第一个Si中;所述两个条件为=Si < &_和S^Li ( Sup ;如果集合S中不存在满足上述条件的元素Sp则将Li添加到S集合中最小的h中;步骤C3、对集合S内的元素降序排列获得降序排列后的集合S,然后,返回执行步骤C2,直到取完集合L内的所有元素,再执行步骤C4 ;步骤C4、将IP核的每个双向端口作为长度为1的扫描链,然后,逐一将每一个双向端口添加到集合S中最小的h中,获得新集合为&;步骤C5、将IP核的每个输入端口看成长度为1的扫描链,然后,逐一将每个输入端口均添加到集合&的最小值的h中,获得输入扫描链集合& ;步骤C6、将IP核的每个输出端口作为长度为1的扫描链,然后,逐一将每个输出端口添加到集合&的最小值h中,获得输出扫描链集合&。在SoC测试中,无论测试访问机制、测试封装及测试调度机制如何工作,SoC测试最终都需要落实到对单个IP核进行测试。如果每个IP核的测试时间都相应有所缩短,则整个SoC的测试时间必定缩短。本发明采用feapper扫描链平衡算法的原理实现缩短单个IP核测试时间这一目标,进而缩短SoC测试时间。鉴于Wrapper扫描链的最终长度是在其平均值附近波动的,因此,本发明不是把 Wrapper扫描链长度的平均值作为全局优化的指导原则,而是把Wrapper扫描链长度平均值附近的某一个范围(例如平均值士 )作为全局优化的指导原则,这样更贴近实际,并且能够达到很好的技术效果。


图1是IP核扫描插入模型。
具体实施例方式具体实施方式
一、本实施方式所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法的过程为首先,计算feapper扫描链长度平均值;然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的至 3% ;最后,根据所述误差限及feapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。本实施方式所述的扫描链平衡方法以feapper扫描链长度平均值附近的一个范围作为全局优化的指导原则,使其更贴近实际情况,并且本算法始终优先处理当前最长内部扫描链。本实施方式中,计算Wrapper扫描链长度平均值的过程可以为
Ien(L)步骤Al、根据公式Arawj= Σ、获得IP核内部扫描链长度之和Lsim ;L是所有IP
/'=1
内部扫描链的集合,L1表示集合L内的第一个元素,Ien (L)表示集合L内元素的数目,Llma) 表示集合L内最后一个元素;步骤A2、根据公式Smean = Lsum/len⑶获得feapper扫描链长度平均值^iean ;S是 Wrapper扫描链集合,Slen(s)表示feapper扫描链集合内最后一个元素。本实施方式中,所述误差限Err为1 % Smean至3 % Smean0本实施方式中,根据所述误差限及feapper扫描链长度平均值计算得到取值区间的过程可以为根据所述误差限,获得误差上限为= Sfflean(Ι+Err),误差下限为&。wn = Snrean(I-Err),所述取值区间为 Bup,Sdown]。本实施方式中,所述根据取值区间作为全局优化的指导原则,实现测试封装扫描链平衡的过程为步骤Cl、将集合L降序排列获得降序排列后的集合L,同时将集合S清零;步骤C2、依序从降序排列后的集合L内取一个数Li,并将其添加到集合S中同时满足两个条件的第一个h中;所述两个条件为而< &_和S^Li ( Sup ;如果集合S中不存在满足上述条件的元素Sp则将Li添加到S集合中最小的h中;步骤C3、对集合S内的元素降序排列获得降序排列后的集合S,然后,返回执行步骤C2,直到取完集合L内的所有元素,再执行步骤C4 ;步骤C4、将IP核的每个双向端口作为长度为1的扫描链,然后,逐一将每一个双向端口添加到集合S中最小的h中,获得新集合为&;步骤C5、将IP核的每个输入端口看成长度为1的扫描链,然后,逐一将每个输入端口均添加到集合&的最小值的h中,获得输入扫描链集合& ;步骤C6、将IP核的每个输出端口作为长度为1的扫描链,然后,逐一将每个输出端口添加到集合&的最小值h中,获得输出扫描链集合&。步骤C4中,逐一将每一个双向端口添加到集合S中最小的h中,获得新集合为& 的过程为将第一个双向端口添加到S中最小的h中,获得新的集合&,然后将第二个双向端口添加到新的集合&中最小的h中,再次获新的集合&,如此重复,直到所有双向端口均添加完毕,获得最终的新集合&。步骤C5中,逐一将每个输入端口均添加到集合&的最小值的h中,获得输入扫描链集合&的过程为将第一个输入端口添加到集合&中最小的h中,获得输入扫描链集合 &,然后将第二个输入端口添加到输入扫描链集合&中最小的h中,再次获得输入扫描链集合&,如此重复,直到所有输入端口均添加完毕,获得最终的输入扫描链集合&。步骤C6中,逐一将每个输出端口添加到集合&的最小值h中,获得输出扫描链集合&的过程为将第一个输出端口添加到集合&中最小的h中,获得输出扫描链集合Stj,然后将第二个输出端口添加到输出扫描链集合&中最小的h中,再次获输出扫描链集合&, 如此重复,直到所有输出端口均添加完毕,获得最终的输出扫描链集合&。Wrapper扫描链平衡介绍因为SoC芯片的对外引脚数目有限,不可能把IP核的所有测试端口均引到外部引脚上,所以在实际的测试过程中通常将IP核的测试端口串成几条扫描链,通过这些扫描链将测试向量输入测试端口。参见图1所示,为IP核扫描插入模型示意图,根据该模型可得输入扫描链长度=内部扫描链长度+输入端口链长度;输出扫描链长度=内部扫描链长度+输出端口链长度。IP核测试过程为第一步在测试时钟作用下,测试向量通过输入扫描链被输送到IP核测试端口 ;第二步当测试向量被输送到测试端口之后,IP核的工作状态就确定了,让IP核在该状态下工作一个周期,同时捕获IP核在该状态下的测试响应;第三步在测试时钟的作用下,通过输出扫描链将测试响应移出。设IP核一共包含P组测试向量,测试时钟周期为Ttest。为了缩短测试时间,可以在移出当前测试响应时,同时移入下一组测试向量,这一操作所需时间为T1 = SfflaxXTtesto 那么,只有在第一次移入测试向量时与输出扫描链无关,所需时间为T2 = ^liaxXTtest ;以及最后一次移出测试响应时与输入扫描链无关,所需时间为T3 = SanaxXTtesP每移入一组测试向量,都需要IP核工作一个周期以捕获测试响应,当一共有P组测试向量时,这部分的时间为:T4 = PX Ttest, Slmax是最长输入扫描链,即Slmax = max (S1) ;Sqiim是最长输出扫描链, 即 S0max = max (S0) ;Smax 是最长扫描链,即 Smax = max (Slmax, S0max)。
因此,IP核的测试时间为T = (P-I) XT1+T2+T3+T4 = Ttest [P X (Smax+1)+min (Slmax,SqiiJ],由上式可知,缩短SImax、Saiiax可以缩短IP核测试时间。因此Wrapper扫描链平衡算法的主要目标就是缩短Saiiax,本实施方式所述的方法就是能够缩短Saiiax0
为了缩短IP核的测试时间,测试人员需要对IP核做扫描链平衡处理,具体处理过程为IP核供应商向SoC设计人员提供IP核时,同时提供该IP核的测试信息,包括输入端口数目、输出端口数目、双向端口数目、IP核内部扫描链数目及内部扫描链长度。SoC设计人员需要把这些测试端口串联成Wrapper扫描链,同时在feapper扫描链数目确定的前提下,尽量缩短其长度。例如,对于ITC' 02S0C Test Benchmarks 中的 d695. soc 内 Module 4,假设 SoC 设计人员需要将该IP核封装成2条听即 吐扫描链。已知Module 4有36个输入端口,39 个输出端口,4条长度分别为54、53、52、52的内部扫描链,没有双向端口。那么SoC测试人员合理的做法是这样的第一步将4条内部扫描链首尾相连成2条长的内部扫描链,其长度分别为M+52 与 53+52。第二步将输入端口串联成2条长度均为18的输入端口链,然后把这2条输入端口链分别添加到那2条长的内部扫描链上,这样就得到2条输入扫描链,其长度分别为 54+52+18 = 124 及 53+52+18 = 123。第三步将输出端口串联成2条输出端口链,其长度分别为19及20,与第二步类似,将输出端口链也添加到那2条长的内部扫描链上,这样就得到2条输出扫描链,其长度分别为 54+52+19 = 125 及 53+52+20 = 125。如果IP核还包含双向端口,那么双向端口也要被串联成2条扫描链,并添加到 Wrapper扫描链上。下面提供一种实现本实施方式所述方法的伪代码
权利要求
1.SoC测试中的基于平均值余量的测试封装扫描链平衡方法,其特征在于该方法的过程为首先,计算Wrapper扫描链长度平均值;然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的至3% ;最后,根据所述误差限及feapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。
2.根据权利要求1所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,计算Wrapper扫描链长度平均值的过程为Ien(L)步骤Al、根据公式Arawj= Σ、获得IP核内部扫描链长度之和Lsim ;L是所有IP内部/'=1扫描链的集合,L1表示集合L内的第一个元素,Ien(L)表示集合L内元素的数目,Llma)表示集合L内最后一个元素;步骤A2、根据公SSmean Lsum/len(S)获得Wrapper扫描链长度平均值^liean ;3是听即 吐扫描链集合,Slen(s)表示feapper扫描链集合内最后一个元素。
3.根据权利要求2所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,所述误差限Err为至3% Sfflean0
4.根据权利要求3所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间的过程为根据所述误差限,获得误差上限为Sup = ^iean(HErr),误差下限为= Sfflean(I-Err), 所述取值区间为[Sup,Sdown]。
5.根据权利要求4所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,所述根据取值区间作为全局优化的指导原则,实现测试封装扫描链平衡的过程为步骤Cl、将集合L降序排列获得降序排列后的集合L,同时将集合S清零; 步骤C2、依序从降序排列后的集合L内取一个数Li,并将其添加到集合S中同时满足两个条件的第一个h中;所述两个条件为而< &_和S^Li ( Sup ;如果集合S中不存在满足上述条件的元素Sp则将Li添加到S集合中最小的h中;步骤C3、对集合S内的元素降序排列获得降序排列后的集合S,然后,返回执行步骤C2, 直到取完集合L内的所有元素,再执行步骤C4 ;步骤C4、将IP核的每个双向端口作为长度为1的扫描链,然后,逐一将每一个双向端口添加到集合S中最小的h中,获得新集合为& ;步骤C5、将IP核的每个输入端口看成长度为1的扫描链,然后,逐一将每个输入端口均添加到集合&的最小值的h中,获得输入扫描链集合& ;步骤C6、将IP核的每个输出端口作为长度为1的扫描链,然后,逐一将每个输出端口添加到集合&的最小值h中,获得输出扫描链集合&。
6.根据权利要求5所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,步骤C4中,逐一将每一个双向端口添加到集合S中最小的h中,获得新集合为 Sl的过程为将第一个双向端口添加到S中最小的h中,获得新的集合&,然后将第二个双向端口添加到新的集合&中最小的h中,再次获新的集合&,如此重复,直到所有双向端口均添加完毕,获得最终的新集合&。
7.根据权利要求5所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,步骤C5中,逐一将每个输入端口均添加到集合&的最小值的h中,获得输入扫描链集合&的过程为将第一个输入端口添加到集合&中最小的h中,获得输入扫描链集合&,然后将第二个输入端口添加到输入扫描链集合&中最小的h中,再次获得输入扫描链集合&,如此重复,直到所有输入端口均添加完毕,获得最终的输入扫描链集合&。
8.根据权利要求5所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法, 其特征在于,步骤C6中,逐一将每个输出端口添加到集合&的最小值h中,获得输出扫描链集合&的过程为将第一个输出端口添加到集合&中最小的h中,获得输出扫描链集合 &,然后将第二个输出端口添加到输出扫描链集合&中最小的h中,再次获输出扫描链集合&,如此重复,直到所有输出端口均添加完毕,获得最终的输出扫描链集合&。
全文摘要
SoC测试中的基于平均值余量的测试封装扫描链平衡方法,涉及系统芯片测试技术领域。本发明解决了现有基于BFD算法实现测试封装扫描链平衡方法以及基于平均值近似的SoC扫描链平衡方法中存在的不足。本发明的测试封装扫描链平衡方法的过程为首先,计算Wrapper扫描链长度平均值;然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的1%至3%;最后,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。本发明采用Wrapper扫描链平衡算法的原理实现缩短单个IP核测试时间这一目标,进而缩短SoC测试时间。
文档编号G01R31/3185GK102156258SQ20111005765
公开日2011年8月17日 申请日期2011年3月10日 优先权日2011年3月10日
发明者俞洋, 彭喜元, 彭宇, 杨智明, 邓立宝, 陈叶富 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1