SoC电路的自动测试方法研究

2019-09-11 02:56金晶晶
微处理机 2019年4期
关键词:程序开发自动测试启动

金晶晶

(中国电子科技集团公司第四十七研究所,沈阳110032)

1 引 言

片上系统(System on Chip, SoC)是将微处理器、模拟IP 核、数字IO 和存储器集成在同一块芯片上形成的一种面向特定用途的标准产品。Silicon Laboratories 公司出品的C8051F500-IQ 即是一款集成数模混合信号的SoC 电路,具有与MCS-51 完全兼容的高速流水线结构的内核(可达50MIPS),提供在系统全速调试接口,内嵌稳压器、片上复位、电源监控、时钟振荡器、数字外设(Timer,UART,CAN 等)和模拟外设(基准源,比较器,ADC)。作为一款典型的SoC 电路,C8051F500-IQ 可以满足系统控制、逻辑运算、信号处理的单片集成处理的需求,在工业控制、便携式仪器、汽车电子等领域得到了广泛应用。与通用集成电路相比,C8051F500-IQ 所包含的外设和电参数在种类和数量上都很多,为保证其工作的可靠性,必须进行可靠的测试。在测试程序开发过程中,如何设置测试状态、施加激励,是提高测试速度、保证测试效果必须要解决的问题[1-2]。

故此,提出一种基于自动测试系统的SoC 电路测试方法。基于对自动测试程序开发流程的介绍,设计其启动程序和自动测试程序,给出基于自动测试系统的自动测试方案,以实现对功能和性能的全面评价。

2 测试程序开发流程

2.1 MTP与ATP开发流程

集成电路自动测试程序的开发通常可归纳为主动测试流程(Master Test Plan, MTP)和应用测试流程(Applicatinon Test Plan, ATP)两类[3-4]。使用MTP方法时,被测器件工作在测试模式,通过执行相对应的测试向量,评估被测器件的功能和性能。使用MTP 方法,可以对某个外设单元的功能和某类性能独立测试,所测试的功能和性能与应用指标可能不一致,但是存在一定联系。MTP 测试方法主要针对自主研发的电路,测试向量相对简化,具有较高的测试效率。但是这种测试方法需要设计模型的支撑,对于已产品化的电路,缺乏这种支撑,因此,一般不应用MTP 方法进行已成型产品的测试程序开发。

使用ATP 方法进行测试程序开发时,需要根据被测器件的功能和性能编写测试向量。自动测试系统执行该测试向量,使被测器件工作在待测状态。在此基础上,自动测试系统施加要求的激励,并监测被测电路的工作状态。应用ATP 方法开发测试程序时,需要单独对每个参数和每个模块的工作状态编写测试向量并设置独立的测试项,自动测试系统基于这些测试向量完成功能和性能测试。测试向量及测试项的数量很多,测试效率较低。但对于已产品化的电路,必须基于ATP 的方法进行测试程序开发。对于成品电路通常使用该方法。

2.2 SoC测试程序开发流程

作为整个系统的控制中心和运算中心,SoC 通过运行用户设计的代码实现设定功能。根据这一特点,可以编写指令代码,使SoC 工作在特定模式,用于功能和性能的测试。自动测试系统检测SoC 的这种工作状态,施加激励信号,采样输出结果,如果输出结果符合设定要求,则器件工作正常,否则判定器件出现故障,需要分析原因进行剔除。基于SoC 电路可以运行程序工作在指定状态的特点,可以采用ATP 方法进行SoC 电路的自动测试程序的开发。

执行相应代码,使SoC 电路工作在指定状态,是进行SoC 电路测试时最先进行的一步,这些代码的总和可以称为启动程序。SoC 执行启动程序后,需要告知自动测试系统被测器件已经准备好,自动测试系统即可施加激励检测被测器件的输出结果,自动测试系统所执行的测试流程称为自动测试程序。

启动程序和自动测试程序之间需要握手信号保证同步性。在完成一项功能或参数的测试后,启动程序需要一个复位和选择的过程,用于保证被测电路可以可靠地进行下一个功能和参数的测试。综上所述,SoC 的自动测试流程如图1 所示。

图1 SoC 电路测试流程图

3 自动测试程序设计

3.1 启动程序设计

为保证对C8051F500-IQ 进行可靠的全面测试,在设计启动程序时,要对所有片上资源进行配置并进行测试,当一种资源的测试完成后加入一个复位操作,保证下一个资源的测试能够正常进行。C8051F500-IQ 内部集成内核(存储器、指令集、中断、电源监控电路等)、内部振荡器、时钟乘法器、模拟外设(多路选择器、ADC、温度传感器、电压比较器、电压调整器、电压基准等)和数字外设(数字端口、外部存储器接口、定时器、UART、IIC、SPI、PCA等),其结构如图2 所示。

图2 C8051F500-IQ 结构框图

根据C8051F500-IQ 的结构框图,启动程序的设计需要考虑所列模块的功能模式及对应电参数的需要,尽量在进入某种功能的测试模式后便能完成电参数的测试,提高测试效率[5]。

在进行启动程序设计时需要考虑和自动测试系统的同步问题,包括时序同步和测试功能同步两部分。时序同步的作用是通知自动测试系统被测器件已经进入到可测试的模式,自动测试系统即可施加激励进行测试;功能同步的作用是将当前被测器件的状态告知自动测试系统,自动测试系统可以按照自动测试程序的测试项,对被测电路施加激励检测电路输出状态。启动程序基于Silliconlab IDE 软件开发,其流程如图3 所示。

图3 启动程序流程

3.2 测试程序设计

集成电路自动测试系统是集成了电源、测量单元、信号发生器、采样等测试测量单元的大型自动测试设备,通过程序化控制,能够在一次测试过程中完成被测电路的全部功能和参数测试并形成测试记录,适用于半导体电路的量产测试。

C8051F500-IQ 电路执行启动程序后,已经进入了一种可测试的模式,如果告知自动测试系统被测电路现在正处于何种测试模式,自动测试系统就可以施加相应激励,测量执行结果[6]。因此,在自动测试程序设计过程中,被测电路与自动测试系统如何进行握手,怎样判断被测电路工作在何种方式,施加何种激励进行测试是需要解决的主要问题。

根据C8051F500-IQ 能够自主运行的特点,通过向自动测试系统输出命令字,自动测试系统收到命令字后即可判断被测电路当前工作在何种模式,随后执行自动测试程序中相应的测试项,即可完成施加激励和测试工作。自动测试程序的设计流程如图4 所示。

图4 测试程序流程

4 自动测试的实现

4.1 测试配置

C8051F500-IQ 包含模拟和数字模块,其中12位ADC 的1LSB 为0.36mV(基准源电压为1.5V),振荡器的精度要求在100MHz,所以需要选择一台具备模拟和数字测量单元且具有高速度和高精度特点的自动测试系统[7-8]。UltraFLEX 是一款面向高速高精度混合信号测试领域的大规模集成电路自动测试系统,1MHz 的总谐波失真为-78dB,对频率的测量范围可达800MHz,满足C8051F500-IQ 的测试需求,因此在该自动测试系统上进行自动测试程序开发,自动测试程序分为功能测试和参数测试两部分。

被测电路上电复位后顺序执行启动程序和自动测试程序,完成一项功能或电参数的测试,并输出测试结果,软件复位后再进行下一个功能和电参数的测试,直至所有功能和电参数的测试完成。在编写自动测试程序的测试项时,有些测试项,如复位阈值的测试,是不能通过直接施加激励信号得到结果的,需要利用UltraFLEX 的底层编程功能,对BBAC、DCVI、PPMU 等单元进行设置,完成电压、电流、比较时间的扫描测试。

4.2 测试结果

基于UltraFLEX 自动测试系统编写C8051F500-IQ 的自动测试程序。此测试程序共有1300 个测试项,其中功能测试项8 类,直流参数测试项46 类,交流参数测试项9 类,在每类测试项中包含了电源电压以及端口电压的拉偏条件。配合高、低温试验箱,可以对电路进行全温区条件下的全部功能和参数的测试,测试时间约27s。

利用该测试流程对30 只C8051F500-IQ 进行测试,筛选出不合格产品2 只。将2 只产品在验证板上进行对比测试,发现不合格产品的失效项以及失效情况与自动测试结果一致。

5 结束语

根据SoC 产品和自动测试设备的特点,设计了启动程序和测试程序,在UltraFLEX 自动测试系统上完成C8051F500-IQ 的全参数自动测试。试验结果表明,该方法实现了C8051F500-IQ 产品的全参数自动测试并有效剔除不合格产品,对于同类SoC产品的自动测试程序开发有借鉴意义。

猜你喜欢
程序开发自动测试启动
故障录波装置自动测试系统设计与实现
基于CANoe的商用车SAE J1939网络自动测试方法
直升机某型舵机自动测试系统设计分析
浅析大学生在兼职小程序开发中遇到的问题
APP应用程序开发模式探究
《悦读·家》暨“悦读·家@万家”活动启动
利用OpenGL技术实现网格波动效果界面
电启动机的正确使用
面向射频系统级封装的自动测试系统
西部最大规模云计算中心启动