论文部分内容阅读
随着FPGA在航天领域中的广泛应用,FPGA代码质量对航天设备系统安全性的影响越来越显著。在中国航天领域中,中国航天科工第二研究院为了规范FPGA代码的设计,提高航天型号FPGA类产品的代码质量,制定了《Q/WE1117-2014二院型号FPGA硬件描述语言编程准则》。然而面对日益复杂的FPGA代码,采用人工审查方式对代码实施检查往往花费大量的精力和时间。基于上述背景和需求,本文设计并实现了基于Q/WE1117-2014编程规范的Verilog HDL代码规则自动检查软件,在FPGA代码设计阶段提供高效的代码规则检查功能。通过对Q/WE1117-2014规范的研究和软件需求的分析,设计了Verilog HDL硬件描述语言代码规则自动检查软件的总体架构。软件由软件管理配置工具、Verilog HDL预处理器、Verilog HDL编译器、规则检查管理器以及规则检查库构成。其中软件管理配置工具作为软件的交互接口,基于Notepad++开源编辑器开发,提供了MDI风格的代码编辑界面、代码文件表的建立维护、规则的配置管理、规则检查启动、检查进度及检查结果显示等功能。Verilog HDL预处理器和编译器用于对Verilog HDL源代码进行编译并生成对应的抽象语法树(Abstract Syntax Tree,AST)。在研究和分析了Verilog HDL词法及语法定义的基础上,设计并编写了用于生成Verilog HDL预处理器及编译器的Flex规则文件和Bison规则文件,同时提出了AST的一种实现方式。规则检查管理模块读取软件管理配置工具维护的配置文件并调用规则检查库中相应的规则检查函数对AST执行遍历和检查。规则检查库采用了动态链接库的形式进行封装,其中的规则检查函数与编程规则一一对应,并采用了统一的函数接口定义,使本软件具备了规则扩展的能力。针对Q/WE1117-2014规范的具体规则,提出并实现了相应的规则检查算法。最后,使用实际FPGA工程Verilog HDL代码及覆盖了本软件所有规则检查函数的Verilog HDL测试代码对软件进行了功能测试。测试结果显示本软件运行正常,能够正确检查出测试代码中存在的违规项,满足了软件的设计要求。