专利名称:利用差值进行二次分配的扫描链平衡方法
技术领域:
本发明涉及系统芯片SOC测试技术领域。
背景技术:
基于IP核复用的S0C(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, ΤΑΜ)和测试封装(Test Wrapper) 测试源产生被测电路所需的测试激励;测试宿收集测试响应,评估测试电路的功能正常性。 测试存取机制为数据传输提供通路,将测试激励传输到IP核,并将测试响应从IP核传输到信宿。测试封装不仪能实现SOC中各个IP核测试数据的快速传输通道,而且要完成IP核内部扫描链的分配,从而使其更好的适应为其分配的TAM宽度。文献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 2007July P61 66 提出一种基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法。对于一个特定的IP核及给定的 Wrapper扫描链数目,该算法首先计算Wrapper扫描链长度平均值,然后以这个Wrapper扫描链长度平均值作为全局指导原则,将内部扫描链分别添加到Wrapper扫描链上。因此,对于某给定的IP核,按照基于平均值的Wrapper扫描链平衡算法,最理想的结果就是最后每条feapper扫描链长度均相等且等于其平均值。但是在实际处理问题过程中,最后Wrapper 扫描链很少有机会每条均相等且等于平均值。更实际的情况是,Wrapper扫描链的最终长度在其平均值附近波动,波动大小由Wrapper扫描链平衡算法及IP核的内部扫描链长度等因数共同决定。另外上述的基于平均值的Wrapper扫描链平衡算法实现SOC测试的方法并不总是优先处理当前最长内部扫描链,这样做带来诸多弊端。该种方法虽然具有全局优化的能力, 但是它并不总是优先处理当前最长内部扫描链,而且其全局优化的指导原则并不贴近实际情况。
发明内容
本发明为了缩短SOC的测试时间,进而降低测试费用,而提供了一种利用差值进行二次分配的扫描链平衡方法。本发明所述的利用差值进行二次分配的扫描链平衡方法的过程为首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(Hiax),将最大的扫描链S(Hiax)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S (adj);然后,将IP核内部各扫描链的长度与基准的扫描链S (adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S<,将所有长扫描链S >按照基准的扫描链S (adj)的长度进行第一次分配;再计算出每一个长扫描链S >与基准的扫描链S (adj)的差值di,,将所有短扫描链S<与所有差值di, 从大到小排序后,进行第二次分配。本发明的方法通过将扫描链按照一个基准长度进行第一分配,再根据各条扫描链与基准扫描链之间的差异情况进行第二次分配,该方法具有实现简单,算法复杂度低等优点。通过在ITC’ 02标准测试集中的实验数据得出,本方法在算法通用性、寻优能力等方面均优于其他现有方法。
图1是核测试体系结构的示意图。
具体实施例方式具体实施方式
一结合图1说明本实施方式,本实施方式的所述的利用差值进行二次分配的扫描链平衡方法的过程为首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(Hiax),将最大的扫描链S(Hiax)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S (adj);然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链S<,将所有长扫描链S >按照基准的扫描链S (adj)的长度进行第一次分配;再计算出每一个长扫描链S >与基准的扫描链S (adj)的差值di,,将所有短扫描链S<与所有差值di, 从大到小排序后,进行第二次分配。下面提供实现本实施方式所述方法(记为TAD(ADJ))的伪代码
4
假设IP核的内部扫描链数量为n,封装后的扫描链数量为NS = sort (S, descend)find S(adj)。将所有大于S(sdj)的记为S >,记S>的个数为η> ;所有不大于 S(sdj)的记为S^di,= s>-s(adj)di = di, U S^%第一次分配将11>个长度为S(adj)的扫描链平均分配到N条封装后的扫描链TAM(1 N)中每条TAM中含有的内部扫描链个数记为No_TAM(l N)每条TAM含有的内部扫描链之和记为Sum_TAM(l N)%第二次分配
For i=l:n
IfdiESi
a=fmd(Sum TAM ==min(Sum ΤΑΜ)); Sum ΤΑΜ (a(l))= Sum ΤΑΜ (a(l))+di(i);
else
c=fmd(No—TAM>0);
a=fmd(Sum TAM==min(Sum TAM (c))); b=fmd(max(No TAM (a))); Sum TAM (a(b(l)))= Sum TAM (a(b(l)))+di(i); No—TAM (a(b(l)))=No—TAM (a(b( 1)))-1;
End
End本实施方式方法的计算结果如表1所示(调整系数adj = 2. 1),可以看出改进的算法在内部扫描链长度差异较大的情况下,计算的结果有很大的改进。p2^10的第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,表1ρ22810 的 core5 数据
权利要求
1.利用差值进行二次分配的扫描链平衡方法,其特征在于它的过程为 首先,将IP核内部各扫描链按照降序排列,从中找到最大的扫描链S(Hiax),将最大的扫描链S(Hiax)除以调整系数adj的长度作为基准长度,最接近于基准长度的扫描链设定为基准的扫描链S(adj);然后,将IP核内部各扫描链的长度与基准的扫描链S(adj)的长度进行比较,大于基准的扫描链S(adj)则设定为长扫描链S>,小于等于基准的扫描链S(adj)则设定为短扫描链 Sy将所有长扫描链3>按照基准的扫描链S(adj)的长度进行第一次分配;再计算出每一个长扫描链S >与基准的扫描链S (adj)的差值di’,将所有短扫描链S <与所有差值di’从大到小排序后,进行第二次分配。
全文摘要
利用差值进行二次分配的扫描链平衡方法。它涉及系统芯片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’从大到小排序后,进行第二次分配。它应用于集成电路中。
文档编号G01R31/3185GK102305911SQ20111016206
公开日2012年1月4日 申请日期2011年6月16日 优先权日2011年6月16日
发明者乔立岩, 付宁, 俞洋, 彭喜元, 邓立宝 申请人:哈尔滨工业大学