CN103678075A - 基于自动矢量生成技术的复杂微处理器测试方法 - Google Patents
基于自动矢量生成技术的复杂微处理器测试方法 Download PDFInfo
- Publication number
- CN103678075A CN103678075A CN201310741944.XA CN201310741944A CN103678075A CN 103678075 A CN103678075 A CN 103678075A CN 201310741944 A CN201310741944 A CN 201310741944A CN 103678075 A CN103678075 A CN 103678075A
- Authority
- CN
- China
- Prior art keywords
- test
- microprocessor
- ate
- automatic
- testing
- 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.)
- Granted
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种基于自动矢量生成技术的复杂微处理器测试方法。该方法采用微处理器集成开发工具为测试模型产生可执行模块,并通过自动矢量生成技术产生完备的测试矢量集。测试矢量集包含IEEE1149.1协议,实现在线下载测试代码到被测微处理器并实现仿真控制的功能。依赖于微处理器的不同特点,测试矢量能建立自动测试设备和被测微处理器之间的通信链路,同步调用子程序与测试矢量,实现微处理器的功能测试。微处理器集成开发工具根据被测参数和测试模型生成参数测试步长表,实现微处理器的参数测试。本发明有效减少了微处理器测试的操作环节,降低微处理器的批量生产测试的测试成本。
Description
技术领域
本发明涉及一种微处理器测试方法,尤其涉及一种基于自动矢量生成技术的复杂微处理器测试方法,属于集成电路测试技术领域。
背景技术
集成电路产业包括设计、制造和封装测试三个环节。测试是分析集成电路设计缺陷的最佳手段。通过测试可以保障芯片质量,提高集成电路成品率。最近几十年,集成电路发展日新月异,芯片复杂度成倍提高。尤其在微处理器(MPU)领域,芯片集成度大幅度提高,功能越来越复杂。随着信息技术的发展,微处理器同时也在工业控制、消费电子、网络通信、安全监控、图像处理等领域得到了广泛的应用。因此对于微处理器芯片的测试技术提出了更高的要求。为了缩短芯片的上市时间,还需要缩短测试程序开发周期,提高测试效率。
随着微处理器在各个领域的流行,其测试需求量也日益增加。如何便捷高效地对复杂微处理器进行测试成为亟待解决的问题。然而微处理器内部结构异常复杂,包含各种功能模块和控制单元。测试内容繁多,需要较为庞大的测试资源才能完成其功能和参数测试。目前,微处理器开发人员大多采用集成开发套件开发商提供的软件和调试工具对微处理器进行系统开发和应用整合,主要用仿真器调试和下载程序。对于微处理器的测试,如果采用仿真器下载程序再用自动测试设备(ATE)进行测试,这个过程是相当繁琐的。仿真器与测试机协同工作也并非易事,尤其是在大批量的生产测试中,时间成本变得非常敏感。因此用常规的仿真器调试测试方法,在大批量微处理器测试中是不现实的。
微处理器的仿真调试一般采用IEEE1149.1协议,也称为JTAG接口。一般软件开发套件工具包都提供相应的工具生成可执行模块,在微处理器调试过程中,通过JTAG接口下载程序到微处理器,再通过微处理器内部的边界扫描寄存器实现程序流程控制。因此采用自动测试设备(ATE)上对微处理器的测试,首先模拟一个JTAG链路。生成的测试矢量既含有符合JTAG协议的数据包,又包含测试的激励矢量,自动测试设备只需按给定时钟将测试矢量施加到被测微处理器芯片上即可完成测试。由于微处理器内部结构和功能均异常复杂,手工编写测试矢量是不现实的,尤其是对于超大规模复杂微处理器。而微处理器开发环境可以编写测试程序,生成可执行代码;对可执行代码进行加工处理,生成自动测试设备(ATE)可识别的测试矢量,进而完成对复杂微处理器的测试。但是,现有技术中没有利用微处理器开发工具和自动矢量生成工具测试复杂微处理器的解决方案。
发明内容
针对现有技术的不足,本发明所要解决的技术问题在于提供一种基于自动矢量生成技术的复杂微处理器测试方法。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于自动矢量生成技术的复杂微处理器测试方法,包括如下步骤:
(1)针对被测微处理器,根据结构特性和功能特性建立测试模型,并编写测试代码;
(2)所述微处理器的集成开发工具根据所述测试代码生成可执行模块;同时根据测试参数和所述测试代码得到测试参数和测试步长表;
(3)编写测试流程控制文件、自动测试设备资源分配表以及时序标定表;
(4)自动矢量生成器根据所述可执行模块、所述测试流程控制文件、所述自动测试设备资源分配表以及所述时序标定表生成自动测试设备可识别的测试矢量集;
(5)重复上述步骤(1)~(4),得到n个测试模型对应的测试矢量,其中n为自然数;
(6)根据自动测试设备的测试资源和被测微处理器的管脚数,确定最大并行测试器件数量p,将步骤(2)中测试参数、测试步长表以及步骤(5)中的测试矢量输入所述自动测试设备中,所述p为自然数;
(7)将t个被测微处理器连接到所述自动测试设备,对连接性进行测试,其中t为小于或等于p的自然数;
(8)通过所述自动测试设备对t个被测微处理器提供电源电压,依次执行n次测试过程,完成所述n个测试模型的测试:
(9)自动测试设备关断被测器件电源,处理测试结果,一次测试结束;
(10)重复步骤(7)~(9),直至所有被测试的微处理器完成测试。
其中较优地,所述步骤(1)中,所述测试模型包括复位测试模型、指令集遍历测试模型、通信测试模型和外设协议分析测试模型。
其中较优地,所述步骤(3)中,所述流程控制文件包括测试模式、通信端口、通信方式、通信类型、测试引脚集、参数类型;
所述自动测试设备资源分配表包括通道资源分配,确定电源、时钟方案;
所述时序标定表包括复位时间、IO执行时间、中断响应时间。
其中较优地,所述步骤(4)中,所述自动矢量生成器生成测试矢量的过程如下:
根据所述自动测试设备资源分配表,提取通道资源定义,确定测试矢量宽度;提取时钟方案,计算时序相关的逻辑关系;
根据所述测试流程控制文件,提取通信方式字;
根据所述时钟方案,对通信链路进行编码;
按照所述可执行模块文件的格式,提取可执行代码;
根据微处理器编程接口或程序下载接口的通信协议将可执行代码转化为时序文件;
读取所述时序标定表,在所述时序文件中加入等待和延时,生成完备的测试矢量集。
其中较优地,所述步骤(5)中,每个测试模型都对应得到一个测试矢量。
其中较优地,所述步骤(6)中,当并行测试器件数量p>1时,所述自动测试设备中的每个待测微处理器对应的矢量存储区都置为相同测试矢量。
其中较优地,所述步骤(7)中,连接性测试包括开路测试和短路测试。
其中较优地,所述步骤(8)中的测试过程包括如下步骤:
通过自动测试设备对被测微处理器加载测试矢量,将测试程序下载到微处理器;
对微处理器进行复位操作,使微处理器进入待测状态;
初始化微处理器通信端口,建立微处理器与自动测试设备通信连接;
通过通信端口,向微处理器发出测试指令,微处理器调用测试子程序进入设定的测试模型状态;
自动测试设备对微处理器施加测试矢量,完成测试。
其中较优地,所述步骤(8)中,所述自动测试设备采用JTAG接口或者通信接口控制被测微处理器的运行状态:其中,
采用所述JTAG接口时,根据JTAG仿真测试协议控制微处理器;
采用所述通信接口时,所述自动测试设备和被测微处理器都具有所述通信接口的通信协议和共同的命令格式。
本发明采用微处理器集成开发工具,避免手工编制测试矢量的繁琐操作。在批量测试过程中自动测试设备不需要多次加载程序就能实现每个被测器件的在线程序下载和测试,是微处理器在自动测试设备上测试的一个高效解决方案。本发明有效减少了微处理器测试的操作环节,降低微处理器的批量生产测试的测试成本,节约了测试时间,提高了测试效率。
附图说明
图1为测试矢量盒测试步长的生成过程示意图;
图2显示了测试模型的可执行模块的部分内容;
图3为测试流程控制文件的部分内容示例;
图4显示了自动矢量生成器生成的测试矢量集的部分内容;
图5显示了本发明所采用的仿真控制管脚的时序关系;
图6是自动测试设备批量测试微处理器的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。
本发明所提供的复杂微处理器测试方法采用的基本思路为:首先借助微处理器开发工具,编写或者调用测试模型的代码包,并生成可执行模块;其次通过自动测试设备模拟JTAG接口下载测试代码到微处理器;然后通过JTAG接口或者通信接口控制微处理器的运行状态,同时施加测试矢量,从而实现多个测试模型的测试。本发明通过调用大量可用的测试模型的代码包,自动生成测试矢量,减少测试矢量编制工作量,实现复杂微处理器的高效测试。
本发明采用中高端集成电路的自动测试设备。自动测试设备提供程控电源模块、高速数字通道模块、精密测量单元模块、高速图形控制模块和外围接口模块等。程控电源模块为被测器件提供可编程电源,高速数字通道模块和高速图形控制模块为被测器器件提供测试激励信号并捕捉响应信号;精密测量单元模块为被测器件提供参数测试条件;外围接口模块用于实现批量测试的外部通信。目前,现有的自动测试设备测试频率可达100MHz、测试通道256个、测试矢量图形深度4M,能够满足复杂微处理器测试的硬件要求。
微处理器的测试过程通常包括功能测试和参数测试。其中功能测试是对微处理器的功能模块建立测试模型。根据测试模型验证微处理器的各功能模块的激励与响应。微处理器不同一般逻辑器件,始终处在运行的状态,而非一个固定的逻辑状态。因此微处理器的测试要比一般逻辑器件复杂很多,测试矢量的编制也相对较繁杂。测试矢量不但要确保激励和响应信号逻辑正确,还要保证运行过程的时间参数完全匹配。参数测试则是在微处理器处于某个状态下的参数测量。参数测试分为直流参数测试和交流参数测试,包括输入漏电电流测试、输出驱动电流测试、电源电流测试、传播延迟测试、建立保持时间测试等。参数值按照芯片手册中给定。这些测试可以通过自动测试设备(ATE)的精密测量单元(PMU)和时间测量单元(TMU)实现。对于不同封装微处理器的测试,可以使用不同的测试适配器与自动测试设备连接。而如何利用自动测试设备的测试资源快速、高效地实现微处理器的在线程序下载和测试,是决定量产测试中测试成本的重要因素。
本发明所提供的复杂微处理器测试方法利用了现有的成熟微处理器开发工具,使得微处理器的测试变得相对简单高效。而采用集成电路自动测试设备可以实现微处理器批量自动测试,完全不需人工干预,这在微处理器大规模验证和测试中尤为重要。由于市面上微处理器的种类繁多,本发明可以为微处理器测试产生完备的测试矢量集,实现各种不同类型的微处理器测试。本发明所提供的测试方法主要分为两部分:一是测试矢量集以及测试步长的生成;二是自动测试设备对微处理器进行测试。其中测试矢量集以及测试步长的生成为测试的后台开发步骤,主要由PC实现。而微处理器的测试过程则在自动测试设备中完成。
参见图1,下面以单个测试模型为例对测试矢量的生成过程进行详细介绍。在微处理器的参数测试时,首先要根据不同微处理器的结构和功能设计n(n为自然数)个不同的测试模型。测试模型一般是根据微处理器的功能模块来划分的,包括但不限于复位测试模型、指令集遍历测试模型、通信模型测试模型和外设协议分析测试模型。然后根据相应测试模型的编写测试子程序。在多数情况下,子程序的测试代码是由微处理器开发商提供的。如果没有相应的测试代码,可以在微处理器开发商提供的例程的基础上进行编写。相对于手工编写测试程序的耗时以及复杂,本发明直接采用微处理器的开发商提供的测试子程序,极大的减少了测试程序的研发时间。
待测试模型的代码编写完毕后,利用微处理器集成开发工具,生成测试模型的可执行模块。图2为测试模型的可执行模块的部分内容。根据测试模型的测试代码编写完成后,需在微处理器的集成开发工具中进行编译,生成测试模型的可执行模块。可执行模块在测试时运行于微处理器中。一旦可执行模块被执行,处于测试状态的微处理器与自动测试设备就可以进行数据交互。微处理器的集成的开发工具有很多,本发明中采用的微处理器需要具备的共同点:能够生成intel格式的十六进制可执行模块。对于微处理器的开发工具这里不在进行一一介绍,本发明的一个实施例中采用Keil公司的ARM集成开发环境MDK,具体参见后文。
测试模型的可执行模块生成后,需要对微处理器测试过程中需要的文件进行定义。首先编写测试流程控制文件。图3为测试流程控制文件的部分内容示例。流程控制文件中定义了与微处理器测试相关的项目,包括测试模式、通信端口、通信方式、通信类型、测试引脚集、参数类型等。测试流程控制文件可以采用自定义格式,以便于自动矢量生成器读取相关信息。由于不同微处理器的引脚、通信接口配置不一样,各个引脚需要测试的参数类型不尽相同,因此这些信息需要在测试流程控制文件中定义。其次编写ATE资源分配表,以确定使用哪些通道资源,并确定电源、时钟方案等。由于不同类型的微处理器在测试中需要不同的测试资源,例如时钟、通道、测量模块等。这些测试资源则需要在自动测试设备的资源分配表进行定义。其中资源分配表包括测试资源分配、管脚映射等。最后编写微处理器的时序标定表。根据微处理器的数据手册,确定微处理器执行的时间参数,例如复位时间、IO执行时间、中断响应时间等,得到微处理器时序标定表。不同的微处理器在运行过程中消耗的时间片有比较大的差异,例如复位时间、函数调用过程、中断响应等。为了完成测试,保证运行过程中时间参数的匹配,因此必须给出足够的等待时间。而这些参数由微处理器时序标定表定义。本发明利用这些测试文件对不同的微处理器的参数等进行定义,实现不同类型的微处理器测试。
微处理器的测试模型以及测试文件完成后,自动矢量生成器生成测试矢量集。自动矢量生成器是针对复杂微处理器测试的矢量转换工具。图4所示为自动矢量生成器生成的测试矢量集的部分内容。自动矢量生成器根据各个测试模型的可执行模块、测试流程控制文件、资源分配表以及微处理器的时序标定表,转换成自动测试设备所匹配的测试矢量集。自动测试设备生成测试矢量的过程如下:根据ATE资源分配表,提取通道资源定义,确定测试矢量宽度。提取时钟方案,计算时序相关的逻辑关系。根据测试流程控制文件,提取通信方式字,根据上述时钟方案,对通信链路进行编码。按照可执行模块的格式,提取可执行代码。根据微处理器编程接口或程序下载接口的通信协议将可执行代码转化为时序文件。读取微处理器时序标定表,在上述时序文件中加入等待和延时,生成完备的测试矢量集。测试矢量集包含IEEE1149.1协议,实现在线下载测试代码到被测微处理器并实现仿真控制的功能。依赖于微处理器的不同特点,所生成测试矢量能建立自动测试设备和被测微处理器之间的通信链路。
上面详细介绍了如何产生测试所需的测试矢量。另外,微处理器的测试还包括直流参数测试。根据被测微处理器的数据手册,决定需要测试的直流参数和测试条件。为保证微处理器的状态满足相应的测试要求,必须在对应的测试代码中对微处理器进行设置以满足测试条件,同时给出微处理器稳定处于该状态时对应的矢量步长,得出测试参数和测试步长表。微处理器集成开发环境根据输入的测试参数以及测试模型,产生该测试参数对应的测试步长表。将测试矢量集和参数测试步长表存储到自动测试设备中,就可以进行微处理器的参数测试。
接着介绍在自动测试设备上实现微控制器的自动测试。图6所示为自动测试设备测试实现复杂微处理器自动测试的流程图。
在微处理器测试时,自动测试设备首先进行初始化、自诊断和参数校准。当自我诊断和校准通过后,执行连接性检查。当自动测试设备与被测微处理器建立起仿真通信,表明测试代码已经成功下载到被测微处理器中。随后根据微处理器的配置在自动测试设备与被测微处理器之间建立一个测试指令的传输通道。对于主流的微处理器,可以直接用JTAG仿真测试协议控制微处理器的运行状态,同时对微处理器施加测试矢量进行测试。图5为本发明所采用的微处理器仿真控制管脚的时序关系。而对于某些微处理器,仿真测试协议往往跟一般的仿真控制方式有所区别,或者因仿真协议比较复杂而难于实现。在自动测试设备与被测微处理器之间需建立一个通信链路以传输交互信息。因此本发明也可以采用通信接口对微处理器进行状态控制,例如串口、并口等。采用通信接口时,除符合接口相应的通信协议外,自动测试设备和被测微处理器还满足共同的命令格式。
当测试代码成功下载至被测微处理器且建立通信连接后,自动测试设备就可以施加测试矢量到被测微处理器进行测试。在测试时,测试程序需先将测试子程序载入,而后在子程序执行时施加测试矢量。例如测试指令集的遍历。首先运行的测试程序需将指令集遍历的测试子程序载入被测微处理器中;其次按时钟节拍在相关引脚施加测试矢量,完成指令集遍历测试。再例如功能模块测试。测试程序需先载入功能模块的测试子程序,运行该子程序同时施加测试矢量以完成功能模块的测试。如果当前测试的子程序执行完毕,则继续执行下一个子程序。如果没有可执行子程序,则处理测试结果并生成结果报表。待芯片全部测试完成后结束。需要说明的是,测试程序是预先编制好的。而通过自动矢量生成器生成的测试矢量是将测试子程序的调用和激励矢量的施加在时序上严格配合起来,使之产生测试结果。
以上针对单个测试模型的测试过程进行了详细描述。自动测试在实际量产测试过程中,往往要完成大批量的微处理器自动测试。因此为了提高测试效率,需要进行并行测试。用自动测试设备实现微处理器的批量测试,实际上就是根据不同类型的微处理器的结构和功能设计多个不同的测试模型,然后需要确定自动测试设备的资源配置情况。根据配置情况为微处理器分配尽可能多的并行测试资源,进而实现多个待测器件多次并发执行上述在线编程和测试的步骤,完成微处理器的批量测试。需要说明的是,微处理器的并行测试所需的测试矢量不能简单应用单个器件测试矢量相加的方法来得到,要在测试矢量中插入合适的等待周期以使测试完成的微处理器运行于空闲状态,等待未完成测试的微处理器测试完成才能做下一步的测试。否则,可能导致微处理器运行异常而发生误判。
下面以意法半导体公司的32位微处理器STM32F10X为例,详细介绍对微处理器进行自动测试的过程。
1.建立微处理器测试模型
意法半导体STM32F10X系列32位微处理器基于ARM Cortex-M3内核,支持JTAG仿真测试。要对该系列微处理器进行自动测试,首先要建立测试模型。按微处理器功能模块划分来建立测试模型,并为其编写测试子程序。其中首先微处理器要测试的项目是指令集遍历测试。在编写指令集遍历测试模型的子程序时,要尽可能多执行微处理器的指令集并且设定对应的判别依据。STM32F10X系列微处理器包含丰富的外设,如AD/DA(模数/数模转换)等,还包括UART、SPI等通信外设。通信接口一般都包含相应的通信协议。因此对于通信接口类外设的测试要按通信协议来编写测试矢量。
需要说明的是,各个测试模型的子程序是在总的测试平台模型上运行。而测试平台模型是运行于微处理器上的主程序,完成调用相关子程序和与自动测试设备交互的功能。
2.利用微处理器集成开发工具编译实现测试模型
目前,微处理器开发工具很多,有通用的集成开发环境,也有专用的集成开发工具。本实施例中的STM32F10X系列微处理器采用Keil公司的ARM开发套件MDK来开发。MDK集成开发环境提供了ARM指令集的编译。因此在测试微处理器前,只需用C语言来描述各个测试模型。然后用MDK工具编译产生可执行模块。由于使用集成开发环境,避免了手工汇编甚至用机器码编写测试矢量的繁杂工作,因而节省了大量时间。
3.编写测试流程控制文件
测试流程控制文件定义了与微处理器测试相关的项目,例如测试模式、通信类型、测试引脚集、参数定义等。对于STM32F10X系列微处理器而言,测试流程控制文件包括:输入时钟频率为10MHz;采用微计算机模式工作状态下进行测试;仿真接口采用JTAG;通信接口采用UART2接口,并设定其波特率为115200,数据格式为8位数据、1位停止位、偶校验方式;时钟产生方式为归零方式;所有通用IO引脚都进行参数测试;微处理器初始化时间为20ms。
4.分配ATE资源,标定微处理器关键时序
对于多种微处理器,测试之前要分析采用的ATE可用的测试资源和被测器件的情况,以正确分配测试资源。本实施例中采用的自动测试设备具有256通道、16路程控电源,32个精密测量单元。被测器件STM32F10X的管脚数为100,除去电源和接地引脚外,需要84个通道。因此可以自由分配测试资源,如果要实现并行测试,则最多可以实现2个器件并行测试。
在测试过程中,为了正确测试各个引脚的参数,必须预留足够的等待时间以使各个引脚在测试时处于正确状态。本实施例中要对通用IO引脚的响应时间进行标定,其最小响应时间必须大于500微秒才能得到可靠的测试结果。此外,为了产生正确的JTAG时序,也要按STM32F10X数据手册对TCK的频率、上升沿时间、下降沿时间、TDI建立时间、保持时间、TDO响应时间等做相应的标定。
5.自动矢量生成器生成测试矢量
自动矢量生成器将多个测试模型的可执行模块、流程控制文件、ATE资源分配表和微处理器时序标定表输入到自动矢量生成器中,转换成自动测试设备能够识别的测试矢量集。其中一个测试模型对应一个测试矢量。由于微处理器的测试过程是一个动态过程,不像一般的逻辑器件具有固定的逻辑关系,因此,矢量的合成算法要比逻辑器件繁杂许多,在此不进行详述。
6.自动测试设备上实现自动测试
将生成的测试矢量加载到自动测试设备的矢量存储器中;自动测试设备首先进行自诊断和参数校准,直到设备就绪。然后先检查连接性,避免开路、对地和电源短路以及各个引脚之间短接。接着自动测试设备开始执行测试矢量。首先自动测试设备将包含IEEE1149.1协议的测试矢量加载到STM32F10X的JTAG端口,测试程序被下载到STM32F10X中。测试程序下载完成后,自动测试设备对STM32F10X进行复位操作。然后初始化通信端口UART2,在自动测试设与STM32F10X之间建立通信链路。通信链路建立后,自动测试设备依次执行各个测试模型的测试矢量同时下发指令到STM32F10X以调用对应的子程序,直到所有测试模型测试完成。
为达到高效批量测试的目的,在批量测试之前要分析ATE可用的测试资源和被测器件的情况,确定最大的并行测试器件数量p(p为自然数)。在多个待测微处理器进行并行测试时,将上述的测试矢量一次性施加到ATE的矢量存储区域中。在批量测试中,首先将t(t为小于或等于p的自然数)个被测试的微处理器连接到自动测试设备,对连接性进行测试(包括开路测试和短路测试)。然后自动测试设备中的每个待测微处理器对应的矢量存储区都置为相同测试矢量,并行执行一个测试矢量,完成预期的功能、参数测试。重复这样的操作,依次执行ATE矢量存储区中测试矢量,将矢量存储区的测试矢量都执行一遍,就完成了一次测试。自动测试设备关断被测器件电源,处理测试结果,一次测试结束。如有微处理器测试未完成,则等待其测试完成才能做下一步的测试。
另外,根据用户需求,一般都要对微处理器恢复到清空状态。此时,需要调用相关的子程序和测试矢量对被测器件进行擦除操作。值得指出的是,有些微处理器内部存储器写操作需要指令验证,在生成测试矢量前必须按照芯片数据手册上相关说明操作才能正确完成内部存储器的烧写和擦除。本发明所提供的微处理器测试方法仅需向ATE加载一次测试矢量,每个被测试的微处理器仅需与ATE连接一次,就可以实现多个测试模型的测试。通过并行测试技术,显著提高了芯片的测试效率。
综上所述,本发明尤其适合微处理器大规模批量测试。采用微处理器集成开发工具,避免手工编制测试矢量的繁琐操作。在批量测试过程中自动测试设备不需要多次加载程序就能实现每个被测器件的在线程序下载和测试,是微处理器在自动测试设备上测试的一个高效解决方案。其中测试程序的开发相对灵活易于实现:先期可以利用普通计算机进行模拟调试,直到生成测试矢量集后再在自动测试设备上进行调试测试。整个测试期不需人工干预,操作简单测试效率高。本发明有效减少了微处理器测试的操作环节,降低微处理器的批量生产测试的测试成本,节约了测试时间,提高测试的效率。
上面对本发明所提供的基于自动矢量生成技术的复杂微处理器测试方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (9)
1.一种基于自动矢量生成技术的复杂微处理器测试方法,其特征在于包括如下步骤:
(1)针对被测微处理器,根据结构特性和功能特性建立测试模型,并编写测试代码;
(2)所述微处理器的集成开发工具根据所述测试代码生成可执行模块;同时根据测试参数和所述测试代码得到测试参数和测试步长表;
(3)编写测试流程控制文件、自动测试设备资源分配表以及时序标定表;
(4)自动矢量生成器根据所述可执行模块、所述测试流程控制文件、所述自动测试设备资源分配表以及所述时序标定表生成自动测试设备可识别的测试矢量集;
(5)重复上述步骤(1)~(4),得到n个测试模型对应的测试矢量,其中n为自然数;
(6)根据自动测试设备的测试资源和被测微处理器的管脚数,确定最大并行测试器件数量p,将步骤(2)中测试参数、测试步长表以及步骤(5)中的测试矢量输入所述自动测试设备中,所述p为自然数;
(7)将t个被测微处理器连接到所述自动测试设备,对连接性进行测试,其中t为小于或等于p的自然数;
(8)通过所述自动测试设备对t个被测微处理器提供电源电压,依次执行n次测试过程,完成所述n个测试模型的测试:
(9)自动测试设备关断被测器件电源,处理测试结果,一次测试结束;
(10)重复步骤(7)~(9),直至所有被测试的微处理器完成测试。
2.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(1)中,所述测试模型包括复位测试模型、指令集遍历测试模型、通信测试模型和外设协议分析测试模型。
3.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(3)中,所述流程控制文件包括测试模式、通信端口、通信方式、通信类型、测试引脚集、参数类型;
所述自动测试设备资源分配表包括通道资源分配,确定电源、时钟方案;
所述时序标定表包括复位时间、IO执行时间、中断响应时间。
4.如权利要求1所述的复杂微处理器测试方法,其特征在于所述步骤(4)中,所述自动矢量生成器生成测试矢量的过程如下:
根据所述自动测试设备资源分配表,提取通道资源定义,确定测试矢量宽度;提取时钟方案,计算时序相关的逻辑关系;
根据所述测试流程控制文件,提取通信方式字;
根据所述时钟方案,对通信链路进行编码;
按照所述可执行模块文件的格式,提取可执行代码;
根据微处理器编程接口或程序下载接口的通信协议将可执行代码转化为时序文件;
读取所述时序标定表,在所述时序文件中加入等待和延时,生成完备的测试矢量集。
5.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(5)中,每个测试模型都对应得到一个测试矢量。
6.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(6)中,当并行测试器件数量p>1时,所述自动测试设备中的每个待测微处理器对应的矢量存储区都置为相同测试矢量。
7.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(7)中,连接性测试包括开路测试和短路测试。
8.如权利要求1所述的复杂微处理器测试方法,其特征在于所述步骤(8)中的测试过程包括如下步骤:
通过自动测试设备对被测微处理器加载测试矢量,将测试程序下载到微处理器;
对微处理器进行复位操作,使微处理器进入待测状态;
初始化微处理器通信端口,建立微处理器与自动测试设备通信连接;
通过通信端口,向微处理器发出测试指令,微处理器调用测试子程序进入设定的测试模型状态;
自动测试设备对微处理器施加测试矢量,完成测试。
9.如权利要求1所述的复杂微处理器测试方法,其特征在于:
所述步骤(8)中,所述自动测试设备采用JTAG接口或者通信接口控制被测微处理器的运行状态:其中,
采用所述JTAG接口时,根据JTAG仿真测试协议控制微处理器;
采用所述通信接口时,所述自动测试设备和被测微处理器都具有所述通信接口的通信协议和共同的命令格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741944.XA CN103678075B (zh) | 2013-12-27 | 2013-12-27 | 基于自动矢量生成技术的复杂微处理器测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741944.XA CN103678075B (zh) | 2013-12-27 | 2013-12-27 | 基于自动矢量生成技术的复杂微处理器测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678075A true CN103678075A (zh) | 2014-03-26 |
CN103678075B CN103678075B (zh) | 2018-04-06 |
Family
ID=50315719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741944.XA Active CN103678075B (zh) | 2013-12-27 | 2013-12-27 | 基于自动矢量生成技术的复杂微处理器测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678075B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104515947A (zh) * | 2014-12-12 | 2015-04-15 | 中国电子科技集团公司第五十八研究所 | 可编程逻辑器件在系统编程的快速配置与测试方法 |
CN106445817A (zh) * | 2016-09-09 | 2017-02-22 | 网易(杭州)网络有限公司 | 测试数据的处理方法、装置和系统 |
CN106598840A (zh) * | 2016-10-25 | 2017-04-26 | 南京航空航天大学 | 基于软件自测试技术的慢速外设高效测试架构及方法 |
CN112799887A (zh) * | 2020-12-17 | 2021-05-14 | 珠海泰芯半导体有限公司 | 一种芯片ft测试系统以及测试方法 |
CN114546451A (zh) * | 2022-02-28 | 2022-05-27 | 重庆长安汽车股份有限公司 | 一种基于文件上传的对mpu端程序内部参数进行标定的方法 |
CN115291082A (zh) * | 2022-08-04 | 2022-11-04 | 北京京瀚禹电子工程技术有限公司 | 芯片的高效测试方法、装置和存储介质 |
US11966783B1 (en) * | 2021-08-13 | 2024-04-23 | Sync Computing Corp. | Real time scheduling using expected application resource usage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007970A1 (en) * | 1999-12-28 | 2001-07-12 | Kabushiki Kaisha Toshiba | Automatic test vector generation method, test method making use of the test vectors as automatically generated, chip manufacturing method and automatic test vector generation program |
CN102466776A (zh) * | 2010-11-19 | 2012-05-23 | 北京自动测试技术研究所 | 面向复杂可编程逻辑器件的批量测试方法 |
CN102818986A (zh) * | 2012-08-20 | 2012-12-12 | 桂林电子科技大学 | 混合信号电路边界扫描测试系统及测试方法 |
-
2013
- 2013-12-27 CN CN201310741944.XA patent/CN103678075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010007970A1 (en) * | 1999-12-28 | 2001-07-12 | Kabushiki Kaisha Toshiba | Automatic test vector generation method, test method making use of the test vectors as automatically generated, chip manufacturing method and automatic test vector generation program |
CN102466776A (zh) * | 2010-11-19 | 2012-05-23 | 北京自动测试技术研究所 | 面向复杂可编程逻辑器件的批量测试方法 |
CN102818986A (zh) * | 2012-08-20 | 2012-12-12 | 桂林电子科技大学 | 混合信号电路边界扫描测试系统及测试方法 |
Non-Patent Citations (1)
Title |
---|
尚玉玲等: "模拟信号扩展互连测试自动测试矢量生成研究", 《计算机测量与控制》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104515947A (zh) * | 2014-12-12 | 2015-04-15 | 中国电子科技集团公司第五十八研究所 | 可编程逻辑器件在系统编程的快速配置与测试方法 |
CN106445817A (zh) * | 2016-09-09 | 2017-02-22 | 网易(杭州)网络有限公司 | 测试数据的处理方法、装置和系统 |
CN106445817B (zh) * | 2016-09-09 | 2018-11-27 | 网易(杭州)网络有限公司 | 测试数据的处理方法、装置和系统 |
CN106598840A (zh) * | 2016-10-25 | 2017-04-26 | 南京航空航天大学 | 基于软件自测试技术的慢速外设高效测试架构及方法 |
CN112799887A (zh) * | 2020-12-17 | 2021-05-14 | 珠海泰芯半导体有限公司 | 一种芯片ft测试系统以及测试方法 |
US11966783B1 (en) * | 2021-08-13 | 2024-04-23 | Sync Computing Corp. | Real time scheduling using expected application resource usage |
CN114546451A (zh) * | 2022-02-28 | 2022-05-27 | 重庆长安汽车股份有限公司 | 一种基于文件上传的对mpu端程序内部参数进行标定的方法 |
CN114546451B (zh) * | 2022-02-28 | 2024-05-24 | 重庆长安汽车股份有限公司 | 一种基于文件上传的对mpu端程序内部参数进行标定的方法 |
CN115291082A (zh) * | 2022-08-04 | 2022-11-04 | 北京京瀚禹电子工程技术有限公司 | 芯片的高效测试方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103678075B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046387B (zh) | 一种基于uvm的sm2模块验证平台及验证方法 | |
Krstic et al. | Embedded software-based self-test for programmable core-based designs | |
CN102466776B (zh) | 面向复杂可编程逻辑器件的批量测试方法 | |
US9910086B2 (en) | Test IP-based A.T.E. instrument architecture | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
CN109472061B (zh) | 一种可重用的仿真验证平台及仿真验证方法 | |
US8281280B2 (en) | Method and apparatus for versatile controllability and observability in prototype system | |
WO2014113376A1 (en) | Test ip-based a.t.e. instrument architecture | |
CN102521444A (zh) | 软硬件协同仿真/验证方法及装置 | |
CN103678075A (zh) | 基于自动矢量生成技术的复杂微处理器测试方法 | |
US20020173942A1 (en) | Method and apparatus for design validation of complex IC without using logic simulation | |
CN112182837A (zh) | 一种基于FPGA的继电保护专用多核SoC软硬件协同验证平台 | |
CN109426594A (zh) | 一种芯片调试装置、方法及计算机可读存储介质 | |
CN102608517A (zh) | 一种创建集成电路测试程序包的快速方法 | |
CN114089165A (zh) | 一种基于ate的c8051f芯片在线测试方法 | |
CN114757135A (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
CN103440133A (zh) | 一种芯片测试软件的开发方法和系统 | |
CN106970787A (zh) | 一种汽车控制器快速原型实现方法 | |
Feng et al. | Design and application of reusable SoC verification platform | |
Chen et al. | An Efficient Protocol Framework Solution on V93000 | |
Mostardini et al. | FPGA-based low-cost automatic test equipment for digital integrated circuits | |
Appello et al. | On the automation of the test flow of complex SoCs | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
Liang et al. | Python based testbench for coverage driven functional verification | |
Fogarty et al. | On‐chip support for software verification and debug in multi‐core embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |