APP下载

基于总线功能模型的全系统FPGA验证环境设计

2017-11-10薛利强

航空发动机 2017年1期
关键词:测试用例总线组件

薛利强,于 真

(中国航发航空动力控制系统研究所,江苏无锡 214063)

基于总线功能模型的全系统FPGA验证环境设计

薛利强,于 真

(中国航发航空动力控制系统研究所,江苏无锡 214063)

为了解决发动机控制领域中可编程门阵列设计复杂性日益增长而导致的验证困难问题,提出了1种FPG A的全系统验证方案,用以实现全面高效的功能验证。根据控制系统设计方案,对照控制器电路结构进行验证平台的搭建,通过基于总线功能模型的方法对系统中FPG A所控制的外设进行建模,并在验证平台中进行与电路完全一致的连接。按照系统测试计划编制测试用例对全系统进行模拟仿真。测试结果表明:全系统FPG A的验证能够模拟控制器实际运行状态,提升了验证层次与效率,对发动机数控系统的设计质量提升有显著作用。

可编程门阵列;验证平台;总线功能模型;全权限数字电子控制系统;航空发动机

0 引言

相对基于冯·诺依曼体系架构的处理器,具有可重构特性的可编程门阵列(Field Programmable Gate Array,FPGA)的最大特点是计算资源的分布配置和并行处理,使得FPGA特别适合处理并行实时任务[1]。国内外FADEC系统中均大量运用FPGA,欧洲FADEC国际公司最新型FADEC系统中的数字逻辑功能均采用FPGA实现[2];美国NI公司基于FPGA和Power-PC处理器开发了高性能的控制器快速原型开发平台CompactRIO;美国IAC公司基于FPGA设计了F117发动机(C-17动力装置)的PHM单元[3]。

目前某在研数字控制器中FPGA主要应用于外设管理(AD采集,离散量采集)、数字逻辑处理以及通讯协议处理。在这些应用场合中,FPGA管理对象复杂多样、总线高度复用、接口繁杂,FPGA的设计缺陷不仅会影响正常功能无法实现,甚至会导致硬件电路损坏。这就对验证提出了新的要求:不仅要验证子模块功能的正确性,同时要对电路系统层面的功能进行验证。传统的通过编写定向测试激励、查看接口波形的方法在目前出现了瓶颈。

本文基于某型燃气轮机控制器的总线架构,设计了基于功能模型的全系统验证环境,能够在电路系统层对FPGA功能进行验证,并基于设计需求通过检查器和断言等功能对验证结果进行评价,从而达到需求、设计与验证全流程紧密结合。

1 验证方法概述

在传统的验证平台中,激励的过程就是把二进制序列按照一定时间顺序送入被测设计中。传统验证环境由3部分组成:激励生成(Stimulus Generator)、DUT(Device Under Test)和响应检测(Response Checking),如图1所示[4]。

DUT是被测的逻辑电路,通常DUT是使用硬件描述语言编写的可综合的设计。DUT接收验证平台的激励,按照设计的逻辑功能对输入数据进行处理后输出相应结果。

激励生成模块主要功能是根据DUT的输入接口的信号时序,对DUT产生信号激励,将测试信号向量输入到DUT中。在传统的验证环境中,激励通常由验证工程师制定,在验证时是固定不变的,同时激励与DUT的连接方式一般采用ping2ping(引脚对引脚)。响应检测模块也通过ping2ping的接口获取被测设计的输出,由验证工程师人工判断结果是否正确。

从验证思想和结构上来看,传统的验证环境的构造和使用都处于信号级层面,在面对大规模系统设计的验证时存在以下不足:

(1)传统验证方法只适用于简单的设计。当设计复杂后,很可能会出现人为错误并且结果不精确;

(2)传统验证方法效率低。验证人员的很大一部分精力投入到信号驱动以及观察波形正确性上,验证层次低。

为了改善传统验证方法,业界推出一些改进方法,目前较为成熟的有断言和基于总线功能模型的验证。基于断言的验证 (ABV,Assertion Based Verification)是1种能够增加设计可观察性,使设计缺陷更易于发现和诊断的方法,把断言、仿真以及形式技术结合到传统的验证过程中[5-9]。

Systemverilog于2005年11月成为电子设计的1种新标准语言(SystemVerilog,IEEE std 1800-2005),SystemVerilog Assertion(SVA)是标准的重要组成部分。

总线功能模型是1种有效的抽象验证方法,其作用是把底层总线的时序封装起来,向上层提供1个统一的任务接口,使上层不用关心底层的实现细节而专注于测试用例的设计。BFM与DUT之间的连接如图2 所示[10-15]。

2 某型燃气轮机数字电子控制器电路架构

随着发动机控制技术的发展,电子控制器的控制对象包含转速控制、防喘、限温、限转控制等。控制对象繁多导致FADEC电路规模极大增长,为了减轻CPU的负担,提升控制效率,目前大量采用基于总线的CPU+FPGA架构电路设计。某型燃气轮机控制器的电路架构如图3所示。

从图中可见,与CPU运行密切相关的设备挂接在第1级总线上,如SRAM等。FPGA挂接在第2级总线上,此总线是CPU和FPGA之间通信的途径,同时FLASH、NVRAM以及其他高速器件也挂接在第2级总线上。第3级总线,通常又称为板外总线,主要挂接一些低速外设,如AD、开关量输入的驱动器、开关量输出的锁存器等。FPGA通过时分复用技术,合理分配时间片对板外总线上的外设进行管理,如图4所示。

通过第3级总线的合理划分,将CPU和FPGA各自的任务进行了明确划分。由于FPGA并行运行的特性,能够同时进行多任务,因此,FPGA主要负责对外设进行统一管理,提供简单的寄存器接口供CPU查询或设置;CPU通过总线接口从FPGA获取数据进行运算和控制,并将命令通过接口下发至FPGA。

板外总线在简化电路设计的同时也给FPGA验证(单模块验证)带来了新的挑战,由于对外接口种类繁多且时序复杂,验证人员很难从波形看出其是否符合设计要求。

对于验证层次较高的系统验证人员而言,其主要工作应当根据验证需求开发测试用例,通过断言或其他方式对结果进行判断而不是依赖于时序波形。下文将通过1个实例论述如何通过搭建系统验证环境实现高层次验证。

3 系统验证环境搭建

某型燃气轮机数字电子控制器采用3级总线架构。控制器能够实现运算、存储、模拟量采集、开关量采集与输出等功能。系统级验证首先需要根据电路搭建测试平台,测试平台如图5所示。

测试平台主要有以下几部分:

(1)测试用例。测试用例是验证人员按照测试计划中罗列的测试点所编写的测试代码,体现一定的测试方案、方法、测试技术和策略。

(2)总线功能模型。案例中的总线功能模型是1个CPU_ACESS的模块,提供了CPU读(CPU_READ),CPU写(CPU_WRITE)、总线初始化(BUS_INIT)以及总线监控(BUS_MONITOR)4个任务接口,验证人员编写测试用例时可按需调用来实现预期的测试功能。

(3)测试设计DUT。一般情况下DUT是FPGA设计的顶层代码。在某些测试需求下,如通道切换测试时,需例化多个相同的顶层设计,以实现对应功能的测试。

(4)验证组件。验证组件是验证平台的重要部分,组件和实际电路中的外设应一一对应,案例中主要有以下验证组件:

a.模拟量输入验证组件。某型控制器中采用多路开关+单AD芯片完成多路模拟量的采集。CPU按照“多路开关切换-启动采集-数据读取-数据保存”的顺序对模拟量进行采集,在验证中需关注多路开关切换是否符合设计预期、AD操作时序是否满足芯片要求等。

b.开关量输入验证组件。与模拟量相同,案例中采用多路开关+单处理电路完成对多路开关量的采集。开关量验证组件需例化多路开关模型及比较器电路模型。

c.开关量输出验证组件。开关量输出采用总线对锁存器操作完成,而开出BIT也通过总线进行采集。开关量输出验证组件需例化锁存器。

d.UART验证组件。UART协议是业界标准协议,其验证组件根据协议检查波形时序、奇偶校验以及数据正确性。同时可通过配置实现特定通讯协议的检查。

e.CCDL(通道间通讯)验证组件。由于CCDL是内部协议,需进行回绕测试。通过本通道自收自发或者双通道间互发互收实现CCDL的验证。

测试用例应按照测试计划逐条编写并最终获得100%的功能覆盖率,列举内部看门狗测试计划及用例如下:

(1)正常喂狗时看门狗不应复位。用例:每40 ms向看门狗喂狗寄存器中写入0x0000,使用检查器检测复位CPU信号,检测到下降沿时打印“WatchDog reset err”信息。

(2)长时间不喂狗看门狗应复位。用例:复位结束后喂1次狗,之后停止喂狗,使用检查器检测喂狗后45 ms±2 ms内是否产生复位CPU信号,若无打印“WatchDog cannot reset”信息。

(3)当看门狗出现复位时,复位宽度应为60±2 ms。用例:同步骤b.,使用检查器检查复位宽度,复位宽度不在范围内打印“WatchDog Reset-Pulse err”。

4 结束语

FPGA开发作为数字控制器中的重要部分应当给予高度重视,通过全系统FPGA的验证能够最大程度模拟实际运行状态,提前发现低级错误和潜在隐患,避免实际调试时出现电路损坏等情况。某型燃气轮机数字电子控制器使用该验证方法,在实际调试中基本功能一次通过,极大地提高了效率。

[1]Vahid F,Givargis T D.Embedded system design:a unified hardware/software introduction[M].USA:John Wiley&Sons Press Inc,2001:232-302.

[2]Tulpule B,Behbahani A,Millar R.Vision for next generation Modular Adaptive Generic Integrated Controls(MAGIC)for military/commercial turbine engines[R].AIAA-2007-5710.

[3]Behbahani A,Adibhatla S,Rauche C.Integrated model-based controls and PHM for improving turbine engine performance,reliability,and cost[R].AIAA-2009-5534.

[4]褚晓滨,陆铁军,宗宇.结合断言与覆盖率为导向的验证方法 [J].微电子学与计算机,2008,25(11):139-142.CHU Xiaobin,LU Tiejun,ZONG Yu.Combination of assertion and coverage-driven verification methodology[J].Microelectronics&Computer,2008,25(11):139-142.(in Chinese)

[5]Lahti G D,Wilson T L.Designing procedural-based behavioral functional models for high performance verification [J].SNUG,1999:128-150.

[6]ZENG Hai,Siedlarczyk I,MAO Huan.Reactor protection system of nuclear power plant based on NuPAC[J].Atomic Energy Science and Technology,2014,48(4):692-697.

[7]Chan W,Anderson R J,Beame P,et al.Model checking large software specifications[J].IEEE Transactions on Software Engineering,1998,24(7):498-520.

[8]CHEN Li,GAO Weiwei.The formal verification method review[J].VIEW,2008,7-125.

[9]Harry Foster.Applied assertion-based verification:an industry perspective[J].Foundations and Trends in Electronic Design Automation,2007(3):1-95.

[10]陈辉,申敏,刘树军.结合覆盖率驱动技术的RVM验证方法学在SOC验证中的应用[J].微计算机信息,2006(26):113-115.CHEN Hui,SHEN Min,LIU Shujun.The application of Reference Verification Methodology combined coverage-driven technology in SOC verification[J].Microcomputer Information,2006(26):113-115.(in Chinese)

[11]Tong J G ,Boulé M,Zilic Z.Defining and providing coverage for assertion-based dynamic verification[J].Journal of Electronic Testing:Theory and Applications,2010,26(2):211-225

[12]LU Fang,BAI Na.Software/hardware co-verification based on SystemC and Verilog[J].Modern Electronics Technique,2008(4):9-12.

[13]Abdi S,Gajski D.Verification of system level model transformations[J].International Journal of Parallel Programming,2006,34(1):29-59.

[14]李树杰,张志敏.一种可重用于不同总线的验证IP的方法[J].山东科技大学学报(自然科学版),2005(2):70-73.LI Shujie,ZHANG Zhimin.A method for verifying SoC bus with reused verification IP[J].Journal of Shandong Inst of Min&Tech,2005(2):70-73.(in Chinese)

[15]Bergeron J.Writing test benches.funtional verification of HDL models[M].Boston:Kluwer Academic Publishers,2000:11-22.

Design of FPGA Full-System Verification Environment Based on Bus Functional Model

XUE Li-qiang,YU Zhen
(AECC Aeroengine Control System Institute,Wuxi Jiangsu 214063,China)

In order to deal with the growing difficulty in verification caused by the increasing complexity of Field Programmable Gate Array(FPGA)design in the field of engine control,a system-wide FPGA verification scheme to achieve comprehensive and efficient functional verification was presented.According to the design of the control system,the verification platform was built in accordance with the circuit structure of the controller.Based on the bus function model,the peripherals controlled by FPGA in the system were modeled,and connected with the circuit in full accord in the verification platform.Based on the system test plan,test cases were developed for the whole system simulation.The test results show that the system-wide FPGA verification can simulate the actual running state of the controller,enhance the level and efficiency of verification,and have significant effect on improving the design quality of the engine control systems

FPGA;verification platform;bus functional model;FADEC;aeroengine

V 216.7

A

10.13477/j.cnki.aeroengine.2017.01.003

2016-03-08 基金项目:国家重大基础研究项目资助

薛利强,(1985),男,硕士,工程师,从事航空发动机数控系统硬件研制工作;E-mail:xue.v@163.com。

薛利强,于真.基于总线功能模型的全系统FPGA验证环境设计[J].航空发动机,2017,43(1):13-16.XUE Liqiang,YUZhen.Design ofFPGA full-systemverificationenvironmentbasedonbusfunctionalmodel[J].Aeroengine,2017,43(1):13-16.

(编辑:张宝玲)

猜你喜欢

测试用例总线组件
无人机智能巡检在光伏电站组件诊断中的应用
时间触发通信总线监控技术研究
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
关于CAN总线的地铁屏蔽门控制思路论述
基于LDA模型的测试用例复用方法*
3月光伏组件出口量增长164.6%至7.49GW!单价创新低
一种嵌入式软件组件更新方法的研究与实现
基于CAN/LIN总线的LED车灯控制研究
软件测试中的测试用例及复用研究
测试工时受限的测试策略研究