CN103217642A - SoC测试中基于进化计算的扫描链平衡方法 - Google Patents
SoC测试中基于进化计算的扫描链平衡方法 Download PDFInfo
- Publication number
- CN103217642A CN103217642A CN2013100706710A CN201310070671A CN103217642A CN 103217642 A CN103217642 A CN 103217642A CN 2013100706710 A CN2013100706710 A CN 2013100706710A CN 201310070671 A CN201310070671 A CN 201310070671A CN 103217642 A CN103217642 A CN 103217642A
- Authority
- CN
- China
- Prior art keywords
- individual
- population
- individuality
- scan chain
- cost function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Investigating Or Analysing Biological Materials (AREA)
Abstract
本发明为SoC测试中基于进化计算的扫描链平衡方法,本法产生初始种群R和初始相反种群ROP,计算最终初始种群中所有个体的成本函数值,递增排序;保存第G代成本函数值最小的最优个体;计算第G代每个个体的迁入速率、迁出速率和转移概率;对第G代种群进行迁徙操作;计算变异概率mk;对第G代种群进行变异操作;保存变异操作后的当前代成本函数值最大的最差个体;用第G代最优个体代替当前代最差个体、并插入当前代群体中,其个体按成本函数值递增排列,获G=G+1代种群。代数G达到最大规定代数,即输出内部扫描链平衡最优解。本法通过群体智能的进化计算,对IP核内部扫描链进行平衡设计,缩短最长封装扫描链的长度,减少IP核测试时间。
Description
技术领域
本发明涉及系统级芯片SoC(System-on-Chip的英文首字符缩写)测试技术领域,具体为一种SoC测试中基于进化计算的扫描链平衡方法。
背景技术
随着现代半导体制造工艺的发展与纳米技术的应用,大规模集成电路的集成度不断加大,系统级芯片SoC迅猛发展。为了减少SoC的上市时间,同时不降低系统的稳定性和可靠性,使得基于IP核复用的SoC设计逐渐成为主流风格设计。由于SoC集成度和规模的大幅度增加,带来了新的挑战和问题,即SoC测试时间急剧增加,导至SoC的测试费用飞速增长。目前,SoC测试问题已成为制约SoC发展的瓶颈问题。
IYENGAR V、CHAKRABARTY K和MARINISSEN E J发表的论文“Test Wrapper and test access mechanism co-optimization for system-on-chip”(文章中文译名“SoC测试的Wrapper和测试访问机制的联合优化”,发表于International Test Conference,USA,2001:1023-1032.),将Wrapper/TAM及测试调度组合优化问题分成PW、PAW和PPAW三个子问题。从该划分不难发现,测试Wrapper的设计是几个子问题的基础。如果测试Wrapper的设计达不到最佳平衡解,那么其它两个子问题必然得不到最优解;而IP核模块的测试时间是由IP核中最长的扫描链决定,因此如何将测试Wrapper扫描链进行平衡优化设计将直接决定了测试的时间和成本。
IYENGAR V等提出了BFD(Best Fit Decrease)方法来解决测试Wrapper设计问题。BFD方法最早是用于解决装箱问题,虽然它有结构简单和执行效率高等优点,但该方法只有局部优化的能力。造成该缺点的根本原因是在BFD方法中,当把IP核内部扫描链依次加到Wrapper扫描链上时,只考虑当前每条扫描链的长度。
针对BFD方法只具备局部优化的缺点,NIU D H,WANG H,YANG S Y等人发表了期刊论文“Re-optimization algorithm for SoC Wrapper-chain balance using mean-value approximation”(中文译名为“采用近似平均值的SoC Wrapper扫描链平衡优化方法”,发表于Tsinghua Science and Technology,2007,12(S1):61-66)。此文引入了全局优化思想,提出了基于平均值的扫描链平衡设计方法MVA(Mean Value Approximation),用内部扫描链的平均值指导全局优化。但MVA方法也存在一定的问题,即它并不总是优先处理当前最长的内部扫描链。
YU Y,CHENG Y F,PENG Y的期刊论文“Wrapper scan chain balance algorithm based on mean-value allowance”(中文译名为“基于平均值余量的Wrapper扫描链平衡方法”,发表于Chinese Journal of Scientific Instrument,2011,32(10):2290-2296)提出了一种MVAR(Mean Value Allowance Residue)方法,首先计算内部扫描链的平均值,然后在平均值的基础上添加一个恰当的余量,并以此来指导全局优化,该方法比基于平均值的扫描链平衡设计方法在缩短最长Wrapper扫描链方面有所改进,复杂度稍微有所提高。
申请号为CN201110162065.2的中国发明专利申请“利用差值进行二次分配的扫描链平衡方法”先将IP核内部各扫描链递减排列,找到最大的扫描链S(max),将S(max)除以调整系数adj的长度作为基准长度Sb,最接近于Sb的扫描链设定为基准的扫描链S(adj);然后,将IP核内部各扫描链的长度与S(adj)的长度进行比较,大于S(adj)则设定为长扫描链S>,小于等于S(adj)则设定为短扫描链S≤,将所有长扫描链S>按照S(adj)的长度进行第一次分配;再计算出每一个长扫描链S>与基准的扫描链S(adj)的差值di’,将所有短扫描链S≤与所有差值di’递减排序后,进行第二次分配。改进了基于平均值余量的方法。
以上所述的BFD、MVA、MVAR和采用差值二次分配的方法,思路均是让Wrapper扫描链尽量达到平衡,从而缩短最长Wrapper扫描链的长度,减少IP核的测试时间。但目前不少SoC的IP核内部各扫描链严重不均衡,用现有的方法很难进一步缩短最长Wrapper扫描链的长度,也就无法完成扫描链的平衡。
发明内容
本发明的目的是设计一种SoC测试中基于进化计算的扫描链平衡方法,基于群体智能的进化计算,对IP核内部扫描链进行平衡设计,优化Wrapper扫描链,减小IP核最长Wrapper扫描链的长度,从而减少IP核的测试时间,降低SoC的测试成本。
本发明设计的SoC测试中基于进化计算的扫描链平衡方法,包括如下步骤:
步骤1、设置初始化参数
本发明中的术语定义如下:
个体:为一个待选解,是一个d维的整数向量。
种群:为由NP个个体组成的群体。
例如ITC’02Test benchmarks[16]中d695.soc,它有11个模块(IP核),模块(IP核)6中有16条内部扫描链{S1,S2,...,S16},其长度为{41,41,40,40,40,40,40,40,40,40,40,40,39,39,39,39}。如果将其分成两条Wrapper扫描链(w=2),则待选解整数向量(即一个个体)为Z=(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2),表示将奇数系列内部扫描链连接构成第一条Wrapper扫描链,将偶数系列内部扫描链连接构成第二条Wrapper扫描链。
本步骤1设置的初始化参数如下
根据待测试的SoC的IP核内部扫描链的条数设定整数向量的维数d;
种群中的个体规模NP,如可设定为50,
最大规定代数MaxGen,如可设定为50,
最大变异概率mmax,如可设定为0.005,
根据当前封装扫描链分配的条数设定w的值。
最大迁入速率I,如可设定为1,
最大迁出速率E,如可设定为1。
步骤2、产生初始种群R和初始相反种群ROP
随机产生一个种群个体规模为NP的初始种群R,
R=(X1,X2,...,Xk,...,XNP),其中Xk=(X1 k,X2 k,...,Xp k,...,Xd k),
Xp k∈[1,w],k∈[1,NP],p∈[1,d]
上式中NP、d和w为步骤1所设值,k、p为整数;
根据公式Yi k=1+w-Xi k,i∈[1,d],产生一个初始相反种群ROP,
ROP=(Y1,Y2,...,Yk,...,YNP),k∈[1,NP]。
步骤3、计算最终初始种群中所有个体的成本函数值,按照递增排序
分别计算初始种群和初始相反种群中所有个体的成本函数值,根据基于相反点的优化方法,从初始种群R中的任一个体和其初始相反种群ROP中对应的相反个体选择成本函数值较小者作为最终初始种群,即第0代种群的个体。计算第0代种群中所有个体的成本函数值,并且按照递增排序,代数G=0。
基于相反点的优化方法为:已知X为m维空间的一个点,以X为待选解,X=(X1,X2,…,Xm)。设Y=(Y1,Y2,…,Ym)是X=(X1,X2,…,Xm)的相反点,m表示空间维数,如果CF(Y)≤CF(X),则用Y代替X点,否则,继续采用X进行进化计算;
成本函数为 其中Xk为种群中的任一个体,k∈[1,NP];L(Pi)表示第i条Wrapper扫描链的长度,L(Sj)表示第j条内部扫描链的长度;n表示内部扫描链的条数;w表示Wrapper扫描链的条数。用成本函数来衡量待选解X的适应度,成本函数值越大则代表其适应度越小。
步骤4、保存第G代最优个体
将第G代种群中的第一个个体,即第G代成本函数值最小的个体,保存为第G代最优个体BestCurent。
步骤5、计算第G代每个个体的迁入速率、迁出速率和转移概率
将第G代种群的每个个体的成本函数值映射成相应个体的生物数,成本函数值最小个体的生物数映射为最大,成本函数值最大个体的生物数映射为最小;
根据公式EmNP-k=E×(NP-k)/(Smax+1)计算每个个体的迁出速率EmNP-k,表示第k个个体的迁出速率,式中E为最大迁出速率,Smax为个体容纳生物数的最大值,k∈[1,NP]。
根据公式ImNP-k=I×(1-(NP-k)/(Smax+1))计算每个个体的迁入速率ImNP-k,表示第k个个体的迁入速率,其中I为最大迁入速率,Smax为个体容纳生物数的最大值,k∈[1,NP]。
式中k∈[1,NP],n=Smax。
步骤6、对第G代种群进行迁徙操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[1,NP],
如果rand≤ImNP-k,则选中第k个个体的第j维,j∈[1,d],执行迁徙操作:产生随机数rd∈[0,1],第G代种群第t个(t∈[1,NP])个体的迁出速率EmNP-t,如果rd≤EmNP-t,则选中个体Xt,并用个体Xt的第j维代替个体Xk的第j维;否则个体保持不变。
步骤7、计算变异概率mk
根据公式mNP-k=mmax×(1-PrNP-k)/Prmax计算第k个个体的变异概率mNP-k,k∈[1,NP],其中mmax为变异概率的最大值,步骤1已设定;Prmax=max0≤i≤nPri。
步骤8、对第G代种群进行变异操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[NP/2,NP],NP取偶数,本步骤只对NP/2的个体,即成本函数值较大的个体执行操作;
对于第k个个体Xk,k∈[NP/2,NP],如果rand≤mNP-k,则选中Xk的第j维,j∈[1,d],执行变异操作:随机产生一个在1至w的整数、代替原来的值;否则个体保持不变。
步骤9、保存步骤8变异操作后的当前代最差个体
计算步骤8变异操作后当前代种群所有个体的成本函数值,按照成本函数值递增的顺序排序,得成本函数值最大个体,即当前代最差个体。
步骤10、获得G=G+1代种群
用步骤4所得的第G代最优个体代替步骤9所得的当前代最差个体,即精英策略,淘汰成本函数值最大的个体,并把该最优个体插入当前代群体中,使其中的个体按照成本函数值递增排列。获得G=G+1代种群。
步骤11、代数G是否达到步骤1设定的最大规定代数MaxGen,没有达 到则返回步骤4,达到则停止,输出内部扫描链平衡最优解。
与现有技术相比,本发明SoC测试中基于进化计算的扫描链平衡方法的优点为:通过群体智能的进化计算,对IP核的内部扫描链进行平衡设计,从而缩短最长封装扫描链的长度,实现减少IP核测试时间的目的。
附图说明
图1为本SoC测试中基于进化计算的扫描链平衡方法实施例中IP核测试结构的扫描链基本模型;
图2为本SoC测试中基于进化计算的扫描链平衡方法实施例的步骤流程图。
具体实施方式
本SoC测试中基于进化计算的扫描链平衡方法实施例是用于ITC’02Benchmarks中的系统级芯片p22810.soc Module5,其IP核内部扫描链为29条,长度依次为214106106105105103102101101101100939284847575737373732727272727272727。可以看到,IP核内部扫描链相互的长度差最大达187,是一个非常“不均衡”的IP核。
步骤1、设置初始化参数:
本例根据待测SoC IP核内部扫描链的条数设置整数向量的维数d=29,种群中的个体规模NP=50,设定最大规定代数MaxGen=50,最大变异概率mmax=0.005,Wrapper扫描链的条数w=3,最大迁入速率I设定为1,最大迁出速率E设定为1。
步骤2、产生初始种群R和初始相反种群ROP
随机产生一个种群的个体规模为NP=50的初始种群R,
R=(X1,X2,...,Xk,...,XNP),其中Xk=(X1 k,X2 k,...,Xp k,...,Xn k),
Xp k∈[1,w],k∈[1,NP],p∈[1,d](k、p都是整数);
例如初始种群R中的个体X1=(3,2,2,1,2,2,2,2,2,3,3,1,1,2,1,2,2,3,2,1,2,3,2,2,2,1,3,2,3),
根据公式Yi k=1+w-Xi k,i∈[1,d],产生一个初始相反种群ROP,
ROP=(Y1,Y2,...,Yk,...,YNP),k∈[1,NP]。
根据公式Yi k=1+w-Xi k,i∈[1,n],产生一个初始相反种群ROP,其中个体数也为NP=50
ROP=(Y1,Y2,...,YNP),
例如初始相反种群ROP中的个体Y1=(1,2,2,3,2,2,2,2,2,1,1,3,3,2,3,2,2,1,2,3,2,1,2,2,2,3,1,2,,1)。
步骤3、计算最终初始种群中所有个体的成本函数值,按照递增排序
分别计算初始种群R和初始相反种群ROP中所有个体的成本函数值,根据基于相反点的优化方法,从初始种群R中的任一个个体和其初始相反种群ROP中的对应的相反个体选择成本函数值较小者作为最终初始种群的个体。代数G=0,计算第0代种群成本函数值,并且按照递增排序。
本例得CF(X1)<CF(Y1)=2365898,因此X1为最终初始种群G=0的个体,同理可得其它49个最终初始种群的个体。
其中,成本函数为 其中Xk为种群中的任一个体,k∈[1,NP];L(Pi)表示第i条Wrapper扫描链的长度,L(Sj)表示第j条内部扫描链的长度;n表示内部扫描链的条数;w表示Wrapper扫描链的条数。用成本函数来衡量待选解X的适应度,成本函数值越大则代表其适应度越小。
步骤4、保存第G代最优个体
将第G代种群的第一个个体,即第G代成本函数值最小的个体保存为最优个体BestCurent。
本例第0代最优个体的成本函数值为2050838,X1=(3,2,3,1,3,1,1,2,1,3,2,3,2,2,1,1,1,1,3,3,1,2,3,3,2,2,2,2)。
步骤5、计算第G代每个个体的迁入速率、迁出速率和转移概率
将第G代种群的每个个体的成本函数值映射成相应个体的生物数,成本函数值最小个体的生物数映射为最大,成本函数值最大个体的生物数映射为最小;按照成本函数值递增排序的50个个体的生物数依次为49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0。
根据公式EmNP-k=E×(NP-k)/(Smax+1)计算每个个体的迁出速率EmNP-k,表示第k个个体的迁出速率,式中E为最大迁出速率,Smax为个体容纳生物数的最大值,为49,k∈[1,NP]。得到50个个体的迁出速率依次为0.98,0.96,0.94,0.92,0.90,0.88,0.86,0.84,0.82,0.80,0.78,0.76,0.74,0.72,0.70,0.68,0.66,0.64,0.62,0.60,0.58,0.56,0.54,0.52,0.50,0.48,0.46,0.44,0.42,0.40,0.38,0.36,0.34,0.32,0.30,0.28,0.26,0.24,0.22,0.20,0.18,0.16,0.14,0.12,0.10,0.08,0.06,0.04,0.02,0.00。
根据公式ImNP-k=I×(1-(NP-k)/(Smax+1))计算每个个体的迁入速率ImNP-k,表示第k个个体的迁入速率,其中I为最大迁入速率,Smax为个体容纳生物数的最大值,其值为49,k∈[1,NP]。得到50个个体的迁入速率依次 为0.02,0.04,0.06,0.08,0.1,0.12,0.14,0.16,0.18,0.2,0.22,0.24,0.26,0.28,0.3,0.32,0.34,0.36,0.38,0.4,0.42,0.44,0.46,0.48,0.5,0.52,0.54,0.56,0.58,0.6,0.62,0.64,0.66,0.68,0.7,0.72,0.74,0.76,0.78,0.8,0.82,0.84,0.86,0.88,0.9,0.92,0.94,0.96,0.98,1。
PrNP-k初始值为1/NP=1/50=0.02,k∈[1,NP],通过迭代计算公式得,Pr0…Pr49依次为0.00080032 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.020808 0.020808 0.020808 0.020808 0.020808
0.020808 0.020808 0.00040016,公式为:
式中k∈[1,NP],n=Smax,n=49。
步骤6、对第G代种群进行迁徙操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[1,NP],
如果rand≤ImNP-k,则选中第k个个体的第j维,j∈[1,d],执行迁徙操作:产生随机数rd∈[0,1],第G代种群第t个(t∈[1,NP])个体的迁出速率EmNP-t, 如果rd≤EmNP-t,则选中个体Xt,并用个体Xt的第j维代替个体Xk的第j维;否则个体保持不变。例如对第0代操作时,第一次选中了第9个个体第20维,迁徙到第4个个体第20维。
步骤7、计算变异概率mk
根据公式mNP-k=mmax×(1-PrNP-k)/Prmax计算第k个个体的变异概率mNP-k,k∈[1,NP],其中mmax为变异操作概率的最大值,步骤1已设定;Prmax=max0≤i≤nPri。得到50个个体的变异概率依次为0.0048077
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 0 0 0
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 0
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 0
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018
1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018 1.1102e-018
1.1102e-018 1.1102e-018 0 1.1102e-018 0 1.1102e-018
1.1102e-018 0 0 1.1102e-018 1.1102e-018 1.1102e-018
1.1102e-018 1.1102e-018 0.0049038。
步骤8、对第G代种群进行变异操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[NP/2,NP],NP取偶数,本步骤只对NP/2的个体,即成本函数值较大的个体执行操作;
对于第k个个体Xk,k∈[NP/2,NP],如果rand≤mNP-k,则选中Xk的第j维,j∈[1,d],执行变异操作:随机产生一个在1到w之间(包括1和w)的整数代替原来的值;否则个体保持不变。例如对第0代操作时,第一次选中 了第49个个体第22维进行变异为1。
步骤9、保存步骤8变异操作后的当前代最差个体
计算步骤8变异操作后的当前代种群所有个体的成本函数值,按照成本函数值递增的顺序排序,得成本函数值最大个体,即当前代最差个体。
本例第一代最差个体成本函数值为2879528,X50=(3,2,2,3,3,2,2,1,2,3,2,2,2,2,2,2,2,2,2,2,2,1,3,3,1,1,2,1,2)),
步骤10、获得G=G+1代种群
用步骤4所得的第G代最优个体代替步骤9所得的当前代最差个体,即精英策略,淘汰成本函数值最大的个体,并把该最优个体插入当前代群体中,使其中个体按照成本函数值递增排列,获得G=G+1代种群。第一次执行的时候则G由0变成1,即得到了第1代种群。
本例在第一次循环时,用步骤4所得第0代成本函数值为2050838的最优个体BestCurent代替步骤9所得当前代成本函数值最大的个体X50,并把该成本函数值为2050838的最优个体插入当前代群体中,保证其中的个体按照成本函数值递增排列,获得第1代种群。
步骤11、判断迭代代数G是否达到最大规定代数MaxGen=50,没有达到则返回步骤4,达到则输出内部扫描链平衡最优解。
本例经35次循环,在G=35时得到最优解
Xbest=(2,3,1,2,2,1,1,1,2,1,2,3,3,3,1,3,3,1,2,3,3,2,2,3,3,3,1,1,1),得到的3条Wrapper扫描链分别为751、752和752,最后得到IP核最长Wrapper扫描链为752。
对于相同的SoC,本实施例的计算结果EC和现有的基于平均值扫描链 平衡方法MVA、基于平均值余量的扫描链平衡方法MVAR对于不同封装扫描链条数所得的扫描链长度结果的对照如表1所示。当w的1时候,只有一条封装扫描链,其长度为所有内部扫描链长度之和,各种方法的结果都一致。当w大于等于内部扫描链条数d时,很明显最长封装扫描链的长度等于内部扫描链中最大值。故本对照结果选取w为2到28(即d-1)之间。
表1p22810IP核5不同扫描链平衡方法结果对照表
本方法设计的最长Wrapper扫描链,除了相同的以外,其余大多数比BFD(Best Fit Decrease)方法的短。从上表可见相比基于平均值MVA和基于平均值余量MVAR的扫描链均衡设计方法,在封装扫描链条数小于10时,本方法存在一定的优势。本方法通过缩短IP核中最长封装扫描链的长度,从而缩短IP核的测试时间,进而减小SoC的测试成本,节省测试费用。
下面提供一种实现本实施方式所述方法的伪代码:
1.Set InitParameter
2.Population=GenerateInitPop(NP,GenMax)
3.OppPopulation=GenerateInitOppPop(NP,GenMax)
4.Population=GenerateFinalInitPop(Population,
5.OppPopulation)Population=sort(Population,ascend)
6.For GenCount in MaxGen
7.Store BestCurent
8.Im=getIm(population)
9.Em=getEm(population)
10.Prob=ComputeProb(Im,Em)
11.For PopScale in NP
12.IF rand<m(PopScale)
13.ModifyOperation
14.For PopScale in NP/2
15.IF rand<Im(PopScale)
16.MutationOperation
17.Population=sort(Population,ascend)
18.DeletWorstAndInsertBest
19.FinalBest=Output(Population)
上述伪代码的算法复杂度分析如下:
第1行代码为设置初始参数,第2行代码为产生初始种群,第3行代码为产生初始相反种群,第4行代码为利用相反点优化得到最终初始种群,第1到第4行代码的运行时间为常数。
第5行代码为排序算法,如果采用二分排序则其复杂度为O(d*log(d))。
第6行代码为循环控制,最大迭代代数为MaxGen;第7行代码为保存前一代最优个体,第8、9和10行代码分别表示计算迁入速率、迁出速率和转移概率;第11、12和13行代码表示概率执行迁徙操作;第14、15和16行代码表示概率执行变异操作;第17行代码为把种群按照成本函数值升序排序;第18行代码为用前一代最优个体代替当前点最差个体;第6到第18行代码,其复杂度为O(MaxGen*d*log(d)*NP)。
第19行代码为输出扫描链平衡最优解,运行时间为常数。
由上述分析可获得以上伪代码总的算法复杂度为:
O(d*log(d)+MaxGen*d*log(d)*NP)。
而文献IYENGAR V,CHAKRABARTY K,MARINISSEN E J,发表于2001年美国国际测试会议的论文(International Test Conference,USA,2001:1023-1032)“SoC测试封装和测试访问机制联合优化(Test Wrapper and test access mechanism co-optimization for system-on-chip)”的算法复杂度为O(d*log(d)+w*d)。与本法的复杂度比较,当MaxGen*log(d)*NP=w时,本算法和BFD算法复杂度相当,其中w为Wrapper扫描链的数目,d为内部扫描链的数目。
上述实施例,仅为对本发明的目的、技术方案和有益效果进一步详细说明的具体个例,本发明并非限定于此。凡在本发明的公开的范围之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
Claims (1)
1.SoC测试中基于进化计算的扫描链平衡方法,包括如下步骤:
步骤1、设置初始化参数
根据待测试的SoC的IP核内部扫描链的条数设定整数向量的维数d,
种群中的个体规模NP,
最大规定代数MaxGen,
最大变异概率mmax,
根据当前封装扫描链分配的条数设定w的值,
最大迁入速率I,
最大迁出速率E;
步骤2、产生初始种群R和初始相反种群ROP
随机产生一个种群个体规模为NP的初始种群R,
R=(X1,X2,...,Xk,...,XNP),其中Xk=(X1 k,X2 k,...,Xp k,...,Xd k),
Xp k∈[1,w],k∈[1,NP],p∈[1,d]
上式中NP、d和w为步骤1所设值,k、p为整数;
根据公式Yi k=1+w-Xi k,i∈[1,d],产生一个初始相反种群ROP,
ROP=(Y1,Y2,...,Yk,...,YNP),k∈[1,NP];
步骤3、计算最终初始种群中所有个体的成本函数值,按照递增排序
分别计算初始种群和初始相反种群中所有个体的成本函数值,根据基于相反点的优化方法,从初始种群R中的任一个体和其初始相反种群ROP中对应的相反个体选择成本函数值较小者作为最终初始种群,即第0代种群的个体;计算第0代种群中所有个体的成本函数值,并且按照递增排序,代数G=0;
成本函数为 其中Xk为种群中的任一个体,k∈[1,NP];L(Pi)表示第i条Wrapper扫描链的长度,L(Sj)表示第j条内部扫描链的长度;n表示内部扫描链的条数;w表示Wrapper扫描链的条数;用成本函数来衡量待选解X的适应度,成本函数值越大则代表其适应度越小;基于相反点的优化方法为:已知X为m维空间的一个点,以X为待选解,X=(X1,X2,…,Xm);设Y=(Y1,Y2,…,Ym)是X=(X1,X2,…,Xm)的相反点,m表示空间维数,如果CF(Y)≤CF(X),则用Y代替X点,否则,继续采用X进行进化计算;
步骤4、保存第G代最优个体
将第G代种群中的第一个个体,即第G代成本函数值最小的个体,保存为第G代最优个体;
步骤5、计算第G代每个个体的迁入速率、迁出速率和转移概率
将第G代种群的每个个体的成本函数值映射成相应个体的生物数,成本函数值最小个体的生物数映射为最大,成本函数值最大个体的生物数映射为最小;
根据公式EmNP-k=E×(NP-k)/(Smax+1)计算每个个体的迁出速率EmNP-k,表示第k个个体的迁出速率,式中E为最大迁出速率,Smax为个体容纳生物数的最大值,k∈[1,NP];
根据公式ImNP-k=I×(1-(NP-k)/(Smax+1))计算每个个体的迁入速率ImNP-k,表示第k个个体的迁入速率,其中I为最大迁入速率,Smax为个体容纳生物数的最大值,k∈[1,NP];
式中k∈[1,NP],n=Smax;
步骤6、对第G代种群进行迁徙操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[1,NP],如果rand≤ImNP-k,则选中第k个个体的第j维,j∈[1,d],执行迁徙操作:产生随机数rd∈[0,1],第G代种群第t个个体的迁出速率EmNP-t,t∈[1,NP];如果rd≤EmNP-t,则选中个体Xt,并用个体Xt的第j维代替个体Xk的第j维;否则个体保持不变;
步骤7、计算变异概率mk
根据公式mNP-k=mmax×(1-PrNP-k)/Prmax计算第k个个体的变异概率mNP-k,其中mmax为变异操作概率的最大值,步骤1已设定;Prmax=max0≤i≤nPri;
步骤8、对第G代种群进行变异操作
产生随机数rand∈[0,1],对于第k个个体Xk,k∈[NP/2,NP],NP取偶数,本步骤只对NP/2的个体,即成本函数值较大的个体执行操作;
对于第k个个体Xk,k∈[NP/2,NP],如果rand≤mNP-k,则选中Xk的第j维,j∈[1,d],执行变异操作:随机产生一个在1至w的整数代替原来的值;否则个体保持不变;
步骤9、保存步骤8变异操作后的当前代最差个体
计算步骤8变异操作后当前的第G代种群所有个体的成本函数值,按照成本函数值递增的顺序排序,得成本函数值最大个体,即当前代最差个体;
步骤10、获得G=G+1代种群
用步骤4所得的第G代最优个体代替步骤9所得的当前代最差个体,该最优个体插入当前代群体中,使其中的个体按照成本函数值递增排列,获得G=G+1代种群;
步骤11、代数G是否达到步骤1设定的最大规定代数MaxGen,没有达到则返回步骤4,达到则停止,输出内部扫描链平衡最优解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100706710A CN103217642A (zh) | 2013-03-06 | 2013-03-06 | SoC测试中基于进化计算的扫描链平衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100706710A CN103217642A (zh) | 2013-03-06 | 2013-03-06 | SoC测试中基于进化计算的扫描链平衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103217642A true CN103217642A (zh) | 2013-07-24 |
Family
ID=48815602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100706710A Pending CN103217642A (zh) | 2013-03-06 | 2013-03-06 | SoC测试中基于进化计算的扫描链平衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103217642A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008051630A2 (en) * | 2006-04-27 | 2008-05-02 | Bioarray Solutions Ltd. | A transfusion registry and exchange network |
CN102156258A (zh) * | 2011-03-10 | 2011-08-17 | 哈尔滨工业大学 | SoC测试中的基于平均值余量的测试封装扫描链平衡方法 |
CN102230948A (zh) * | 2011-03-17 | 2011-11-02 | 湖北省电力公司电力试验研究院 | 有源式高压直流开关振荡回路参数在线测量系统及其方法 |
CN102819652A (zh) * | 2012-08-22 | 2012-12-12 | 武汉大学 | 一种基于适应性反向差分演化的机械参数优化设计方法 |
-
2013
- 2013-03-06 CN CN2013100706710A patent/CN103217642A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008051630A2 (en) * | 2006-04-27 | 2008-05-02 | Bioarray Solutions Ltd. | A transfusion registry and exchange network |
CN102156258A (zh) * | 2011-03-10 | 2011-08-17 | 哈尔滨工业大学 | SoC测试中的基于平均值余量的测试封装扫描链平衡方法 |
CN102230948A (zh) * | 2011-03-17 | 2011-11-02 | 湖北省电力公司电力试验研究院 | 有源式高压直流开关振荡回路参数在线测量系统及其方法 |
CN102819652A (zh) * | 2012-08-22 | 2012-12-12 | 武汉大学 | 一种基于适应性反向差分演化的机械参数优化设计方法 |
Non-Patent Citations (2)
Title |
---|
朱爱军 等: "基于Biogeography的SoC测试Wrapper扫描链设计算法", 《仪器仪表学报》 * |
许川佩 等: "基于量子进化算法的SoC测试结构优化", 《仪器仪表学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | Weighted-entropy-based quantization for deep neural networks | |
Zhao et al. | Lightweight design of mechanical structures based on structural bionic methodology | |
EP2122542B1 (en) | Architecture, system and method for artificial neural network implementation | |
Lin et al. | Towards fully 8-bit integer inference for the transformer model | |
Kułaga et al. | FPGA implementation of decision trees and tree ensembles for character recognition in Vivado HLS | |
CN106951499A (zh) | 一种基于翻译模型的知识图谱表示方法 | |
Hagemann et al. | Weighted matchings for preconditioning symmetric indefinite linear systems | |
CN107358294A (zh) | 一种基于Elman神经网络的需水预测方法 | |
CN108491925A (zh) | 基于隐变量模型的深度学习特征泛化方法 | |
Hernández-Lobato et al. | Designing neural network hardware accelerators with decoupled objective evaluations | |
CN115238893B (zh) | 面向自然语言处理的神经网络模型量化方法和装置 | |
Drissi et al. | Program language translation using a grammar-driven tree-to-tree model | |
CN110069444A (zh) | 一种计算单元、阵列、模块、硬件系统及实现方法 | |
CN116090191A (zh) | 一种综合气流因素下的海上风机的仿真方法及系统 | |
CN110321493A (zh) | 一种社交网络的异常检测与优化方法、系统及计算机设备 | |
CN114498619A (zh) | 一种风电功率预测方法及装置 | |
Zeni et al. | Optimized implementation of the hpcg benchmark on reconfigurable hardware | |
Jamal et al. | A hybrid CPU/GPU approach for the parallel algebraic recursive multilevel solver pARMS | |
CN103217642A (zh) | SoC测试中基于进化计算的扫描链平衡方法 | |
CN115273237B (zh) | 基于集成随机配置神经网络的人体姿态与动作识别方法 | |
Luszczek et al. | Increasing accuracy of iterative refinement in limited floating-point arithmetic on half-precision accelerators | |
CN116167220A (zh) | 一种综合气流因素下的海上风机的仿真方法及系统 | |
Wu et al. | Performance emulation of cell-based AMR cosmology simulations | |
CN115034372A (zh) | 用于DoA估计的TB-Net硬件加速实现方法 | |
Ibrahim | Extending Data Flow Architectures for Convolutional Neural Networks to Object Detection and Multiple FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130724 |