首页> 中国专利> SoC测试中的基于平均值余量的测试封装扫描链平衡方法

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

摘要

SoC测试中的基于平均值余量的测试封装扫描链平衡方法,涉及系统芯片测试技术领域。本发明解决了现有基于BFD算法实现测试封装扫描链平衡方法以及基于平均值近似的SoC扫描链平衡方法中存在的不足。本发明的测试封装扫描链平衡方法的过程为:首先,计算Wrapper扫描链长度平均值;然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的1%至3%;最后,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。本发明采用Wrapper扫描链平衡算法的原理实现缩短单个IP核测试时间这一目标,进而缩短SoC测试时间。

著录项

  • 公开/公告号CN102156258A

    专利类型发明专利

  • 公开/公告日2011-08-17

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN201110057651.0

  • 申请日2011-03-10

  • 分类号G01R31/3185;

  • 代理机构哈尔滨市松花江专利商标事务所;

  • 代理人张宏威

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2023-12-18 02:56:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-29

    未缴年费专利权终止 IPC(主分类):G01R31/3185 授权公告日:20130403 终止日期:20140310 申请日:20110310

    专利权的终止

  • 2013-04-03

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):G01R31/3185 申请日:20110310

    实质审查的生效

  • 2011-08-17

    公开

    公开

说明书

技术领域

本发明涉及系统芯片(SoC)测试技术领域。

背景技术

在工程设计中引入“系统芯片”(System-on-Chip,SoC)可以简化设计,缩短产品上市时间,并且增加系统稳定性。然而随着SoC规模增大,SoC测试逐渐成为其制造过程中的瓶颈,SoC测试费用也不断增加。而SoC测试时间则是影响SoC测试成本和效率的重要因素。

SoC测试通常包括三部分:测试访问机制(TAM)、测试封装(Wrapper)、测试调度(Scheduling)。测试访问机制描述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核内部扫描链逐条添加到Wrapper扫描链上时,只考虑当前每条Wrapper扫描链长度,而没有一个全局性的指导原则。因此BFD算法最后得到的是局部最优解,而在某些情况下,局部最优解不等同于全局最优解。该文献所介绍的方法具有简单、高效的优点,但不具备全局优化的能力。

为了克服上述基于BFD算法的不具有全局优化这一缺点,文献Niu Daoheng,WangHong,Yang ShiYuan,Cheng BenMao,Jin Yang,Re-Optimization Algorithm for SoCWrapper-Chain Balance Using Mean-Value Approximation(基于平均值近似的SoC扫描链平衡算法)Tsinghua Science and Technology 2007 July P61~66提出一种基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法。对于一个特定的IP核及给定的Wrapper扫描链数目,该算法首先计算Wrapper扫描链长度平均值,然后以这个Wrapper扫描链长度平均值作为全局指导原则,将内部扫描链分别添加到Wrapper扫描链上。因此,对于某给定的IP核,按照基于平均值的Wrapper扫描链平衡算法,最理想的结果就是最后每条Wrapper扫描链长度均相等且等于其平均值。但是在实际处理问题过程中,最后Wrapper扫描链很少有机会每条均相等且等于平均值。更实际的情况是,Wrapper扫描链的最终长度在其平均值附近波动,波动大小由Wrapper扫描链平衡算法及IP核的内部扫描链长度等因数共同决定。

另外上述的基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法并不总是优先处理当前最长内部扫描链,这样做带来诸多弊端。该种方法虽然具有全局优化的能力,但是它并不总是优先处理当前最长内部扫描链,而且其全局优化的指导原则并不贴近实际情况。

发明内容

针对现有SoC测试中的测试封装扫描链平衡方法中存在的不足,本发明提供了一种SoC测试中的基于平均值余量的测试封装扫描链平衡方法。

本发明所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法的过程为:

首先,计算Wrapper扫描链长度平均值;

然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的1%至3%;

最后,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。

上述计算Wrapper扫描链长度平均值的过程可以为:

步骤A1、根据公式获得IP核内部扫描链长度之和Lsum;L是所有IP内部扫描链的集合,L1表示集合L内的第一个元素,len(L)表示集合L内元素的数目,Llen(L)表示集合L内最后一个元素;

步骤A2、根据公式Smean=Lsum/len(S)获得Wrapper扫描链长度平均值Smean;S是Wrapper扫描链集合,Slen(S)表示Wrapper扫描链集合内最后一个元素。

所述误差限Err为1%Smean至3%Smean

根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间的过程可以为:

根据所述误差限,获得误差上限为Sup=Smean(1+Err),误差下限为Sdown=Smean(1-Err),所述取值区间为[Sup,Sdown]。

所述根据取值区间作为全局优化的指导原则,实现测试封装扫描链平衡的过程为:

步骤C1、将集合L降序排列获得降序排列后的集合L,同时将集合S清零;

步骤C2、依序从降序排列后的集合L内取一个数Li,并将其添加到集合S中同时满足两个条件的第一个Si中;所述两个条件为:Si<Sdown和Sj+Li≤Sup;如果集合S中不存在满足上述条件的元素Sj,则将Li添加到S集合中最小的Sj中;

步骤C3、对集合S内的元素降序排列获得降序排列后的集合S,然后,返回执行步骤C2,直到取完集合L内的所有元素,再执行步骤C4;

步骤C4、将IP核的每个双向端口作为长度为1的扫描链,然后,逐一将每一个双向端口添加到集合S中最小的Sj中,获得新集合为SL

步骤C5、将IP核的每个输入端口看成长度为1的扫描链,然后,逐一将每个输入端口均添加到集合SL的最小值的Sj中,获得输入扫描链集合SI

步骤C6、将IP核的每个输出端口作为长度为1的扫描链,然后,逐一将每个输出端口添加到集合SL的最小值Sj中,获得输出扫描链集合SO

在SoC测试中,无论测试访问机制、测试封装及测试调度机制如何工作,SoC测试最终都需要落实到对单个IP核进行测试。如果每个IP核的测试时间都相应有所缩短,则整个SoC的测试时间必定缩短。

本发明采用Wrapper扫描链平衡算法的原理实现缩短单个IP核测试时间这一目标,进而缩短SoC测试时间。

鉴于Wrapper扫描链的最终长度是在其平均值附近波动的,因此,本发明不是把Wrapper扫描链长度的平均值作为全局优化的指导原则,而是把Wrapper扫描链长度平均值附近的某一个范围(例如平均值±1%)作为全局优化的指导原则,这样更贴近实际,并且能够达到很好的技术效果。

附图说明

图1是IP核扫描插入模型。

具体实施方式

具体实施方式一、本实施方式所述的SoC测试中的基于平均值余量的测试封装扫描链平衡方法的过程为:

首先,计算Wrapper扫描链长度平均值;

然后,根据获得的长度平均值确定误差限,所述误差限为所述长度平均值的1%至3%;

最后,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间,把该取值区间作为全局优化的指导原则,实现测试封装扫描链平衡。

本实施方式所述的扫描链平衡方法以Wrapper扫描链长度平均值附近的一个范围作为全局优化的指导原则,使其更贴近实际情况,并且本算法始终优先处理当前最长内部扫描链。

本实施方式中,计算Wrapper扫描链长度平均值的过程可以为:

步骤A1、根据公式获得IP核内部扫描链长度之和Lsum;L是所有IP内部扫描链的集合,L1表示集合L内的第一个元素,len(L)表示集合L内元素的数目,Llen(L)表示集合L内最后一个元素;

步骤A2、根据公式Smean=Lsum/len(S)获得Wrapper扫描链长度平均值Smean;S是Wrapper扫描链集合,Slen(S)表示Wrapper扫描链集合内最后一个元素。

本实施方式中,所述误差限Err为1%Smean至3%Smean

本实施方式中,根据所述误差限及Wrapper扫描链长度平均值计算得到取值区间的过程可以为:

根据所述误差限,获得误差上限为Sup=Smean(1+Err),误差下限为Sdown=Smean(1-Err),所述取值区间为[Sup,Sdown]。

本实施方式中,所述根据取值区间作为全局优化的指导原则,实现测试封装扫描链平衡的过程为:

步骤C1、将集合L降序排列获得降序排列后的集合L,同时将集合S清零;

步骤C2、依序从降序排列后的集合L内取一个数Li,并将其添加到集合S中同时满足两个条件的第一个Sj中;所述两个条件为:Sj<Sdown和Sj+Li≤Sup;如果集合S中不存在满足上述条件的元素Sj,则将Li添加到S集合中最小的Sj中;

步骤C3、对集合S内的元素降序排列获得降序排列后的集合S,然后,返回执行步骤C2,直到取完集合L内的所有元素,再执行步骤C4;

步骤C4、将IP核的每个双向端口作为长度为1的扫描链,然后,逐一将每一个双向端口添加到集合S中最小的Sj中,获得新集合为SL

步骤C5、将IP核的每个输入端口看成长度为1的扫描链,然后,逐一将每个输入端口均添加到集合SL的最小值的Sj中,获得输入扫描链集合SI

步骤C6、将IP核的每个输出端口作为长度为1的扫描链,然后,逐一将每个输出端口添加到集合SL的最小值Sj中,获得输出扫描链集合SO

步骤C4中,逐一将每一个双向端口添加到集合S中最小的Sj中,获得新集合为SL的过程为:将第一个双向端口添加到S中最小的Sj中,获得新的集合SL,然后将第二个双向端口添加到新的集合SL中最小的Sj中,再次获新的集合SL,如此重复,直到所有双向端口均添加完毕,获得最终的新集合SL

步骤C5中,逐一将每个输入端口均添加到集合SL的最小值的Sj中,获得输入扫描链集合SI的过程为:将第一个输入端口添加到集合SL中最小的Sj中,获得输入扫描链集合SI,然后将第二个输入端口添加到输入扫描链集合SI中最小的Sj中,再次获得输入扫描链集合SI,如此重复,直到所有输入端口均添加完毕,获得最终的输入扫描链集合SI

步骤C6中,逐一将每个输出端口添加到集合SL的最小值Sj中,获得输出扫描链集合SO的过程为:将第一个输出端口添加到集合SL中最小的Sj中,获得输出扫描链集合SO,然后将第二个输出端口添加到输出扫描链集合SO中最小的Sj中,再次获输出扫描链集合SO,如此重复,直到所有输出端口均添加完毕,获得最终的输出扫描链集合SO

Wrapper扫描链平衡介绍:因为SoC芯片的对外引脚数目有限,不可能把IP核的所有测试端口均引到外部引脚上,所以在实际的测试过程中通常将IP核的测试端口串成几条扫描链,通过这些扫描链将测试向量输入测试端口。参见图1所示,为IP核扫描插入模型示意图,根据该模型可得:

输入扫描链长度=内部扫描链长度+输入端口链长度;

输出扫描链长度=内部扫描链长度+输出端口链长度。

IP核测试过程为:

第一步:在测试时钟作用下,测试向量通过输入扫描链被输送到IP核测试端口;

第二步:当测试向量被输送到测试端口之后,IP核的工作状态就确定了,让IP核在该状态下工作一个周期,同时捕获IP核在该状态下的测试响应;

第三步:在测试时钟的作用下,通过输出扫描链将测试响应移出。

设IP核一共包含P组测试向量,测试时钟周期为Ttest。为了缩短测试时间,可以在移出当前测试响应时,同时移入下一组测试向量,这一操作所需时间为:T1=Smax×Ttest。那么,只有在第一次移入测试向量时与输出扫描链无关,所需时间为:T2=SImax×Ttest;以及最后一次移出测试响应时与输入扫描链无关,所需时间为:T3=SOmax×Ttest。每移入一组测试向量,都需要IP核工作一个周期以捕获测试响应,当一共有P组测试向量时,这部分的时间为:T4=P×Ttest,SImax是最长输入扫描链,即SImax=max(SI);SOmax是最长输出扫描链,即SOmax=max(SO);Smax是最长扫描链,即Smax=max(SImax,SOmax)。

因此,IP核的测试时间为:

T=(P-1)×T1+T2+T3+T4=Ttest[P×(Smax+1)+min(SImax,SOmax)],

由上式可知,缩短SImax、SOmax可以缩短IP核测试时间。因此Wrapper扫描链平衡算法的主要目标就是缩短SImax、SOmax,本实施方式所述的方法就是能够缩短SImax、SOmax

为了缩短IP核的测试时间,测试人员需要对IP核做扫描链平衡处理,具体处理过程为:IP核供应商向SoC设计人员提供IP核时,同时提供该IP核的测试信息,包括:输入端口数目、输出端口数目、双向端口数目、IP核内部扫描链数目及内部扫描链长度。SoC设计人员需要把这些测试端口串联成Wrapper扫描链,同时在Wrapper扫描链数目确定的前提下,尽量缩短其长度。

例如,对于ITC′02SOC Test Benchmarks中的d695.soc内Module 4,假设SoC设计人员需要将该IP核封装成2条Wrapper扫描链。已知Module 4有36个输入端口,39个输出端口,4条长度分别为54、53、52、52的内部扫描链,没有双向端口。那么SoC测试人员合理的做法是这样的:

第一步:将4条内部扫描链首尾相连成2条长的内部扫描链,其长度分别为54+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行代码为求和,其算法复杂度为O(len(L))。

第2~5行代码的运行时间为常量。

第6行代码为排序算法,若采用二分的思想,则该过程的复杂度为O(len(L)log(len(L)))。

剩下的代码可以看成这样的一个整体过程:从L内取一个元素,在将其添加到S的某个数当中,该过程最坏的情况就是L内的每一个元素均遍历S内的所有元素,其复杂度为O(len(S)len(L))。

由上述分析可获得所述伪代码的算法复杂度为:

O(len(L)log(len(L))+len(L)(len(S)+1)),它和文献文献Niu Daoheng,Wang Hong,YangShiYuan,Cheng BenMao,Jin Yang,Re-Optimization Algorithm for SoC Wrapper-ChainBalance Using Mean-Value Approximation(基于平均值近似的SoC扫描链平衡算法)Tsinghua Science and Technology 2007 July P61~66中介绍的扫描链算法的复杂度一致。相比文献Vikram Iyengar,Krishnendu Chakrabarty and Erik Jan Marinissen,Test Wrapper and TestAcces Mechanism Co-Oprimization for System-on-Chip(针对SoC的测试封装及测试访问机制的联合优化)Internationl Test Conference 2001中介绍的算法复杂度,仅仅只增加一个求和分量O(len(L)而已,因此从复杂度上分析,本算法并不比现有两种算法复杂,即采用上述伪代码不会增加硬件资源的占用和增加程序运行时间,但却能达到了减少测时间的技术效果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号