利用差值进行二次分配的扫描链平衡方法转让专利

申请号 : CN201110162065.2

文献号 : CN102305911B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓立宝俞洋乔立岩付宁彭喜元

申请人 : 哈尔滨工业大学

摘要 :

利用差值进行二次分配的扫描链平衡方法。它涉及系统芯片SOC测试技术领域。它为了缩短SOC的测试时间,进而降低测试费用。首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(max),将最大的扫描链S(max)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S(adj);然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S≤,将所有长扫描链S>按照基准的扫描链S(adj)的长度进行第一次分配;再计算出每一个长扫描链S>与基准的扫描链S(adj)的差值di’,将所有短扫描链S≤与所有差值di’从大到小排序后,进行第二次分配。它应用于集成电路中。

权利要求 :

1.利用差值进行二次分配的扫描链平衡方法,其特征在于它的过程为:

首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(max),将最大的扫描链S(max)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S(adj);

然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S≤,将所有长扫描链S>按照基准的扫描链S(adj)的长度进行第一次分配;再计算出每一个长扫描链S>与基准的扫描链S(adj)的差值di’,将所有短扫描链S≤与所有差值di’从大到小排序后,进行第二次分配。

说明书 :

利用差值进行二次分配的扫描链平衡方法

技术领域

[0001] 本发明涉及系统芯片SOC测试技术领域。

背景技术

[0002] 基于IP核复用的SOC(system-on-a-chip)已成为当今电子设备的主流技术,它大大缩短了产品的上市时间,提高了系统的稳定性。但是却给测试带来了很大的挑战,主要表现在:嵌入到SOC内部的IP核的端口远远大于SOC的管脚,因此无法直接测试访问这些IP核;随着IP核复杂度的提升,对SOC的测试时间也成倍的增加,进而导致测试费用的迅猛提升,并接近了SOC的制造费用。测试问题已成为制约SOC发展的瓶颈问题,因此必须采取有效的措施。由于嵌入到SOC内部的IP核的输入输出管脚不可能都与SOC的管脚连接,因此无法对IP核直接进行测试。文献The Core Test Wrapper Handbook:Rationale and Application of IEEE Std.1500[M].2005.提出了核测试体系结构,其中包含三个部分:测试源/测试宿、测试存取机制(Test Access Michanism,TAM)和测试封装(TestWrapper)。测试源产生被测电路所需的测试激励;测试宿收集测试响应,评估测试电路的功能正常性。
测试存取机制为数据传输提供通路,将测试激励传输到IP核,并将测试响应从IP核传输到信宿。测试封装不仅能实现SOC中各个IP核测试数据的快速传输通道,而且要完成IP核内部扫描链的分配,从而使其更好的适应为其分配的TAM宽度。
[0003] 文献Vikram Iyengar,Krishnendu Chakrabarty and Erik Jan Marinissen,Test WrapperandTest Access Mechanism Co-Optimization for System-on-Chip(针对SoC的测试封装及测试访问机制的联合优化)Internationl Test Conference 2001,该文献中提出了一种基于BFD(BestFit Decrease)的算法,该BFD算法最初被设计用于解决装箱问题。该方法提出比较早,而且具有运行效率高、结构简单等优点,因此被广泛采用。该方法的缺点是:BFD算法并不具备全局优化的能力。运用该方法将IP核内部扫描链逐条添加到Wrapper扫描链上时,只考虑当前每条Wrapper扫描链长度,而没有一个全局性的指导原则。因此BFD算法最后得到的是局部最优解,而在某些情况下,局部最优解不等同于全局最优解。该文献所介绍的方法具有简单、高效的优点,但不具备全局优化的能力。
[0004] 为了克服上述基于BFD算法的不具有全局优化这一缺点,文献Niu Daoheng,WangHong,Yang ShiYuan,Cheng BenMao,Jin Yang,Re-Optimization Algorithm
forSoCWrapper-Chain Balance Using Mean-Value Approximation(基于平均值近似的SoC扫描链平衡算法)Tsinghua Science and Technology 2007July P61~66提出一种基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法。对于一个特定的IP核及给定的Wrapper扫描链数目,该算法首先计算Wrapper扫描链长度平均值,然后以这个Wrapper扫描链长度平均值作为全局指导原则,将内部扫描链分别添加到Wrapper扫描链上。因此,对于某给定的IP核,按照基于平均值的Wrapper扫描链平衡算法,最理想的结果就是最后每条Wrapper扫描链长度均相等且等于其平均值。但是在实际处理问题过程中,最后Wrapper扫描链很少有机会每条均相等且等于平均值。更实际的情况是,Wrapper扫描链的最终长度在其平均值附近波动,波动大小由Wrapper扫描链平衡算法及IP核的内部扫描链长度等因数共同决定。
[0005] 另外上述的基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法并不总是优先处理当前最长内部扫描链,这样做带来诸多弊端。该种方法虽然具有全局优化的能力,但是它并不总是优先处理当前最长内部扫描链,而且其全局优化的指导原则并不贴近实际情况。

发明内容

[0006] 本发明为了缩短SOC的测试时间,进而降低测试费用,而提供了一种利用差值进行二次分配的扫描链平衡方法。
[0007] 本发明所述的利用差值进行二次分配的扫描链平衡方法的过程为:
[0008] 首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(max),将最大的扫描链S(max)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S(adj);
[0009] 然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S≤,将所有长扫描链S>按照基准的扫描链S(adj)的长度进行第一次分配;再计算出每一个长扫描链S>与基准的扫描链S(adj)的差值di’,将所有短扫描链S≤与所有差值di’从大到小排序后,进行第二次分配。
[0010] 本发明的方法通过将扫描链按照一个基准长度进行第一分配,再根据各条扫描链与基准扫描链之间的差异情况进行第二次分配,该方法具有实现简单,算法复杂度低等优点。通过在ITC’02标准测试集中的实验数据得出,本方法在算法通用性、寻优能力等方面均优于其他现有方法。

附图说明

[0011] 图1是核测试体系结构的示意图。

具体实施方式

[0012] 具体实施方式一:结合图1说明本实施方式,本实施方式的所述的利用差值进行二次分配的扫描链平衡方法的过程为:
[0013] 首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(max),将最大的扫描链S(max)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S(adj);
[0014] 然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S≤,将所有长扫描链S>按照基准的扫描链S(adj)的长度进行第一次分配;再计算出每一个长扫描链S>与基准的扫描链S(adj)的差值di’,将所有短扫描链S≤与所有差值di’从大到小排序后,进行第二次分配。
[0015] 下面提供实现本实施方式所述方法(记为TAD(ADJ))的伪代码:
[0016] 假设:IP核的内部扫描链数量为n,封装后的扫描链数量为N
[0017] S=sort(S,descend)
[0018] find S(adj)。将所有大于S(adj)的记为S>,记S>的个数为n>;所有不大于S(adj)的记为S≤
[0019] di’=S>-S(adj)
[0020] di=di’∪S≤
[0021] %第一次分配
[0022] 将n>个长度为S(adj)的扫描链平均分配到N条封装后的扫描链TAM(1:N)中
[0023] 每条TAM中含有的内部扫描链个数记为No_TAM(1:N)
[0024] 每条TAM含有的内部扫描链之和记为Sum_TAM(1:N)
[0025] %第二次分配
[0026]
[0027]
[0028] 本实施方式方法的计算结果如表1所示(调整系数adj=2.1),可以看出改进的算法在内部扫描链长度差异较大的情况下,计算的结果有很大的改进。p22810的第5号IP核,它包含29条内部扫描链,长度分别为[214,106,106,105,105,103,102,101,101,101,100,93,92,84,84,75,75,73,73,73,73,27,27,27,27,27,27,27,27]。BFD、MVA、TAD(ADJ)三种方法的数据见表1,
[0029] 表1 p22810的core5数据
[0030]
[0031] 具体实施方式二:本实施方式是具体实施方式一的特例,调整系数adj>S(max)/S(min)情况下的特例:
[0032] 首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(max),将最大的扫描链S(max)除以调整系数adj的长度小于最小的扫描链S(min),小于最小的扫描链S(min)的长度作为基准长度;
[0033] 然后,将所有扫描链按照基准的扫描链S(adj)的长度进行第一次分配;再计算出所有扫描链与最小的扫描链S(min)的差值di,将差值di’从大到小排序后,进行第二次分配。
[0034] 下面提供实现本实施方式所述方法(记为TAD(MIN))的伪代码:
[0035] 设:IP核的内部扫描链数量为n,封装后的扫描链数量为N
[0036] S=sort(S,descend)
[0037] S(min)=S(n)
[0038] di=S-S(min)
[0039] %第一次分配
[0040] 将n个长度为S(min)的扫描链平均分配到N条封装后的扫描链TAM(1:N)中
[0041] 每条TAM中含有的内部扫描链个数记为No_TAM(1:N)
[0042] 每条TAM含有的内部扫描链之和记为Sum_TAM(1:N)
[0043] %第二次分配
[0044]
[0045] 以八条扫描链长度分别为[9,9,8,8,7,7,6,6],封装为三组TAM为例子,扫描链已经按照从大到小的顺序排列,其中的最小扫描链长度S(min)=6,差值di=[3,3,2,2,1,1,0,0]。第一次分配:将八条扫描链都按照长度为6进行平均分配为三组,于是TAM(1)包含[6,6,6],TAM(2)包含[6,6,6],TAM(3)包含[6,6];第二次分配:将di分配到可以分配的最小Sum_TAM中,于是经过本次分配后TAM(1)中包含[6,6,6,2,1,0]即[8,7,6]三条内部扫描链,TAM(2)中包含[6,6,6,2,1,0]即[8,7,6]三条内部扫描链,TAM(3)包含[6,6,
3,3]即[9,9]两条内部扫描链。所以三条封装后的扫描链长度为(21,21,18),较BFD和MVA方法结果更优。为了验证各方法在实际电路中的效果,我们将BFD、MVA、TAD(MIN)三种方法应用于ITC’02中的p93791中的第6号IP核上,它含有46条内部扫描链,长度分别为[521,521,521,521,521,521,521,521,521,520,520,520,520,520,520,520,520,520,520,
520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,
520,500,500,500,500,500,500,500]。将后两种方法分别与BFD方法进行比较,计算出各种TAM宽度下最长测试封装扫描链长度及缩短量,数据见如表1。
[0046] 表1 p93791的core6数据
[0047]
[0048] 由表2数据可知,在TAM宽度为3~64情况下,计算封装后的最长扫描链长度之和,较BFD方法相比,MVA缩短了296,TAD(MIN)缩短了356。并且TAD(MIN)在所有的TAM宽度下效果都优于BFD和MVA方法。以提供TAM宽度等于3时举例,本文方法的最长测试封装扫描链长度缩短量为83,但是由于该IP核的测试向量个数为218,经过封装后IP核的最长输入扫描链为Si,最长的输出扫描链为So,该IP核的测试向量的个数为P,则对该IP核测试的时间(单位:测试时钟周期数)T为:T=(1+max{Si,So})*P+min{Si,So},测试时间缩短了18177(单位:测试时钟周期数)。其它组成和连接方式与具体实施方式一相同。