一种快速测试调度方法与流程

文档序号:12746965阅读:1053来源:国知局

本发明属于测试调度技术领域,尤其涉及一种快速测试调度方法。



背景技术:

SoC的测试问题包括内核的测试环优化、TAM优化和测试调度问题。测试调度算法是指在TAM带宽固定的前提下,协同优化测试包与TAM找到最优化的测试包设计、TAM带宽分配和IP测试启动时间,以缩短测试时间。研究人员采用了多种启发式算法,包括遗传算法、模拟退火算法等。研究给出了一种详细的测试调度方案,它允许在测试功耗和测试时间之间进行折中,同时可以避免布局布线上的局部区域功耗过大的问题。文中考虑了很多约束,其中包括:各内核的总功耗,物理/结构上的功耗分布,时序要求和ATE总线宽度的限制等等,但是没有考虑通用资源的共享问题。采用最短路径算法,给出了一种基于嵌入式内核设计的系统芯片测试调度算法,虽然考虑了通用测试资源的统一调度问题,但是没有考虑功耗约束和多时域问题。设计了多频率的测试环结构实现At-Speed的可测试性,提出了优化TAM和测试包结构下的多时钟SOC测试调度方法,这两篇文章虽然考虑了多时域时钟的问题,但仅限于SCAN测试,而且没有考虑共享资源和功耗等问题。



技术实现要素:

本发明就是针对上述问题,提供一种测试时间短、测试成本低的快速测试调度方法。

为实现上述目的,本发明包括以下步骤。

1)将m个测试资源,记作jR(j=1,2,……m),被测试对象是n个电路模块,记作iC(i=1,2……n),各个模块的测试相互独立。

2)设m1测试n2,记作T[1][2],设置四个特征,测试时间t[1][2],测试功耗P[1][2],测试速率比S[1][2]和测试优先关系Pre[1][2];如果R2不可以测试C3,则记T[2][3]的时间、功耗、速率比和优先关系均为-1。

3)使m个测试资源对n个测试对象进行并行测试。

作为一种优选方案,本发明约束条件为。

1)一个被测试对象在同一时间内只允许分配给一个测试资源;一旦某个测试对象开始测试,必须连续执行到结束。

2)不同被测试对象不能同时共用一个测试资源。

3)如果测试任务之间存在先后执行的关系,后执行的任务必须在先执行的任务结束后才能进行,但不一定要紧接着执行。

4)并行测试的总功耗不超过最大功耗。

5)当某个测试资源的测试频率变化时,用该资源进行测试的测试任务对应的测试时间和测试功耗也随之变化;测试时间与测试频率成反比,动态功耗与测试频率成正比。

作为另一种优选方案,本发明画出m*n的有向无闭环图,无效的任务用阴影表示;另外引入两个点,起点S和终点D;某一列上的任意有效节点Tij指向下一列的有效节点ikT(+1),j<k<m;每个测试资源的调度用起点S到终点D的路径来表示;m个测试资源对应m条并行队列;队列的长度表示在对应资源上所有测试任务的总测试时间,最长的队列长度决定调度的总测试时间;测试调度问题转化为寻找从S到D的最短路径问题。

另外,本发明所述步骤3)使m个测试资源对n个测试对象进行并行测试;各个并行测试的模块的总功耗不超过一个额定值max。

本发明有益效果。

随着SoC集成度的不断提高,内嵌芯核的数量不断增加,芯核的测试时间也不断延长,因此降低芯片的测试成本也成为芯片提供方必需解决的问题。基于芯核的SoC测试调度问题是一个NP问题。本发明将SoC调度问题视为一个求解单向最短路径问题,并采用改进的遗传算法进行求解,同时在算法中考虑了无冲突和优先顺序条件,以及在不超过最大功耗的前提下进行多时域时钟的测试。基于ITC’02的模拟数据和实际芯片的仿真数据的计算结果表明,本发明提出的算法不仅能解决大规模的SoC测试调度问题,还能在多个条件限制下得到较优解。

具体实施方式

本发明包括以下步骤。

1)将m个测试资源,记作jR(j=1,2,……m),被测试对象是n个电路模块,记作iC(i=1,2……n),各个模块的测试相互独立。

2)设m1测试n2,记作T[1][2],设置四个特征,测试时间t[1][2],测试功耗P[1][2],测试速率比S[1][2]和测试优先关系Pre[1][2];如果R2不可以测试C3,则记T[2][3]的时间、功耗、速率比和优先关系均为-1。

3)使m个测试资源对n个测试对象进行并行测试。

本发明约束条件为。

1)一个被测试对象在同一时间内只允许分配给一个测试资源;一旦某个测试对象开始测试,必须连续执行到结束。

2)不同被测试对象不能同时共用一个测试资源。

3)如果测试任务之间存在先后执行的关系,后执行的任务必须在先执行的任务结束后才能进行,但不一定要紧接着执行。

4)并行测试的总功耗不超过最大功耗。

5)当某个测试资源的测试频率变化时,用该资源进行测试的测试任务对应的测试时间和测试功耗也随之变化;测试时间与测试频率成反比,动态功耗与测试频率成正比。

本发明画出m*n的有向无闭环图,无效的任务用阴影表示;另外引入两个点,起点S和终点D;某一列上的任意有效节点Tij指向下一列的有效节点ikT(+1),j<k<m;每个测试资源的调度用起点S到终点D的路径来表示;m个测试资源对应m条并行队列;队列的长度表示在对应资源上所有测试任务的总测试时间,最长的队列长度决定调度的总测试时间;测试调度问题转化为寻找从S到D的最短路径问题。

所述步骤3)使m个测试资源对n个测试对象进行并行测试;各个并行测试的模块的总功耗不超过一个额定值max。

SoC包含多个嵌入式内核,有数字电路、模拟电路、存储器电路和用户自定义的模块等。嵌入式芯核作为测试对象,测试时所需要的硬件结构称为测试资源,包括测试源、测试宿、测试访问机制和测试环等。测试对象可以单独使用一套测试资源,也可以和其它测试对象分时串行使用或同时并行使用。本发明主要研究的是不同测试对象分时串行使用相同测试资源以及不同测试资源同时并行工作的情况。在同一个测试时间段内,如果两个测试对象共用一个测试资源,那么就会发生资源冲突,这是并行测试过程必须考虑和避免的问题。

遗传算法(GA)是借鉴于生物进化规律演化而成的随机化搜索方法,由Holland于1975年系统地阐述了它的基本理论和方法。遗传算法的内在隐并行性和很好的全局寻优能力,使其被人们广泛地应用于组合优化、信号处理、自适应控制和人工生命等领域,是现代智能计算中的关键技术之一。下面将详细介绍如何将遗传算法应用于SoC芯核的测试调度中。

解码后的目标串是没有任何约束条件下的测试序列,我们将在参照此工序序列上考虑资源冲突问题来计算出它的总测试时间。由于所有测试资源是并行进行的,测试资源占用最长的时间就是总测试时间,也是目标函数值。

每个任务都有自己的开始时间和结束时间。每个测试资源的初始化时间为0,表示没有任务。任务的开始时间是测试资源的空闲时间,即没有执行其它任务或该资源上前一个任务的结束时间。如果该时间点上,该任务所属的芯核有其它任务正在执行,那么该任务需等待其它任务结束后在进行,而其开始时间也变为其它任务的结束时间,而测试资源的空闲时间到任务的开始时间之间多了一段空余的等待时间。当所有任务执行完成后,每个测试资源的测试时间就是在该资源上执行的任务结束最晚的时间。而最长的测试资源就是本次测试调度所需的总时间,也就是目标函数值。

以上内容是结合具体的优选实施方式对本发明作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明所提交的权利要求书确定的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1