陕西黄河集团有限公司设计所西安710043
摘要:目前在军工领域FPGA软件的应用越来越广泛,为了提高软件质量,本文根据FPGA软件的特点,对FPGA软件的测试模型和测试方法进行了分析。本文指出FPGA软件开发过程中应进行整体规划并有效实施,FPGA软件测试中的各项活动应与其设计开发过程各个阶段的活动相对应,应尽可能将各阶段产生的缺陷在该阶段发现和消除,不断提高FPGA软件的开发效率和可靠性,最终提高FPGA软件产品质量,提升顾客满意度。
关键字:现场可编程门阵列FPGA软件验证
1引言
FPGA(现场可编程门阵列)正向高密度、低成本、低功耗、高性能的方向发展,为满足日益复杂的数字化系统设计要求,FPGA的密度及复杂性也在急速增长,越来越多的系统或子系统功能在FPGA内部实现,其先进的功能和高集成度使FPGA成为极具吸引力的解决方案。但是随着FPGA应用领域的扩展以及重要性和复杂程度的提高,其可靠性的问题变得越来越突出,FPGA设计代码的质量对整个FPGA系统的性能稳定可靠至关重要。目前在武器装备领域很多FPGA产品的软件验证和研制过程控制滞后于其应用增长的速度,测试不充分和过程管理不严格已成为FPGA软件发展的瓶颈。本文针对现阶段FPGA软件的发展状况,提出了针对军用FPGA软件的测试方法及测试类型。
2FPGA软件验证
2.1验证过程V模型
软件测试过程中,经典模型是PaulRook在20世纪80年代后期提出了V模型,旨在改进软件开发的效率和效果。V模型中左边每个开发活动都与右边的测试活动相对应,图中的箭头代表了时间方向。V模型主要传递了如下信息:需求、功能、设计和编码的开发活动随时间而进行,而相应的测试活动即针对需求、功能、设计和编码的测试,其开展的次序则正好相反。V模型揭示了软件测试活动分层和分阶段的本质特征,但该模型也存在一定的局限性,容易让人形成“测试是开发之后的一个阶段”、“测试的对象是程序”等的误解,实际应用中容易导致需求阶段隐藏的错误一直到最后验收测试时才被发现,造成软件维护难度大、成本高等问题。
2.2FPGA软件验证模型
FPGA软件验证目的是验证FPGA软件是否满足研制任务书、需求规格说明、设计说明等所规定的要求,发现可编程逻辑器件软件错误,为可编程逻辑器件软件产品质量的评价提供依据。经过大量实践证明,FPGA开发流程具体分为设计输入、功能仿真、综合布局布线、时序仿真、生成并下载BIT或PROM文件进行板级验证等五个阶段。根据FPGA设计流程和FPGA系统特点,针对V模型的不足,基于Evolutif公司的W模型,建立适用于FPGA软件测试的W模型:
W模型是V模型自然而然的发展,它强调测试伴随整个软件的开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。这样只要有相应的开发活动完成,就可以执行测试。也就是说测试与开发是同步进行的,这样又利于尽早发现错误。以需求为例,需求分析完成后就可以对需求进行相应的测试及文档审查,而不必等到最后才进行针对需求的验收测试。
2.3FPGA软件测试方法
FPGA软件测试过程中,应根据研制任务书、需求规格说明、设计说明等文档要求,采用合理的测试方法,对可编程逻辑器件软件单元、配置项、系统的功能要求、性能要求、时序要求、接口要求、强度要求、余量要求、安全性要求、边界要求和功耗要求等开展测试。针对FPGA软件的特点,FPGA软件的主要测试包括以下:
1)设计检查:设计检查是采用人工(包含工具辅助)的方法,对开发文档及工程文件等进行测试。
2)功能仿真:功能仿真是在不包含信号传输延时信息的条件下,用仿真方
法验证设计的逻辑功能是否正确的过程。
3)门级仿真:门级仿真是针对逻辑综合后网表文件开展的仿真测试。
4)时序仿真:时序仿真是针对布局布线之后的网表文件和标准延时格式文
件开展的仿真测试。
5)静态时序分析:依据测试用例的要求,针对逻辑综合或布局布线后的网表文件和标准延时格式文件开展静态时序分析。静态时序分析针对FPGA设计综合及布局布线后生成的门级网表进行时序检查,根据电路网表的拓扑检查所有路径的时序特性,以较悲观的方式预估电路的延迟时间,对不符合时序限制的分支电路在分析报告中作为关键路径,提醒设计者针对关键路径进行分析和修改,确保所有信号能够准时到达,保证电路功能的正确性.
6)逻辑等效性检查:依据测试用例的要求,对设计代码、逻辑综合后的网表文件及布局布线后的网表文件开展逻辑等效性检查。逻辑等效性验证布局布线后生成的网表与综合前的RTL代码的一致性,如果对于所有可能的相同输入,其输出也相同,则证明两者之间的逻辑是等效的。
7)实物测试:实物测试是将配置文件加载到真实的目标板中或经过认可的
目标板中,向被测试可编程逻辑器件施加激励,确认输出是否正确的过程。
3结束语
本文通过现阶段FPGA软件的发展现状,分析了对FPGA软件展开测试的必要性,并分析了FPGA软件的测试模型及测试方法。开展FPGA软件的测试,应依据FPGA设计流程和系统特点,参照软件测试模型,根据不同阶段不同工作产品进行不同的测试。FPGA的测试应贯穿于整个FPGA设计开发周期。FPGA软件开发过程中应进行整体规划并有效实施,FPGA软件测试中的各项活动应与其设计开发过程各个阶段的活动相对应,应尽可能将各阶段产生的缺陷在该阶段发现和消除,不断提高FPGA软件的开发效率和可靠性,最终提高FPGA软件产品质量,确保顾客满意度。
参考文献:
[1]实用软件测试方法与应用[M].北京:电子工业出版社.2003.
[2]王伶俐,周学功,王颖.系统级FPGA设计与应用[M].北京:清华大学出版社.2012.
[3]王丽,周明,孙正凯.FPGA软件测试模型及过程管理研究[J]计算机技术与发展2014(10):140-143.
[4]费亚男,周辉,朱伟杰.FPGA软件自动化验证平台设计与实践[J]计算机测量与控制2016.24(5)139-142
[5]PattonR.软件测试[M].周予滨,姚静,译.北京:机械工业出版社,2002.