1. 引言
目前,进口的DSP处理器都是封装测试后的芯片,对于一些可靠性要求比较高的像航天、汽车电子等领域,需要对进口来的芯片进行二次测试;但测试模式对国内用户保密,导致芯片在二次测试时无法通过进入测试模式实现对芯片的测试。国内也有一些对该类型进行测试的方法研究。例如基于应用模式的DSP测试方法 [1],提出了使用测试机代替实装测试板测试的新方法;针对MCU测试,基于ATE的一种MCU测试方法 [2],提出一种创新型测试方法,能够大大减少MCU重复烧写次数;DSP结构与测试方法研究 [3],研究了由测试系统模拟外部程序存储器加载程序的并行测试算法。基于覆盖率驱动的高性能指令集验证方法 [4],利用面向对象特性、随机约束求解机制以及覆盖率统计机制,提出一种快速搭建覆盖率驱动的随机测试平台的方法。目前看到测试方法基于理论性的研究比较多,在实现方面应用性不强;针对实用性和易实现性,本文提出一种新的基于ATE的DSP测试解决方案,该方案既可以实现DSP的高覆盖率测试要求,也能较简单地实现。并且在CATT-400 ATE测试设备中验证了该方案的可行性和可靠性;DSP与测试系统是两个不同的时钟源,这个也是测试的难点,也是本论文解决的问题。
2. 测试概述
2.1. CATT-400测试系统介绍
CATT-400是由北京冠中集创科技有限公司自主研发的大规模集成电路数字测试系统,系统的最大优点就是数模混合测试系统,可以进行DC测试、功能测试和AC测试,具有测试精度高、速度快等特点。系统设计采用模块化结构设计,每通道板可提供64路管脚电路和8路DPS电路,系统最大配置为8块通道板512路测试通道,最大测试速率为400 MHz,系统具有Per Pin PMU特性。本测试系统有较强的失效分析功能,设计有每通道失效存储器,用于失效分析,失效向量深度可达到128 M。系统具有动态定时功能,每通道可以设置时间参数,时间分辨率为1.25 nS。适用于IC生产厂家进行芯片测试或成品检验。目前该系统已经用在高端DSP、FPGA、SOC等芯片的测试。该系统的结构框图如图1所示。系统采用光纤通讯方式可以解决通信干扰和误码率的问题,增加系统控制的可靠性。
2.2. DSP测试介绍
DSP是一款用于控制的高性能、多功能、高性价比数字处理芯片。芯片内部结构比较复杂,外围单元比较多,增加了测试的复杂性和测试覆盖率问题。对该DSP芯片既要进行直流参数测试,功能测试,也要对该芯片的交流参数测试。

Figure 1. Structure diagram of test system
图1. 测试系统结构图
直流参数包括:GPIO管脚以及其它功能管脚的开短路测试、漏流测试、电平测试、动态功耗和静态功耗测试等;
功能测试:GPIO管脚的输入输出功能测试、各个协议(SPI、SCI等)功能测试、指令集、外部总线接口等测试;
交流参数测试:主要是datasheet里面的各个管脚的上升时间,管脚之间的时间延时测试、各种协议的时序测试等。
每一项测试都要编写测试程序,并要考虑测试覆盖率的问题,覆盖率越高,对芯片测试的可靠性也越高。DSP测试项目如表1所示。

Table 1. Project requirements DSP test
表1. DSP测试项目要求
3. DSP测试平台
本测试以美国TI公司的TMS320F28xx芯片作为开发产品介绍。
3.1. TMS320F28xx结构图 [5] [6]
结构框图如图2所示,它的基本功能如下:
-SCI (串行通信接口)
-SPI (串行外设接口)
-UART (通用串行接口)
-12-bit,16通道ADC
-Mc BSP (多通道带缓冲串行口)
-eCAN (增强型CAN模块)
-独立的32位定时器
-独立编程的GPI O管脚
-外部扩展接口
通过结构框图可以看出这一类型的DSP芯片的功能比较强大、比较多;每种功能又包括很多工作模式和参数设置,在正常应用这些功能时,这些工作模式都可能用到,在测试时,要把这些模式都覆盖掉。像SCI接口测试,即包括可编程波特率又包括可编程数据格式;在对这个功能测试时,要有多种组合,不同波特率和不同数据格式组合,实现对该功能的全覆盖测试。
3.2. 测试硬件组成结构
在测试过程中,被测芯片DSP是放在测试夹具里面,芯片的引脚通过测试夹具的进行连接。测试夹具是焊接在一个PCB板上,夹具的每个管脚通过与PCB板上的插座相连,PCB板上插座插在CATT-400测试系统上,与测试系统的测试接口连接。TMS320F28xx的测试资源主要用到测试系统的IO通道、DPS通道和地。芯片的GPIO管脚及其它功能的管脚与测试系统的IO通道连接,电源VCC与测试系统的DPS通道连接,地与测试系统的地连接,连接接口如图3所示。

Figure 3. The connection of test hardware
图3. 测试硬件连接
4. 测试方法介绍及实现
对于测试直流和AC测试实现起来比较容易,覆盖率都是固定的,该方法就不做介绍了。下面就对功能实现方法进行介绍。
4.1. 需要开发工具
在测试开发过程中,主要用到以下几个工具:
CCS Studio 3.3:TI DSP开发环境,编译环境是C语言 [5] [6] [7] [8] [9];
JTAG:TI DSP仿真器,可以把DSP生成的程序通过JTAG下载到DSP中去;
Catt-400 tool:CATT-400开发环境;包括测试程序开发、向量生成工具、校准工具等。
4.2. 测试方法介绍
测试方法对于dsp部分来说 [10] [11],都是在C语言环境下进行的,比较容易掌握。对于TMS320F28xx系列来说,需要功能测试项如表2所示。
芯片测试分两类 [12],一类是外部接口部分测试,该部分测试是在CCS开发环境中把接口的功能用C语言编程,包括每个功能的寄存器设置、协议发送和接受数据的格式、数据的模式等。在与测试机交互部分编写pattern,每段pattern对应C语言的每个功能,pattern对应功能的协议和数据与C语言编写的协议要对应上。
一类是芯片内部存储单元和运算单元,这类功能用C语言编程,对指令部分,编写复杂的运算包括一些算法操作数的组合和复杂的浮点运算,使DSP的算法指令都给覆盖上;内部存储单元采用往存储单元里写一些有规律的数据进行访问,保证每个存储单元都被访问到;每个功能测试的结果通过GPIO接口传到测试系统,由测试系统的pattern来判断结果是否正确。
在这些测试方法中,对于C编程测试部分是把所有的功能都和在一个程序里,每个功能的执行通过相应的GPIO高低电平来控制的,这样可以解决DSP与测试设备不同时钟源的问题;外部通过测试机的pattern控制对应的GPIO,来执行不同的功能。
0——该功能不执行
1——该功能执行
4.3. 测试方法实现
实现主要有以下几个步骤:
1) 根据硬件连接图,确定每个芯片管脚与软件对应关系;软件对应关系是通过excel进行列出来的,如图4所示。
2) 根据DSP功能,编写CCS程序;首先选择GPIO控制管脚,选择的这个GPIO管脚为输入管脚。例如选在GPIOA0;在CCS里编程如下:
while(GpioDataRegs.GPADAT.bit.GPIOA0==0)
{}
while(1)
{
If (GpioDataRegs.GPADAT.bit.GPIOA0==1)
{
{
加入测试功能
}
}
else
{
break;
}
3) 编程测试pattern和测试程序
根据DSP功能,来编写测试机pattern;例如:SPI协议,可以利用pattern生成工具生成TMS320F28xx的测试机可以执行pattern。利用对应的GPIO的通道进行控制是否执行SPI测试协议;在CATT-400环境下编写测试程序;CATT-400环境如图5所示。
4) 调试
前面生成的文件有两个,一个是ccs生成的.out文件,这个是DSP的可执行文件,一个是测试机的测试程序文件。在调试过程中是这两个程序相互配合来完成。调试过程中执行以下几个操作:
a) 把CCS生成的DSP程序通过JTAG下载到DSP中去,运行程序;
b) 在CATT-400 debug模式下进行debug某一项功能,看测试结果,是否pass,如果fail再修改,直至pass;
c) 调试其它功能,直至把所有的功能都调试完;
d) 把所有的测试项放在一个测试流程里,看测试是否全pass,如果fail,调试一直pass为止;
e) 收集数据,看稳定性,如果稳定了,就可以进行产品测试了。
通过以上几个流程的开发就可以实现对DSP的高覆盖率测试,流程图如图6所示。
4.4. 测试结果分析
通过测试流程编程的方法,编写测试程序,在测试机台上进行测试验证,测试结果见图7显示部分测试结果;通过测试结果验证了该测试方法的可行性,并且把DSP的功能测试都能实现,提高了测试的覆盖率。
5. 结论
该文提出了一种解决DSP测试的方法,该方法既解决了DSP原来测试覆盖率低的问题,可以通过与测试机的配合,完成DSP各种功能的程序编写并在机台上验证,也为不同时钟源的测试提供了一种新的解决方法;利用C语言对DSP进行测试编程比较方便,更接近于芯片的应用状态;提高了对芯片测试可靠性的测试要求。
NOTES
*通讯作者。