APP下载

一种NOR FLASH控制器验证平台的研究

2015-05-29李明明王全忠郭伟郑永瑞

现代电子技术 2015年10期
关键词:参考模型时序芯片

李明明++王全忠++郭伟+++郑永瑞

摘 要: 在民用飞机型号取证中,机载电子硬件设备的开发必须遵照RTCA/DO?254设计保证规范。在RTCA/DO?254设计保证规范中,复杂电子硬件的确认与验证是硬件研发过程中的核心环节。相对于NAND FLASH,NOR FLASH因其具有单独的地址总线和数据总线,可靠性高,读取速度快等特点,而被广泛地用来作为引导存储器和存储程序。使用SystemVerilog?Assertion和Verilog HDL设计并搭建了一种NOR FLASH控制器验证平台,验证平台及其运行结果验证了控制器的设计规范和输出结果是一致的。

关键词: RTCA/DO?254设计保证规范; NOR FLASH控制器; 验证平台; 机载电子设备

中图分类号: TN30?34 文献标识码: A 文章编号: 1004?373X(2015)10?0162?04

民用飞机必须要保证飞行的安全以及公众安全,因此航空电子系统的研制必须符合国际民航的各项条例,满足飞行适航的要求。通常,国际航空工业界采用美国RTCA协会的RTCA/DO?254设计保证规范[1]来保证机载电子硬件的安全性水平。其中,确认和验证成为保证研制安全性的一个重要手段[2]。因此,在复杂电子硬件的研制过程中,验证工作的重要性也越来越高。FPGA验证是用来保证硬件项目的实现满足所有需求(包括派生需求)[3],通过各种方法确认设计规范和输出结果的一致性。一个可靠的、重用性好的验证平台可以既保证验证的正确性,同时也能大大提高整个验证工作的效率。Synopsys公司和ARM公司联合推出了VMM(Verification Methodology Manual)验证方法学[4],Mentor Graphics公司和Candence公司共同推出了OVM(Open Verification Methodology)验证方法学[5]。这些平台基于一些功能更为强大的语言,比如SystemVerilog、SystemC、e语言等。然而,对于较小规模的模块级验证来说,基于Verilog HDL的验证平台已经能够满足验证的需求,同时也不需要开发需要大规模验证的验证IP(VIP)。NAND FLASH控制器验证平台[6],针对NAND FLASH控制器验证取得了较好的效果,但不适合NOR FLASH,同时缺少时序的验证。本文基于SystemVerilog?Assertion(SVA)和Verilog HDL,提出了一种NOR FLASH控制器验证平台,对控制器的时序和数据进行了验证。

1 验证平台理论

1.1 总线功能模型

总线功能模型(BFM),是一种将物理的接口时序转化成更高抽象层次接口的总线模型,其价值在于能够抽象总线互联并提供高级应用程序编程接口(API),从而节省验证平台开发时间[7]。总线功能模型示意图如图1所示,它是对底层总线的时序、物理接口和行为进行建模,可以用task的形式将所要实现的信号操作封装起来,向上提供统一的接口任务。编写验证激励时,调用这些封装的task后,总线信号模型就会将其转化成底层信号的操作。

图1 BFM示意图

1.2 基于Verilog的验证平台结构

基于Verilog的验证平台示意图[8]如图2所示。其中发生器的主要功能是产生事务(一定的数据格式及功能函数)。标准参考模型是一个根据设计需求编写的功能模块,实现与DUT相同的功能,一般小的模块这部分是验证工程师自己完成的,如果此模块较复杂,而验证工程师还要关注其他的模块,此功能模块可以由第三方提供,比如一些现成的C语言代码,这部分是验证的一个精华,也是主要的Debug的地方。Test Harness是将被测模块封装起来留出简单易用的访问接口,以利于各种测试用例调用,这样一方面可以隐藏DUT和测试用例(Testcase)内部接口细节;另一方面对于不同的测试用例,可以复用Test Harness,增加可复用性。事务日志用来记录验证过程产生的数据和消息等信息。计分板用来比对Test Harness和标准参考模型传输出来的数据,检查功能是否正确。

图2 基于Verilog的验证平台示意图

1.3 SystemVerilog?Assertion

SystemVerilog是Gateway公司的Verilog的最新后继者,Accellera委员会已将SystemVerilog 3.1定为一个标准,断言语言被纳入SystemVerilog,成为标准的一部分,即SVA。SVA允许把断言语言应用到设计的一系列工具,它具有丰富的语法,可以完美地描述时序相关的状况。其卓越性主要体现在对时间的控制上,设计和验证工程师可以把对硬件设计的期望行为进行编码,创建对总线协议的详细检验。如图3所示,包含加入SVA后的验证环境,通过把SVA直接与设计相连,可以和测试平台有效的共享信息,模拟环境的性能有了极大的提高[9]。加入SVA后的验证环境如图3所示,通过把SVA直接与设计相连,可以和测试平台有效的共享信息,同时还可以增强SVA检查器的重用性。

图3 SVA验证平台示意图

2 NOR FLASH控制器验证平台

2.1 NOR FLASH控制器功能

本文所验证的NOR FLASH控制器(以下简称FLASH控制器)是一个基于FPGA设计的子模块,控制外部NOR FLASH存储器的读取,整个控制器逻辑运行在Xilinx公司的Virtex5系列芯片。控制器模块主要是对多个控制信号和地址信号进行控制,达到与NOR FLASH交互的目的。支持SPANSION公司的S29GL512P芯片。

2.2 NOR FLASH控制器验证平台组成

根据NOR FLASH控制器的需求,本设计需要验证控制器对存储器的读页和读时序进行验证。基于上述需求,本文所搭建的基于SystemVerilog?Assertion(SVA)和Verilog HDL验证平台如图4所示。

图4 NOR FLASH控制器验证平台示意图

2.3 S29GL芯片模型

S29GL芯片模型的作用相当于实体的存储器,可以产生和真实存储器件近似的操作行为。此模型是从SPANSION公司官网下载的基于Verilog HDL的芯片仿真模型。它是FLASH芯片的仿真模型,可以依照S29GL512P芯片手册上的时序要求,对模型进行相关的读/写等操作,支持对芯片的功能仿真。

2.4 FLASH_bfm模块

FLASH_bfm模块接口信号是FLASH芯片模型的读、写、片选使能等信号,内部封装了FLASH模型的读取、写入、复位等函数(task),验证平台可以调用这些task,完成对FLASH芯片模型的特定操作。

2.5 标准参考模型和计分板模块

标准参考模型模块接口信号是FLASH芯片模型的片选使能、地址和数据等信号,调用FLASH_bfm模块编写的读任务,实现了和FLASH控制器相同的功能,并将读取的数据输入给计分板。计分板模块主要用来比对标准参考模型模块读取的数据和FLASH控制器(即DUT)输出的数据是否一致,其接口是地址和数据等信号,输出仿真比对的结果。

2.6 发生器和时钟、复位信号模块

发生器模块主要用于产生FLASH写数据和地址。本设计采用直接赋值的方式,即将控制器设计需求中需要烧录的数据文件中的数据和地址读取到一个存储空间中。 存储空间的装载采用Verilog HDL的系统任务$readmemh来实现。时钟、复位信号模块按照控制器的需求,产生指定频率的时钟和指定复位时间的复位信号输入给FLASH控制器。当FLASH控制器收到相应激励后,产生FLASH读、片选使能和地址信号输入给FLASH芯片模型。

2.7 SVA模块

SVA模块接口信号是控制器的控制、地址和数据等信号,在顶层文件中使用bind绑定语句,将SVA模块与控制器模块的端口信号捆绑在一起。验证FLASH控制器的读时序是否满足S29GL512P芯片的要求。

2.8 事务日志模块

本模块主要用来记录验证过程中的数据、异常等信息。本设计中利用此模块记录FLASH芯片模型中的地址、数据变化,采用Verilog HDL的系统任务$fmonitor来实现。

3 验证结果

本文验证平台采用的系统环境是Windows操作系统,使用Mentor Graphics公司的Questa Sim 10.0c和HDL Designer Series 2011.1代码设计工具,对NOR FLASH控制器的数据和时序进行了验证。

3.1 控制器数据验证

仿真平台基于FLASH_bfm模块封装的task,对FLASH模型进行写buffer操作如图5所示。标准参考模型基于FLASH_bfm模块中封装的task对FLASH模型的读操作如图6所示。其中FLASH_OE_n为读使能信号,FLASH_WE_n为写使能信号,FLASH_CE_n为片选使能信号,FLASH_addr为地址信号,FLASH_data为数据信号。从两图对比可以看出,向FLASH模型中写入的数据和标准参考模型读出的数据一致,验证了仿真模型的正确性。

图5 仿真平台写buffer波形图

图6 标准参考模型读FLASH模型波形图

控制器对FLASH模型的读操作的结果如图7所示。其中:FLASH_CE_n为控制器发出的片选使能信号;FLASH_OE_n为控制器发出的读使能信号;FLASH_WE_n为控制器发出的写使能信号;FLASH_addr为控制器发出的地址信号;FLASH_data为控制器接收到的数据信号。从仿真波形中可以看到,控制器读出的数据与仿真器写入的数据一致,同时与标准参考模型读出的数据一致,即控制器能够正确的读取外部NOR FLASH芯片中写入的数据。

图7 FLASH控制器读FLASH模型波形图

3.2 控制器时序验证

本文对控制器读时序采用SVA进行验证,图8是验证完成读操作时钟周期的断言运行结果。

图8 Tavav波形图

图8中:FLASH_CE_n是控制器的片选使能信号;FLASH_OE_n是控制器读使能信号;FLASH_WE_n是控制器写使能信号;a_Tavav是对控制器完成读操作时钟周期的断言。芯片手册中要求完成读操作的时间不能小于110 ns。图中,第5个是断言波形,蓝色表示断言是“inactive”状态,绿色表示断言是“active”状态,如果断言检测到时序错误会出现红色的小箭头[10]。从图中的运行结果,读时钟周期满足要求。本文中对芯片片选和地址稳定到合法数据输出的(Telqv)时间间隔,地址到合法数据输出(Tapa)时间间隔,也分别采用两条断言进行验证。

4 结 语

本文按照RTCA/DO?254设计保证规范的要求,利用SVA和Verilog HDL构建了一种NOR FLASH控制器的验证平台。该平台对FPGA设计中NOR FLASH控制器的需求规范进行了成功的验证。平台的复用性和测试性为以后系统的验证,设计的更改后的重复验证提供便利,提高了验证的效率。

参考文献

[1] HILDERMAN V, BAGHI T. Avionics certification: a complete guide to DO?254 (hardware) [M]. America: Avionics Communications Inc, 2007.

[2] 范博书.民用飞机研发过程中的确认与验证[C]//2013年航空试验测试技术峰会暨学术交流会论文集.北京:中国航空学会,2013:45?47.

[3] ACZYNSKI J. Verification methods for field programmable gate array (FPGA) designs [J]. Elektronik Industrie, 2004, 35(11): 58?61.

[4] Synopsys. VMM standard library user guide [M]. USA: Synopsys, 2009.

[5] Cadence. OVM class reference [M/OL]. [2010?12?08]. http://www. docin.com.

[6] 魏国.一种NAND FLASH控制器验证平台的设计[J].电子科技,2013(7):142?143.

[7] 杜旭,夏晓菲,赵宇.总线功能模型在集成电路功能验证中的设计与应用[J].微电子学与计算机,2004(5):130?133.

[8] 刘星.王慧.一种基于Verilog的验证平台搭建及应用[J].信息安全与通信保密,2013(1):43?45.

[9] RAMANATHAN M. A Practical guide for system Verilog assertions [M]. US: Springer, 2006.

[10] Mentor Graphics Corporation. Questa SIM users manual software Version 10.0a [M/OL]. [2012?02?09]. http://www.docin.com.

[11] 李玉学,白忠臣,秦水介.基于Verilog HDL的FIR数字滤波器的优化设计与仿真[J].现代电子技术,2014,37(7):154?156.

[12] 许莉娅,段帅君,李传南.基于Verilog HDL语言的CAN总线控制器设计及验证[J].现代电子技术,2012,35(10):43?46.

[13] 唐宁,常青.航空数据总线技术分析研究[J].现代电子技术,2014,37(4):64?69.endprint

猜你喜欢

参考模型时序芯片
基于Sentinel-2时序NDVI的麦冬识别研究
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
芯片测试
基于环境的军事信息系统需求参考模型
语义网络P2P参考模型的查询过程构建
多通道采样芯片ADS8556在光伏并网中的应用
DPBUS时序及其设定方法
74HC164芯片的应用
基于参考模型的制造业MES需求建模