一种ICE自动化测试系统及测试方法与流程

文档序号:11154849阅读:1099来源:国知局
一种ICE自动化测试系统及测试方法与制造工艺

本发明属于自动化测试技术领域,特别涉及一种基于现场可编程阵列的在线仿真器自动化测试系统及方法。



背景技术:

在线仿真器(ICE)也称为硬件仿真器,属于MCU开发过程中使用的与芯片等效物理装置。其产品的特性就是要严格逼近真实芯片的功能特性、电气特性以及物理特性等。用户使用该设备以及其配套的IDE开发环境,能快速的进行嵌入式编程、交叉编译、实时仿真调试等。该类设备一般具备可重构的特性,即一个ICE,通常能模拟多款MCU芯片的特性。

然而,随着ICE兼容的芯片类型越来越多,产品的测试成为了一项工作量无比庞大的事情。因为每个MCU芯片本身的功能的非常之多,而且测试步骤包含流片前的RTL验证、模数混合验证、FPGA验证以及流片后的样品测试、CP测试等等。ICE作为另外一个独立的产品,其测试工作量自然也同比增长。那么如何通过自动化测试的方式,实现测试Case的递归和遍历,减少测试人力的投入,称为ICE产品开发过程中非常重要的问题。

如专利申请201510617717.5公开了一种用于ICE的MCU仿真方法,该方法通过CS-SIM主模块和CS-SIM从模块来实现,其中ICE的CPU以及CS-SIM主模块集成在FPGA中,CS-SIM从模块集成于目标芯片中;CS-SIM主模块通过监控CPU的SFR总线,在CPU读写模拟相关寄存器的同时,将SFR信息通过CS-SIM总线写入到目标芯片当中;目标芯片中通过CS-SIM从模块接收SFR信息完成SFR配置,最终将模拟输出映射到IO口上,实现芯片内部数模接口到ICE数模接口的等效替换。然而,CS-SIM主模块和CS-SIM从模块并没有记录ICE的型号及各种应用程序,对于不同的ICE产品测试,就需要重新进行所有的测试步骤,不可避免地带来资源和成本的浪费,影响测试的效率。



技术实现要素:

基于此,因此本发明的首要目地是提供一种ICE自动化测试系统及测试方法,该自动化测试系统和测试方法,能实现所有ICE支持型号的数字功能测试,同时也能扩展支持芯片的FPGA自动化验证和样片的数字自动化测试。

本发明的另一个目地在于提供一种ICE自动化测试系统及测试方法,该自动化测试系统和测试方法能减少测试人力的投入,减少了手动操作,大大缩短了测试流程,提高了测试效率。

为实现上述目的,本发明的技术方案为:

一种ICE自动化测试系统,所述测试系统包含上位机和下位机两大部分,其中:

所述上位机使用脚本作为测试系统的中央控制台,并存放了ICE型号库、程序用例库(FC,Firmware Case)、TB用例库、以及测试用例库(TC,Test Case);

所述下位机包含:DUT(Device Under Test)ICE本身和TB(Test Board)测试板,DUT是程序用例的硬件载体,TB充当系统的DUT输入激励X的信号发生器和DUT输出结果Y的信号测量仪等测试组件;

所述上位机和下位机通过API接口进行通信。

上位机主要包括有控制脚本,TC,FC和API(Application Programming Interface),控制脚本通过调用RBF文件对DUT和TB进行硬件重构,调用MSCL(Microsoft Compiler)编译测试用例TC生成EXE可执行文件,调用CSCL(ChipSea Compiler)交叉编译程序用例FC生成HEX文件,TC通过API加载FC到DUT中实现软件重构,并执行某种数字功能的测试。

下位机主要包括USB接口,DUT板和TB板,DUT由CPLD,FPGA和GPIO电路和CS-SIM主模块构成,通过CPLD对FPGA进行配置时序,快速重构,实现DUT的硬件重构,DUT再通过加载FC实现软件重构,并通过CS-SIM主模块产生总线C对TB进行激励配置和测量配置,通过GPIO电路接收信号激励和产生响应信号;TB由CPLD,FPGA和GPIO电路和CS-SIM从模块构成,通过CPLD对FPGA进行快速重构,实现可重构式测试组件;TB通过CS-SIM从模块接收总线C的配置信息后,调用测试组件对DUT输出信号激励X和接收输出结果Y。

进一步,所述TB,其通过USB接口与上位机进行通信,通过GPIO接口与GPIO电路进行通信,通过CS-SIM接口(C口)与DUT进行通信。

更进一步,所述C口是一个主从模式的串行总线,CS-SIM从模块将其转为BIU并行总线,X信号产生所需要的模块,如G0信号号产生器、G1序列产生器,以及Y信号的测量模块,如M0频率测量计、M1脉宽测量计等都挂载在BIU总线上。另外,如果DUT包含以下标准接口,如UART、I2C、SPI等,也可以在BIU中挂载对应标准接口模块。

由于DUT是可重构的,GPIO引脚排布变化多样。在TB中,只有C口引脚的位置是固定的。X引脚和Y引脚的位置随着DUT配置的变化而变化。

因此在TB中,存在一个GPIO复用阵列,以及GPIO外设模块;GPIO复用阵列可以将任意G、M、S模块的输入输出分配到任意GPIO外设模块中,GPIO外设模块用于配置任意GPIO引脚的输入、输出、上下拉等模式,GPIO的分配和配置也是通过将GPIO复用阵列及GPIO外设模块挂载在BIU总线上实现的。

所述上位机采用perl脚本作为整个测试系统的胶水语言,能自动有序的调用API对DUT和TB进行硬件重构,再调用编译器对FC代码进行自动编译和下载。

上位机测试启动后,主要的测试流程为:

101、第一步访问ICE型号库选择指定型号对DUT进行硬件重构;

102、第二步访问TB型号库选择合适的TB型号对TB进行硬件重构(可选);

103、第三步访问程序用例库对DUT的程序区进行软件重构;

104、第四步调用指定的测试用例开始运行测试。

ICE从硬件上划分,主要可以分为3大功能模块:仿真模块、内核模块、以及外设模块。因此,CS-ATS测试方法可以分为3大类:

1)仿真功能测试。对于该类测试,不需要进行上述测试流程的第102步。而测试用例主要通过API读写DUT的程序区、数据区、寄存器、PC指针等,以及调用单步、断点运行、全速运行仿真命令等,来模拟用户在IDE上操作过程。对于该类测试,每一个测试用例匹配一个合适的程序用例,测试激励和断言都在测试用例中体现。

2)内核功能测试。对于该类测试,不需要进行上述测试流程的第102步。对于该类测试,每一个程序用例,共用一个固定的测试用例,测试激励和断言都在程序用例中体现。

3)外设功能测试。对于该类测试,每一个程序用例,共用一个固定的测试用例,测试激励在TB中体现,测试断言在程序用例中体现。

本发明所实现的自动化测试系统和测试方法,能实现所有ICE支持型号的数字功能测试,减少测试人力的投入,很大程度上减少了手动操作,大大缩短了测试流程。并且自动化输出测试日志,方便测试人员快速发现问题,进而修复芯片设计。

附图说明

图1是本发明所实施的结构原理图。

图2是本发明所实施的结构示意图。

图3是本发明所实施的TB逻辑架构图。

图4是本发明所实施的脚本测试流程图。

图5是本发明所实施的测试用例测试流程图。

图6是本发明所实施的程序用例测试流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1所示,为本发明所实施一种ICE自动化测试系统的原理图,图中,所述测试系统包含上位机和下位机两大部分,其中:

上位机使用脚本作为测试系统的中央控制台,并存放了ICE型号库、程序用例库(FC)、TB用例库、以及测试用例库(TC)。

下位机包含:DUT和TB测试板,DUT是程序用例的硬件载体,TB充当系统的DUT输入激励X的信号发生器和DUT输出结果Y的信号测量仪等测试组件。所述上位机和下位机通过API接口进行通信。

结合图2所示,上位机主要包括有控制脚本,TC,FC和API,控制脚本通过调用RBF文件对DUT和TB进行硬件重构,调用MSCL编译测试用例TC生成EXE可执行文件,调用CSCL交叉编译程序用例FC生成HEX文件,TC通过API加载FC到DUT中实现软件重构,并执行某种数字功能的测试。

下位机主要包括USB接口,DUT板和TB板,DUT由CPLD,FPGA和GPIO电路和CS-SIM主模块构成,通过CPLD对FPGA进行配置时序,快速重构,实现DUT的硬件重构,DUT再通过加载FC实现软件重构,并通过CS-SIM主模块产生总线C对TB进行激励配置和测量配置,通过GPIO电路接收信号激励和产生响应信号;TB由CPLD,FPGA和GPIO电路和CS-SIM从模块构成,通过CPLD对FPGA进行快速重构,实现可重构式测试组件;TB通过CS-SIM从模块接收总线C的配置信息后,调用测试组件对DUT输出信号激励X和接收输出结果Y。

TB,其通过USB接口与上位机进行通信,通过GPIO接口与GPIO电路进行通信,通过CS-SIM接口(C口)与DUT进行通信。

图3所示为TB的逻辑架构图,结合图3所示,C口是一个主从模式的串行总线,CS-SIM从模块将其转为BIU并行总线,X信号产生所需要的模块,如G0信号号产生器、G1序列产生器,以及Y信号的测量模块,如M0频率测量计、M1脉宽测量计等都挂载在BIU总线上。另外,如果DUT包含以下标准接口,如UART、I2C、SPI等,也可以在BIU中挂载对应标准接口模块。

由于DUT是可重构的,GPIO引脚排布变化多样。在TB中,只有C口引脚的位置是固定的。X引脚和Y引脚的位置随着DUT配置的变化而变化。因此在TB中,存在一个GPIO复用阵列,以及GPIO外设模块;GPIO复用阵列可以将任意G、M、S模块的输入输出分配到任意GPIO外设模块中,GPIO外设模块用于配置任意GPIO引脚的输入、输出、上下拉等模式,GPIO的分配和配置也是通过将GPIO复用阵列及GPIO外设模块挂载在BIU总线上实现的。

上位机采用perl脚本作为整个测试系统的胶水语言,能自动有序的调用API对DUT和TB进行硬件重构,再调用编译器对FC代码进行自动编译和下载。

同时,上位机采用C++作为编写测试用例,直接调用ICE提供的API接口,可以快速友好的访问ICE设备。采用ICE支持的汇编语言编写程序用例,并通过API加载到DUT的程序区中。

下位机则采用ICE主板电路直接作为TB测试板的硬件电路,使其支持快速重构、GPIO复用等多种ICE具备的特性。并通过重构数字逻辑实现DUT所需的各类测试组件。

而且,下位机选用CS-SIM接口作为TB配置通道的标准接口。DUT通过该接口快速配置TB中的测试组件产生测试信号,以及读取TB中测试组件的测试结果。

同时,选用一主多从的总线架构方式实现TB各类测试组件的集成,使用一种GPIO复用阵列模块实现各类测试组件输入输出的引脚动态分配。

上位机测试启动后,主要的测试流程为:

101、第一步访问ICE型号库选择指定型号对DUT进行硬件重构;

102、第二步访问TB型号库选择合适的TB型号对TB进行硬件重构(可选);

103、第三步访问程序用例库对DUT的程序区进行软件重构;

104、第四步调用指定的测试用例开始运行测试。

测试方法可以分为3大类:

1)仿真功能测试。对于该类测试,不需要进行上述测试流程的第102步。而测试用例主要通过API读写DUT的程序区、数据区、寄存器、PC指针等,以及调用单步、断点运行、全速运行仿真命令等,来模拟用户在IDE上操作过程。对于该类测试,每一个测试用例匹配一个合适的程序用例,测试激励和断言都在测试用例中体现。

2)内核功能测试。对于该类测试,不需要进行上述测试流程的第102步。对于该类测试,每一个程序用例,共用一个固定的测试用例,测试激励和断言都在程序用例中体现。

3)外设功能测试。对于该类测试,每一个程序用例,共用一个固定的测试用例,测试激励在TB中体现,测试断言在程序用例中体现。

由此,结合到脚本、TC和FC,具体情况如下:

如图4所示,脚本流程为:控制台执行脚本,加载RBF进行DUT硬件重构,若判断测试类型是外设测试,则还需要加载Rbf进行测试组件的重构。接着调用CSCL编译FC,加载FC到DUT中实现软件重构,调用MSCL编译TC,执行TC给出测试激励,读取DUT响应结果,控制台判断并给出测试结果。

DUT的程序加载和调试运行动作是有TC控制实现的。TC流程图如图5所示,所有测试用例TC使用类似的流程,先初始化DUT参数,再加载运行在DUT中的程序用例FC。然后开始执行仿真调试命令,如单步、复位、调试运行、设置断点等。执行之后可以通过读取DUT的相关状态信息,如PC值、RAM区内容、ROM区内容等判断DUT工作是否工作正常等。

数字外设的测试分输入类和输出类,输入类为TB给出信号激励,DUT输出响应结果,TB进行测量。输出类为DUT输出信号到TB进行测量。两种类型都需要进行MCU数字外设的初始化和测试组件的初始化,然后根据具体测试的数字功能进行选择激励模块和测量模块。数字外设测试FC流程图如图6所示。

因此,本发明所实现的自动化测试系统和测试方法,能实现所有ICE支持型号的数字功能测试,减少测试人力的投入,很大程度上减少了手动操作,大大缩短了测试流程。并且自动化输出测试日志,方便测试人员快速发现问题,进而修复芯片设计。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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