新闻中心

EEPW首页>EDA/PCB>设计应用> 基于软件测试技术的FPGA测试研究

基于软件测试技术的FPGA测试研究

作者: 时间:2011-08-01 来源:网络 收藏

一样,在的开发阶段,就扮演着验证和确认的角色。但不同的是,的每一个综合环节的输出结果都是一种对设计的形式化表示方法,不但可以通过静态的方法检查验证,而且有强大的仿真工具能够支持在开发阶段对各个综合环节进行动态仿真验证,这样更有利于尽早发现缺陷,减少缺陷修改的成本。

而在阶段,在真实环境下,自底向上依次进行门级、单元级、元件级和系统级测试,以分别对门级模型、RTL模型、行为模型和系统需求进行验证。

(1)门级测试:验证基本逻辑门的正确性。
(2)单元测试:的单元包括并行代码块,以及顺序代码中进程、函数和过程。在这一级别的测试中,对RTL模型规定的各单元功能、逻辑、接口等逐项进行测试。
(3)元件测试:在FPGA开发中,将具有一定功能和接口的电路封装成的可复用单元称为元件(component),通过对元件的例化和连接构成具有更复杂功能的元件,直到构成整个系统。在元件测试中,通过元件的输入输出接口,对元件的行为进行验证。元件测试包括对元件集成的测试,从对最底层元件测试开始,是一个自底向上逐层集成的过程。
(4)系统测试:针对完整的FPGA系统的测试,验证FPGA系统对规定的功能、性能等需求的满足性。
在FPGA系统开发过程中,逻辑综合和结构综合过程基本通过综合工具由计算机自动完成,开发者主要是依据仿真结果进行修改与优化;而在自然语言综合和行为综合中,需要大量的人工介入,是缺陷引入的主要环节,也是FPGA测试的重点。

3.2 测试类型

测试相同,FPGA测试可分为静态测试和动态测试。静态测试包括文档审查、代码审查、静态分析、代码走查等类型。在代码审查中,除了进行测试的相关检查项外,还包括检查代码运行时序的正确性、代码的鲁棒性和代码的可综合性。而在代码走查中,需要沿程序的时序和信号流两个相关维度,验证代码的动态执行情况。
动态测试不但沿用软件测试中一般采用的逻辑测试、功能测试、性能测试、接口测试、强度测试、余量测试、安全性测试、恢复性测试、边界测试、数据处理测试等,还包含FPGA系统特有的下载与配置测试、鲁棒性测试等。

(1)下载与配置测试:测试系统是否能够正确实现程序的下载和芯片的配置。一般需要进行不同目标芯片和编程方式的下载与配置测试,对可重构FPGA系统重构能力的测试。

(2)鲁棒性测试:验证系统能否避免干扰和冲突得到稳定而可靠的输出测试,一般需要测试输出电平的稳定性、输出逻辑的确定性及系统抗电磁干扰的能力。

3.3 测试方法与测试环境

白盒测试和黑盒测试是软件测试中的两大方法,在FPGA测试中同样适用。除此之外,由于嵌入式逻辑分析仪的支持,使得灰盒测试在FPGA测试中具有很好的应用前景。

(1)白盒测试是结构性测试方法,根据代码的内部特征设计、选择测试用例。FPGA的白盒测试一般在仿真环境下进行,可分为代码仿真、门级仿真和时序仿真。代码仿真不考虑硬件特性,输出理想情况下源代码执行结果,具有直观、速度快的特点,可以在设计的最初阶段尽早发现问题;门级仿真是针对代码综合后生成的门级网表或是实现后生成的门级模型进行的仿真,可以检验综合或实现后对系统或模块功能的满足性。时序在门级仿真的基础上加入时延文件即时序仿真,时序仿真能够比较真实地反映逻辑的时延与功能,但对于逻辑量大的系统耗时较长。

(2)黑盒测试是一种功能性测试方法,只测试产品对功能、性能等需求的满足性,而不考虑产品的内部结构和处理过程。软件测试中的测试方法和测试环境可以对FPGA中的组合逻辑进行有效的测试。而对于时序逻辑,测试环境还包含了对动态输入、动态数据采集的支持,以及对采集数据的比较分析。在测试用例的设计中,规定系统输入、输出随时间变化的趋势,并对特殊的评价方法和通过准则进行定义。

(3)目前主流的FPGA开发工具都提供了嵌入式逻辑分析仪工具,使得灰盒测试成为了可能。嵌入式逻辑分析仪的原理是在FPGA真实运行环境内部,利用冗余的芯片资源,将预制的系统内部信号实时通过接口输出。这样就可以在软件真实运行中,监视软件内部的信号、变量和状态,避免了由于输入输出域信息丢失以及容错环节造成的代码缺陷无法暴露的问题,提高了FPGA代码的测试性[7]。

4 应用实例

以软件测试为基础的FPGA已经得到了成功的应用。对某数字调制解调系统进行了测试,该系统以Altera公司EP1C3T144芯片为宿主机,采用VHDL语言编写,实现了偏移四相相移键控(OQPSK)的调制、解调功能。
测试项目组对该系统在元件级、系统级进行了测试,包括静态分析、代码审查、逻辑测试、功能测试、性能测试、边界测试、鲁棒性测试、安全性测试等测试类型,其中:

(1)静态分析采用HDL Designer工具进行了编码规则检查,共分析出违反编码规则43处,其中2处存在代码问题,得到了正确的修改,25处影响了代码的可读性和维护性,提出改进建议,均进行了相应处理。

(2)代码审查发现代码问题4处,均为代码和设计文档不一致所造成,全部修改正确,并提出一处影响逻辑门资源使用效率的改进建议。

(3)元件测试采用Altera Modelsim工具在仿真环境下进行,共设计测试用例95个,全部执行通过。

(4)系统测试环境由任意波形发生器Agilent 33250A、逻辑分析仪Agilent 16902B和示波器Agilent MS09404构成动态测试环境,如图2所示,设计测试用例48个,其中33个规定了输入、输出信号的动态时序,测试用例全部执行通过。

经过测试以及相应的修改和回归,该FPGA系统代码质量和可靠性得到了提高,系统功能、性能得到了验证。
软件在FPGA测试中的成功应用,有效解决了FPGA系统的测试问题。通过测试,提高了硬件描述语言的编写质量和系统的可靠性,并对FPGA的电路行为进行了有效的验证。动态测试时序测试用例的自动生成,以及系统输出波形与预期的自动比较和判断,将成为未来进一步研究的重点。随着FPGA系统在各关键领域的进一步普及,以软件测试为基础的FPGA测试将具有更广阔的应用前景。

本文引用地址://m.amcfsurvey.com/article/191084.htm

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭