×
嵌入式 > 技术百科 > 详情

IP核的芯片级测试结构研究

发布时间:2022-03-29 发布时间:
|
内容摘要 分析了芯片级测试的特点以及与传统板级测试区别,对soc测试结构的核心部分测试访问机制(tam)和wrapper进行了详细的论述,分析了系统级芯片的测试结构及其优化。

1 引言

片上系统已经发展成为当今的一种主流技术。为了有效地利用设计资源,加快上市时间,这种基于核的设计将ic设计界分成核供应商与系统集成商,系统集成商通过购买不同厂商的ip,直接加以整合复用来降低设计与制造成本。但这种设计给测试带来了新的特点与挑战:①由于各个ip核的测试开发是由不同的ip厂商提供的,因此需要用于传递核测试信息的测试语言以及用于测试访问的核测试环结构的标准制定(ieeep1500标准);②由于核是深深地嵌入到系统中的,而测试是在soc的管脚进行的,因此需要一个从核的端口到芯片i/o的测试通道,这也是soc测试结构研究的焦点;③soc级测试优化问题。

2 板级测试与芯片级测试

在传统的板级测试中,一般ic都已由其厂商测试过,因此系统集成商主要进行的是互连测试。其中最有效的方法之一就是边界扫描测试,即ieee1149.1。为了解决板级的互连测试,边界扫描测试需要加额外的逻辑电路。它的每个边界扫描单元是加在引脚处的移位寄存器。把所有数字边界扫描单元串接起来就构成了一个可以串行移位的边界扫描链。这个链在tap(测试存取口)控制器的控制下工作,完成互连及其他测试。而对于系统芯片,ip核供应商只是对其进行过功能测试,没有经过生产测过,只有当整个芯片集成后才进行生产测试,对于系统集成商来说,互连测试与核内部测试就显得同等重要了。但ip核是内嵌在芯片内的,因此,以何种方式将预先存在的测试程序装载进去,即soc测试访问机制(tam),就成为芯片级测试的关键。根据芯片级测试这些特点,提出了一种有效的模块化测试方法。

3 模块化测试结构

模块化测试指的是把ip核隔离和分组,访问被隔离的各个ip核,然后进行测试数据传送的过程。模块化测试的测试访问结构一般有激励源、响应分析器、测试环以及测试访问机制(图1),其中测试环用来隔离ip核,而tam用来在测试激励源和响应分析器之间传送测试激励与响应。因此,在芯片级测试中,测试环以及测试访问机制的设计及优化占有非常重要的地位。

3.1 测试环及其优化soc的测试环是核和tam之间的接口,它不仅为核提供了恰当的测试访问通路以加载测试激励和获取测试响应,同时还保证了核与核之间的测试隔离。测试环还为芯片提供在正常的功能模式、核扫描测试模式、核测试复位模式以及核与核之间的互连测试模式之间进行切换的能力。目前国际上对测试环己经进行了深入的研究。testshell以及testcollar是两种典型的测试环的实现。它们也是实现testrail和testbus两种tam结构的基础[1,2]。

ieee1500工作组自1997年就致力于嵌入式核测试标准的制定,p1500的工作主要在两个方面[3,4]:用于传递核测试信息的测试语言以及用于测试访问的核测试环结构的标准制定。核测试语言是一种为实现ip核复用开发的用来表示与测试相关信息的语言,核提供者通过核测试语言直接向核使用者提供测试相关信息。p1500测试环主要有三个组成部分:测试环单元、测试环指令寄存器(wir)以及一位旁路寄存器。图2给出的是一种带有两条平行扫描链的核。这种结构可以包含任何dft/bist,也可以仅有功能测试的向量。该核还具有边界扫描型的环绕寄存器,可以通过串行数据输入stpi(输出stpo)访问,或者通过并行数据输入mtpi[0:2](输出mtpo[0:2])访问。a[0:4]与z[0:2]为功能数据输入和输出。sc为测试模式下的动态扫描允许信号,wc[5:0]为测试环控制信号,它一般由芯片级测试控制器给出。

测试环优化主要通过一种扫描链的平衡设计来实现,使每条扫描链经过的寄存器的位数尽可能相等,目前已成为测试环优化的研究焦点。设si为该测试环的最长扫描输入链的长度;so为该测试环的最长扫描输出链的长度;p为测试图形的数量,则该核的测试时间

因此,只有同时下降si和so,即扫描输入输出链要尽量平衡,t才会下降。如图3就是扫描链平衡前后的两种测试核结构。design_wrapper算法[5]是实现测试环优化的一种有效方法,它是基于bestfitdecreasing启发式算法,该算法主要有三个部分组成:①分割内部扫描链,使测试环最长的扫描链的长度最小;②按①创建的扫描链方法给该扫描链分配功能输入单元;③按①创建的扫描链方法给该扫描链分配功能输入输出单元,其①部分的算法描述如下 将内部扫描链长度按降序排列

for每个内部扫描链l

{

find最大长度的测试环扫描链,记为smax

find最小长度的测试环扫描链,记为smin

把内部扫描链l分配给测试环扫描链s,使得{length(smax)–(length(s)+length(l))}为最小

if不存在这样的测试环扫描链s

把l分配给smin

}

实验结果表明,该算法可以较好的实现扫描链的平衡,优化效果良好。

3.2 测试访问机制及其优化tam是soc测试结构的核心部分。现在最流行的两种可行的tam结构为测试总线和测试干线,它们都是基于三种基本结构:多路技术结构、菊花链结构和分配结构[6]。

测试总线结构是多路技术结构与分配结构的结合,单根测试总线在本质上等同于多路技术结构,每根测试总线在同一个时刻只能访问一个核。因此,连在同一根测试总线上的核只能按顺序测试。它还具有分配结构的性质,可允许多根测试总线独立操作。但它同时存在多路选择技术的缺点,不能同时访问测试环,因此,核的外部测试变得很困难或者不可能实现。

测试干线结构是菊花链和分配结构的结合,单根测试干线在本质上等同于菊花链结构,连在同一根测试干线上的核可以同时测试也可以按顺序测试,它也同时具有分配结构的性质,允许多根测试总线独立操作,这种结构也支持并行与串行两种测试调度。 在tam结构中,固定宽度tam是指将分配到tam上的核与该tam上的所有线相连;可调宽度的tam指将该tam看成一个可分的整体,该核只连接该tam线的一部分。图4给出了三种tam结构。

由于tam在测试结构中的重要地位,tam的优化就显得尤其重要。目前soc测试结构优化算法大多都是基于固定宽度测试总线结构以及假定核的扫描链是固定的。利用整数线性规划(ilp)的规划能力和遗传算法的空间搜索能力都是优化tam的有效方法[7,8]。对于可调宽度的多路结构以及固定宽度的testrail结构的优化,一般也都是基于启发式的算法[9]。

由于tam与测试环有着紧密的联系,就有必要对测试环和tam进行共同优化,优化前,需要将问题一般化为pnpaw[5],即①确定soc的tam数;②在指定tam数的条件下,确定每条tam的宽度;③将核分配给各个tam;④对每个核进行测试环设计,使soc测试时间最小。尽管已经证明这些都是np-hard问题,但ilp和穷举法以及运用有效的启发式算法都能达到共同优化的目的,取得一定的效果。

4 结束语

wrapper,tam以及测试集成的优化问题是芯片级测试的核心问题,设计合理与否直接影响着系统集成商硬件成本的花费、ate的测试时间以及测试数据量。但目前soc设计和测试都还处在起步阶段,还有许多工作要做,如soc可测性设计,也是解决芯片级测试的有效手段。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
FPGA及CPLD应用领域不断拓展