基于QuestaSIM串行多协议数据接口的自动化仿真设计

(整期优先)网络出版时间:2023-04-19
/ 2

基于QuestaSIM串行多协议数据接口的自动化仿真设计

蔡娆娆

中国电子科技集团公司第三十八研究所 安徽合肥 230088

摘要:串行数据接口是FPGA软件设计中的常用接口。FPGA软件测试中常常面临多串口传输多协议数据报文、多轮次回归测试的情况,针对这种功能简单但协议繁多的串行数据传输,界面操作的仿真测试会大幅增加人力和时间成本。本文设计了一种基于Questa SIM的自动化仿真测试,可以实现快速、高效、充分地对串口协议及数据接口的测试验证,提高不同数据协议的串行接口的测试效率。

关键词:多协议数据;串行通信;仿真验证;Questa Sim;自动化仿真

1 背景

随着FPGA在军工行业的雷达、卫星、制导系统、航空航天等领域的广泛应用,对FPGA软件的测试需求也与日剧增。以国内某航天实验舱为例,用FPGA软件做桥梁,实现舱内控制信号的接收和发送以及舱外遥测信息的接收和反馈。串行通信作为其主要的通信方式,有多个异步串口和同步串口,串口协议不同且传输的数据帧协议不同,针对这种功能简单但协议繁多的串行数据传输,若是采用传统的界面操作的仿真测试或通过在线逻辑分析仪捕获输入输出信号的实物测试,都会大幅地增加人力和时间成本;若是采用基于UVM的仿真验证平台,对于上述被测对象会存在测试环境相对复杂、不易搭建、价比低的问题。本文设计了一种基于Questa SIM的自动化仿真测试,测试环境易搭建、测试执行简单,可以实现快速、高效、充分地对串口协议及数据接口的测试验证。同时通过编写测试子程序的方法,提高测试激励文件的可复用性,为不同项目中不同数据协议的串行接口测试提供便利。

2 被测软件及测试方法

2.1 串行数据接收模块

被测软件的的串行数据接收模块主要有5个异步串口(UART1、UART2、UART3、UART4、UART5)和4个同步串口。通过5个异步串口传输5种帧协议的数据报文,对帧数据的解析中均对帧头、帧尾、帧长度进行了异常判别,然后对数据内容进行解析,实现不同的控制信号输出;通过4个同步串口传输了1种帧协议的数据报文,对帧数据的解析中均对帧头、帧尾、帧长度进行了异常判别,然后通过消息ID的不同,来区分4种数据的转发输出。

2.2 FPGA软件测试方法

现行的国军标(9433-2018版)《军用可编程逻辑器件测试要求》中对FPGA软件测试测试类型及的测试方法具有详尽的描述。测试类型具有13种,其中接口测试的测试方法有:功能仿真、门级仿真、时序仿真、实物测试。 其中功能仿真是在不包含传输延时信息的条件下,用仿真方法验证设计的逻辑功能是否正确,可以通过查看内部信号变化,快速定位问题;同时可以通过覆盖率统计,让测试更全面、充分;门级仿真和时序仿真测试对象均是网表文件,比较适合对被测软件的整体功能验证;实物测试也就是通常所说的板级测试,将目标文件直接下载到真实的目标板卡或被认可的目标板卡中,通过对逻辑器件输入激励,确认被测软件输出是否正确。实物测试中不易构造异常测试用例,若出现问题,不能快速定位问题所在。

本文采用基于Questa Sim的功能仿真,并在测试中,通过编写可复用性高的测试激励文件,再加上自动测试脚本的应用,快速完成多串行接口、多协议数据的自动化仿真测试。

3 自动化仿真测试台设计

3.1 仿真文件的设计

编写被测代码的顶层文件的测试激励—testbench文件、自动测试需要的脚本文件等。

(1)testbench文件的设计:采用测试子程序编写同步串口和异步串口协议(根据需求中的具体时序、接口要求来编写),通过端口配置不同的波特率。本文中设计的测试激励文件testbench的顶层文件为tb_bk_top.v调用了同步串口和异步串口的测试字程序。为了自动调用Questa Sim进行仿真,将全局时钟glbl模块进行例化在testbench顶层文件中。(2)处理文件的设计:通过批处理文件gui.bat直接启动仿真脚本文件,从而自动打开Questa sim工程进行仿真。(3)自动化仿真脚本的设计:自动化测试脚本文件,可以单独编写编译及仿真的文件,也可以合并成一个文件。本文设计的自动化仿真脚本文件为runsim.do,文件编写主要包含数据库的映射、被测软件源文件及IP核的网表文件的编译及设置、仿真波形的添加和仿真时长的设置。

图1 runsim.do文件内容

3.2 仿真环境的搭建

测试环境的搭建很简单,在Questa SIM中新建工程,添加被测软件源代码和testbench文件。测试台的基本组成如下图所示:左键双击gui.bat文件,打开建立好的Questa Sim 工程,工具会然后按照runsim.do文件进行编译、添加波形、运行仿真。

图2 Questa Sim 自动仿真测试台

3.3 测试执行及结果分析

自动测试平台运行之后,就可以在QuestaSIM中进行测试执行,仿真波形输出模拟输入的串口协议数据和输出解析的数据。测试用例的覆盖点为:异步串口时序的测试、同步串口时序的测试、连续发送数据测试、串口数据接收正常情况测试、串口数据接收异常情况测试等。通常在仿真测试执行时进行覆盖率的设置,然后对测试激励输入进行不断调整,以便达到100%的覆盖。

4 结束语

串行数据接口在FPGA软件测试中极其常见,辅助软件设计人员进行问题复现、问题定位时,需要重复执行仿真测试。本文描述的Questa SIM自动化仿真设计,可以最大程度保证原有的测试激励不被随意更改;被测软件替换简易,问题复现一键完成操作;问题回归时,只需替换被测软件的文件即可。大大减少了FPGA软件测试人员的重复性工作,提高了FPGA软件测试的测试效率。

参考文献:

[1] 张莉妹,谭琪,张桥华, 邓俊彦,何谢振. 基于Modelsim的自动化仿真测试在安全认证中的应用[J]. 湖南中车时代通信信号有限公司, 科技风2017年12月.

[2] 程刚.基于system verilog的功能验证方法研究[D].广东:华南理工大学,2010.

[3] 高虎,郑军,田曾昊. FPGA板级自动化仿真测试环境框架设计[J]. 微电子学与计算机 ,2017年12期