摘要:FPGA在可编程嵌入式系统领域起到了至关重要的作用。FPGA不仅内部结构复杂,而且随着电路集成规模和管脚规模的日渐剧增,针对FPGA的测试的难度逐渐加大。在分析和比较主流测试方法的基础上,结合实际项目中的设计,介绍了基于硬环境的FPGA测试平台的整体架构和各模块的功能,突出测试平台的动态性和测试的完备性。
关键词:FPGA;测试平台;架构;动态性;完备性
中图分类号:TN791 文献标识码:A 文章编号:1009-3044(2013)01-0198-02
1 概述
随着信息技术和电子技术的快速发展,可编程嵌入式系统的发展已经逐渐渗透到我国各行各业的产业结构中,与人们的生活息息相关的农业、工业、信息产业等嵌入式系统都展现出了至关重要的作用。随着芯片需求规模的增大和生产成本的提高,传统的可编程嵌入式芯片已经不能满足生活和生产的需要,FPGA(Field Programmable Gate Array)现场可编程门阵列迅速的发展起来。FPGA解决了针对于可编程器件的技术难题,定制电路的资源浪费和操作效率低以及逻辑门电路资源不足。动态可重构的特性使得FPGA在实际的生产操作中灵活可控,而且无需专门的操作系统而是利用逻辑处理的专用器件是FPGA的另一大优势。
FPGA带来了革命性的科技进步,然而针对于FPGA测试的工作量和难度仍然很大。究其原因在于,FPGA内部结构复杂,目前FPGA主要测试方法为完全基于软环境的FPGA测试方法和基于ATE的FPGA测试方法,其中完全基于软环境的FPGA测试又主要体现在静态测试和仿真测试,静态测试包括HDL设计规范性检查,静态时序分析,HDL代码审查;仿真测试包括功能仿真和布局布线后仿真。环节太多给测试工作带来极大不便,有一环节出现很小的错误都可能对整个测试的结果产生很大的影响。同样针对于ATE的FPGA测试方法主要原理是对FPGA进行针对性的配置,然后针对其进行测试。这种针对于ATE的测试方法虽然是对于FPGA特定的功能性检验,在面向应用的FPGA测试中发挥着较大作用,但是仍然存在着测试覆盖率不足的问题,同时测试费用相对较高,而且灵活性较差,不太适合用于科学研究。基于以上分析,作为本文主要阐述对象的基于硬环境的动态FPGA软硬件协同仿真测试既解决了完全基于软环境FPGA测试的复杂性和不精确性,充分利用硬件提供其硬环境达到精确仿真,同时又解决了基于ATE的FPGA测试的覆盖率不足和配置信息不能灵活的动态更新的问题。
2 测试方法
本文提出的FPGA测试思想来源于实际项目,项目采用的FPGA动态硬件测试平台是为完成FPGA软件在真实硬件环境下实施动态测试而研制的通用硬件平台。采用开环的设计模式和黑盒测试的思想,模拟和观测被测FPGA的外部信号特征,完成对其测试。[1][2]整体设计架构为:测试者可以通过在上位机的波形编辑器编辑需要的图形化的观测需要被验证的信号,被编辑成功的信号的数据文件经过存储和处理完成格式转换生成测试信号的DSP代码即测试向量生成的必要数据,DSP接受并根据波形编辑信号的数据生成测试向量,通过产生命令控制功能测试板的主FPGA芯片、通用模块FPGA、输出选通FPGA以及整个测试过程的控制,主FPGA芯片通过DSP生成的测试向量转化成测试的物理信号,多种FPGA配置方式完成对被测FPGA的配置,被测FPGA生成的测试响应信号在DSP控制信号的控制下通过输出选通FPGA进行信号选通以及一系列数据处理和采集传回上位机反映给测试者,整个过程灵活可控,测试者可以根据自己的需要在上位机上选择需要的信号来观察和编辑。
3 测试系统设计
测试系统的设计工作主要划分为三大部分:软件设计(包括上位机软件设计、DSP软件设计)、FPGA设计、板级硬件设计。测试系统采用多层次、并行开发,软硬件协同设计的设计思想,从系统层面着手,采用从系统级、部件级至模块级的自上而下与自下而上相结合的多层次设计方法;通过合理的软硬件划分,实现硬件与软件并行开发,板级硬件与芯片级硬件并行开发的高效率设计模式;软硬件协同设计,提高设计与验证效率。
3.1 功能检测板
功能检测板主要包括数据准备CPU模块、时序仿真FPGA模块、通用模块FPGA、输出选通FPGA模块、输入输出数据存储RAM五个部分。
数据准备CPU模块选用DSP作为数据准备CPU芯片。数据准备CPU在整个测试系统中的作用主要体现在:与上位机的数据传输。[2][3]包括测试开始前的准备数据、运行中的必要数据、运行后的结果数据的传输。通过命令接口控制主FPGA芯片、通用模块FPGA、输出选通FPGA,实现对整个测试过程的控制。软件编程实现GPIO上输出信号的变化,直接作为被测FPGA的输入信号。
通用模块FPGA用于存放常用的模块库,以简化时序仿真FPGA的设计。在外部接口上,主要包括以下几部分:与DSP芯片的接口:主要是通过一个同步串行接口,实现控制命令的接收以及数据的传递。拟采用SPI或I2C接口实现。与时序仿真FPGA的接口:实现各种通用通讯模块的模拟功能。
输出选通FPGA的功能较为单一,主要是接受来自命令控制口的选通配置信息,并实现相应的选通逻辑。
输入输出数据存储RAM:备用于将一些特殊信息保存下来待时序仿真FPGA使用以及待测FPGA的IO信号经时序仿真FPGA处理后存入数据。
3.2 上位机
上位机软件主要包括波形编辑、数据处理与波形显示、数据交换接口三部分,波形编辑、波形显示:波形编辑是指仿真前测试信号的波形定义,波形显示是指测试后取得的信号数据的图形化波形显示。这两种功能可合并在一个波形编辑器界面下。
3.3 高速I/O采集设备
数字IO采集模块主要负责采集被测FPGA输出信号的获取。将这些信号以直观的图形表示出来。待测FPGA数字IO信号的采集通过两种途径进行:通过DSP、时序仿真FPGA进行采集:待测FPGA的IO信号经时序仿真FPGA处理后存入数据存储RAM,然后由数据准备CPU读取并传给上位机。通过数据采集设备进行采集,测试平台中测试母板应提供相应的测试接口。上位机可以将采集到的数据以图形化的方式直观的显示出来,呈献给测试人员。
4 测试系统验证
测试者通过在上位机上编辑待测的波形即待测的激励信号的图形化显示,在此期间,测试者可以灵活可控的对波形进行编辑,测试者不仅动态图形化地观测需要被验证的信号,而且可以编辑波形例如拖拉触发沿、拷贝、粘贴以及画新的波形信号。
[4]测试者可以很完备的通过波形编辑得到所需的测试波形,同时测试板上的各个模块通过数据总线、地址总线、串口、JTAG接口、CAN/USB接口、外部存储接口相互无缝连接,充分考虑到板级设计中各模块逻辑资源的需求和电磁兼容性,在芯片的设计和布局时,严格合理的控制引脚资源的使用,支持片内和片外的时钟信号输入,并且输入激励与输出信号具有相同的基准时钟,便于数据的对比和数据判读提供保障。[5][6]将用于实现标准功能模块的可综合HDL激励模块会随着测试平台应用的成熟而逐渐形成测试模块库,供后续的测试项目使用。充分利用FPGA的动态可重构的特性,对满足速率和带宽要求的信号,按协议约定读取时序存储RAM中的数据,产生被测FPGA所需的外部输入;对于无法通过时序存储RAM或数据准备CPU实现模拟的信号,时序仿真FPGA通过本身的硬件设计实现信号的模拟,以达到动态配置被测FPGA的目的和获得较高的故障覆盖率,充分体现测试的完备性。
5 结束语
本文的主要研究内容为基于硬环境的动态FPGA测试的平台的架构的设计,[7]与主流的FPGA测试方法做了分析和比较,介绍整个测试平台各个模块的结构和功能以及各模块的无缝衔接,突出基于硬环境的下FPGA配置的动态性,同时保证整个测试平台的测试完备性。
参考文献:
[1] 林腾,冯建华,赵建兵,等.一种新的面向应用的FPGA测试方法[J].北京大学学报:自然科学版,2009,45(3):402-408.
[2] 李平,廖永波,阮爱武,等.SoC软硬件协同技术的FPGA芯片测试新方法[J].电子科技大学学报,2009,38(5):716-720.
[3] 杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息报,2010,32(3):714-727.
[4] 于源,徐元欣,郑伟,等.基于FPGA的软硬件协同测试的设计与实现[J].电子器件,2006,29(4):1208-1214.
[5] 梅岩,王力生.基于构件的嵌入式操作系统开发平台设计[J].计算机工程,2006,32(11):97-99.
[6] Ahmed E.The effect of logic block granularity on deep-submicron FPGA performance and density[C].University of Toronto,Department of Electrical and Computer Engineering,2001.
[7] Roy K,Mehendale M.Optimization of channel segmentation for channeled architecture FPGAs[C].Proceedings of the IEEE Custom Integrated Circuits Conference. Boston.1992:441-444.