分享

FPGA开发与软件开发在实施GJB5000上面有区别吗?

 东北十三少 2021-12-09

FPGA应用开发也应遵循GJB5000标准,这在2017年的GJB5000《评价工作管理细则》的适用范围中就有明确规定:

(GJB5000标准《评价工作管理细则》)适用于评价机构、评价人员的管理和评价工作的监督。细则中军用软件是指作为装备或装备组成部分的软件,包括计算机程序、相关文档和数据以及固化在硬件中的程序和数据。

这里面的“固化在硬件中的程序和数据”不仅指嵌入式软件,也包括FPGA。

这个规定一出,很多实施GJB5000的组织都觉得一时难以接受,因为他们总觉得FPGA和软件开发有很大的不同,FPGA能用GJB5000管理吗?他们并没有信心。

诚然,FPGA开发和软件开发在开发环境和开发流程上面都有区别。但是,站在软件工程的角度上看,这两种开发还是基本一致的。

  1. 开发环境

实施GJB5000的组织软件开发使用最多的是C/C++语言及其IDE工具、测试工具;FPGA开发大多使用VHDL语言及其开发、仿真工具。这些不同并不影响实施GJB5000,GJB5000的配置管理和标准工作环境管理都可以很好地管理这些开发环境。

  1. 开发流程

FPGA和软件开发的主要流程是完全一致的,都需要需求开发、设计、编码实现、测试等环节,都需要组织团队开发,都需要项目管理以及配置管理、质量保证、测量分析等过程的支持。

所以GJB5000的所有过程域都可以在FPGA开发中应用。

当然,由于FPGA开发与数字电路息息相关,它在实现和验证方面与软件开发存在区别。

  1. FPGA开发

FPGA开发只能使用硬件描述语言,主流的硬件描述语言是Verilog HDL和VHDL(其中VHDL在1987年成为IEEE标准,Verilog HDL在1995年成为IEEE标准),开发者可以通过硬件描述语言描述电路的结构、行为、性能、算法、数据处理、数据传输等等。

与软件开发语言一样,VHDL语言一样存在编码规范,虽然编码规范是独立的,但也一样可以分为通用规范、命名规范、格式规范、结构和描述规范等方面。

FPGA的实现还包括特有的综合布局布线。

  1. FPGA验证

FPGA验证被称为仿真。仿真使得在真实的电路或芯片做出来之前就可以完成对电路系统的验证,实际上就是不依赖于硬件环境,完全在EDA工具软件下完成的测试。

FPGA的测试覆盖率和软件测试覆盖率有稍许不同——除了语句覆盖、分支覆盖和条件覆盖之外,它还有表达式覆盖(表达式引用的线网和变量所有可能取值组合)、翻转覆盖(寄存器所有位的翻转情况)和状态机覆盖(状态机的状态及其转换的情况)的要求。

在测试类型上面,FPGA测试有它独特的时序测试(对FPGA的时延、建立时间和保持时间进行测试)和功耗分析。

在测试级别上面,FPGA测试有单元测试、配置项测试和系统测试,没有软件开发中的集成测试(见GJB9433《军用可编程逻辑器件软件测试要求》)。

总之,FPGA的基本开发过程域软件一样,它完全可以适用GJB5000标准,只是需要在实现和验证过程中的部分活动给出自己独特的要求。

这正是:

FPGA软件虽不同,开发基本一流程

应用五千无异议,只需注意细节中

参考书目:FPGA应用开发和仿真,作者:王贞炎,出版社:机械工业出版社

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多