李明明++王全忠++郭偉+++鄭永瑞
摘 要: 在民用飛機(jī)型號(hào)取證中,機(jī)載電子硬件設(shè)備的開(kāi)發(fā)必須遵照RTCA/DO?254設(shè)計(jì)保證規(guī)范。在RTCA/DO?254設(shè)計(jì)保證規(guī)范中,復(fù)雜電子硬件的確認(rèn)與驗(yàn)證是硬件研發(fā)過(guò)程中的核心環(huán)節(jié)。相對(duì)于NAND FLASH,NOR FLASH因其具有單獨(dú)的地址總線和數(shù)據(jù)總線,可靠性高,讀取速度快等特點(diǎn),而被廣泛地用來(lái)作為引導(dǎo)存儲(chǔ)器和存儲(chǔ)程序。使用SystemVerilog?Assertion和Verilog HDL設(shè)計(jì)并搭建了一種NOR FLASH控制器驗(yàn)證平臺(tái),驗(yàn)證平臺(tái)及其運(yùn)行結(jié)果驗(yàn)證了控制器的設(shè)計(jì)規(guī)范和輸出結(jié)果是一致的。
關(guān)鍵詞: RTCA/DO?254設(shè)計(jì)保證規(guī)范; NOR FLASH控制器; 驗(yàn)證平臺(tái); 機(jī)載電子設(shè)備
中圖分類號(hào): TN30?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)10?0162?04
民用飛機(jī)必須要保證飛行的安全以及公眾安全,因此航空電子系統(tǒng)的研制必須符合國(guó)際民航的各項(xiàng)條例,滿足飛行適航的要求。通常,國(guó)際航空工業(yè)界采用美國(guó)RTCA協(xié)會(huì)的RTCA/DO?254設(shè)計(jì)保證規(guī)范[1]來(lái)保證機(jī)載電子硬件的安全性水平。其中,確認(rèn)和驗(yàn)證成為保證研制安全性的一個(gè)重要手段[2]。因此,在復(fù)雜電子硬件的研制過(guò)程中,驗(yàn)證工作的重要性也越來(lái)越高。FPGA驗(yàn)證是用來(lái)保證硬件項(xiàng)目的實(shí)現(xiàn)滿足所有需求(包括派生需求)[3],通過(guò)各種方法確認(rèn)設(shè)計(jì)規(guī)范和輸出結(jié)果的一致性。一個(gè)可靠的、重用性好的驗(yàn)證平臺(tái)可以既保證驗(yàn)證的正確性,同時(shí)也能大大提高整個(gè)驗(yàn)證工作的效率。Synopsys公司和ARM公司聯(lián)合推出了VMM(Verification Methodology Manual)驗(yàn)證方法學(xué)[4],Mentor Graphics公司和Candence公司共同推出了OVM(Open Verification Methodology)驗(yàn)證方法學(xué)[5]。這些平臺(tái)基于一些功能更為強(qiáng)大的語(yǔ)言,比如SystemVerilog、SystemC、e語(yǔ)言等。然而,對(duì)于較小規(guī)模的模塊級(jí)驗(yàn)證來(lái)說(shuō),基于Verilog HDL的驗(yàn)證平臺(tái)已經(jīng)能夠滿足驗(yàn)證的需求,同時(shí)也不需要開(kāi)發(fā)需要大規(guī)模驗(yàn)證的驗(yàn)證IP(VIP)。NAND FLASH控制器驗(yàn)證平臺(tái)[6],針對(duì)NAND FLASH控制器驗(yàn)證取得了較好的效果,但不適合NOR FLASH,同時(shí)缺少時(shí)序的驗(yàn)證。本文基于SystemVerilog?Assertion(SVA)和Verilog HDL,提出了一種NOR FLASH控制器驗(yàn)證平臺(tái),對(duì)控制器的時(shí)序和數(shù)據(jù)進(jìn)行了驗(yàn)證。
1 驗(yàn)證平臺(tái)理論
1.1 總線功能模型
總線功能模型(BFM),是一種將物理的接口時(shí)序轉(zhuǎn)化成更高抽象層次接口的總線模型,其價(jià)值在于能夠抽象總線互聯(lián)并提供高級(jí)應(yīng)用程序編程接口(API),從而節(jié)省驗(yàn)證平臺(tái)開(kāi)發(fā)時(shí)間[7]??偩€功能模型示意圖如圖1所示,它是對(duì)底層總線的時(shí)序、物理接口和行為進(jìn)行建模,可以用task的形式將所要實(shí)現(xiàn)的信號(hào)操作封裝起來(lái),向上提供統(tǒng)一的接口任務(wù)。編寫(xiě)驗(yàn)證激勵(lì)時(shí),調(diào)用這些封裝的task后,總線信號(hào)模型就會(huì)將其轉(zhuǎn)化成底層信號(hào)的操作。
圖1 BFM示意圖
1.2 基于Verilog的驗(yàn)證平臺(tái)結(jié)構(gòu)
基于Verilog的驗(yàn)證平臺(tái)示意圖[8]如圖2所示。其中發(fā)生器的主要功能是產(chǎn)生事務(wù)(一定的數(shù)據(jù)格式及功能函數(shù))。標(biāo)準(zhǔn)參考模型是一個(gè)根據(jù)設(shè)計(jì)需求編寫(xiě)的功能模塊,實(shí)現(xiàn)與DUT相同的功能,一般小的模塊這部分是驗(yàn)證工程師自己完成的,如果此模塊較復(fù)雜,而驗(yàn)證工程師還要關(guān)注其他的模塊,此功能模塊可以由第三方提供,比如一些現(xiàn)成的C語(yǔ)言代碼,這部分是驗(yàn)證的一個(gè)精華,也是主要的Debug的地方。Test Harness是將被測(cè)模塊封裝起來(lái)留出簡(jiǎn)單易用的訪問(wèn)接口,以利于各種測(cè)試用例調(diào)用,這樣一方面可以隱藏DUT和測(cè)試用例(Testcase)內(nèi)部接口細(xì)節(jié);另一方面對(duì)于不同的測(cè)試用例,可以復(fù)用Test Harness,增加可復(fù)用性。事務(wù)日志用來(lái)記錄驗(yàn)證過(guò)程產(chǎn)生的數(shù)據(jù)和消息等信息。計(jì)分板用來(lái)比對(duì)Test Harness和標(biāo)準(zhǔn)參考模型傳輸出來(lái)的數(shù)據(jù),檢查功能是否正確。
圖2 基于Verilog的驗(yàn)證平臺(tái)示意圖
1.3 SystemVerilog?Assertion
SystemVerilog是Gateway公司的Verilog的最新后繼者,Accellera委員會(huì)已將SystemVerilog 3.1定為一個(gè)標(biāo)準(zhǔn),斷言語(yǔ)言被納入SystemVerilog,成為標(biāo)準(zhǔn)的一部分,即SVA。SVA允許把斷言語(yǔ)言應(yīng)用到設(shè)計(jì)的一系列工具,它具有豐富的語(yǔ)法,可以完美地描述時(shí)序相關(guān)的狀況。其卓越性主要體現(xiàn)在對(duì)時(shí)間的控制上,設(shè)計(jì)和驗(yàn)證工程師可以把對(duì)硬件設(shè)計(jì)的期望行為進(jìn)行編碼,創(chuàng)建對(duì)總線協(xié)議的詳細(xì)檢驗(yàn)。如圖3所示,包含加入SVA后的驗(yàn)證環(huán)境,通過(guò)把SVA直接與設(shè)計(jì)相連,可以和測(cè)試平臺(tái)有效的共享信息,模擬環(huán)境的性能有了極大的提高[9]。加入SVA后的驗(yàn)證環(huán)境如圖3所示,通過(guò)把SVA直接與設(shè)計(jì)相連,可以和測(cè)試平臺(tái)有效的共享信息,同時(shí)還可以增強(qiáng)SVA檢查器的重用性。
圖3 SVA驗(yàn)證平臺(tái)示意圖
2 NOR FLASH控制器驗(yàn)證平臺(tái)
2.1 NOR FLASH控制器功能
本文所驗(yàn)證的NOR FLASH控制器(以下簡(jiǎn)稱FLASH控制器)是一個(gè)基于FPGA設(shè)計(jì)的子模塊,控制外部NOR FLASH存儲(chǔ)器的讀取,整個(gè)控制器邏輯運(yùn)行在Xilinx公司的Virtex5系列芯片??刂破髂K主要是對(duì)多個(gè)控制信號(hào)和地址信號(hào)進(jìn)行控制,達(dá)到與NOR FLASH交互的目的。支持SPANSION公司的S29GL512P芯片。
2.2 NOR FLASH控制器驗(yàn)證平臺(tái)組成
根據(jù)NOR FLASH控制器的需求,本設(shè)計(jì)需要驗(yàn)證控制器對(duì)存儲(chǔ)器的讀頁(yè)和讀時(shí)序進(jìn)行驗(yàn)證?;谏鲜鲂枨?,本文所搭建的基于SystemVerilog?Assertion(SVA)和Verilog HDL驗(yàn)證平臺(tái)如圖4所示。
圖4 NOR FLASH控制器驗(yàn)證平臺(tái)示意圖
2.3 S29GL芯片模型
S29GL芯片模型的作用相當(dāng)于實(shí)體的存儲(chǔ)器,可以產(chǎn)生和真實(shí)存儲(chǔ)器件近似的操作行為。此模型是從SPANSION公司官網(wǎng)下載的基于Verilog HDL的芯片仿真模型。它是FLASH芯片的仿真模型,可以依照S29GL512P芯片手冊(cè)上的時(shí)序要求,對(duì)模型進(jìn)行相關(guān)的讀/寫(xiě)等操作,支持對(duì)芯片的功能仿真。
2.4 FLASH_bfm模塊
FLASH_bfm模塊接口信號(hào)是FLASH芯片模型的讀、寫(xiě)、片選使能等信號(hào),內(nèi)部封裝了FLASH模型的讀取、寫(xiě)入、復(fù)位等函數(shù)(task),驗(yàn)證平臺(tái)可以調(diào)用這些task,完成對(duì)FLASH芯片模型的特定操作。
2.5 標(biāo)準(zhǔn)參考模型和計(jì)分板模塊
標(biāo)準(zhǔn)參考模型模塊接口信號(hào)是FLASH芯片模型的片選使能、地址和數(shù)據(jù)等信號(hào),調(diào)用FLASH_bfm模塊編寫(xiě)的讀任務(wù),實(shí)現(xiàn)了和FLASH控制器相同的功能,并將讀取的數(shù)據(jù)輸入給計(jì)分板。計(jì)分板模塊主要用來(lái)比對(duì)標(biāo)準(zhǔn)參考模型模塊讀取的數(shù)據(jù)和FLASH控制器(即DUT)輸出的數(shù)據(jù)是否一致,其接口是地址和數(shù)據(jù)等信號(hào),輸出仿真比對(duì)的結(jié)果。
2.6 發(fā)生器和時(shí)鐘、復(fù)位信號(hào)模塊
發(fā)生器模塊主要用于產(chǎn)生FLASH寫(xiě)數(shù)據(jù)和地址。本設(shè)計(jì)采用直接賦值的方式,即將控制器設(shè)計(jì)需求中需要燒錄的數(shù)據(jù)文件中的數(shù)據(jù)和地址讀取到一個(gè)存儲(chǔ)空間中。 存儲(chǔ)空間的裝載采用Verilog HDL的系統(tǒng)任務(wù)$readmemh來(lái)實(shí)現(xiàn)。時(shí)鐘、復(fù)位信號(hào)模塊按照控制器的需求,產(chǎn)生指定頻率的時(shí)鐘和指定復(fù)位時(shí)間的復(fù)位信號(hào)輸入給FLASH控制器。當(dāng)FLASH控制器收到相應(yīng)激勵(lì)后,產(chǎn)生FLASH讀、片選使能和地址信號(hào)輸入給FLASH芯片模型。
2.7 SVA模塊
SVA模塊接口信號(hào)是控制器的控制、地址和數(shù)據(jù)等信號(hào),在頂層文件中使用bind綁定語(yǔ)句,將SVA模塊與控制器模塊的端口信號(hào)捆綁在一起。驗(yàn)證FLASH控制器的讀時(shí)序是否滿足S29GL512P芯片的要求。
2.8 事務(wù)日志模塊
本模塊主要用來(lái)記錄驗(yàn)證過(guò)程中的數(shù)據(jù)、異常等信息。本設(shè)計(jì)中利用此模塊記錄FLASH芯片模型中的地址、數(shù)據(jù)變化,采用Verilog HDL的系統(tǒng)任務(wù)$fmonitor來(lái)實(shí)現(xiàn)。
3 驗(yàn)證結(jié)果
本文驗(yàn)證平臺(tái)采用的系統(tǒng)環(huán)境是Windows操作系統(tǒng),使用Mentor Graphics公司的Questa Sim 10.0c和HDL Designer Series 2011.1代碼設(shè)計(jì)工具,對(duì)NOR FLASH控制器的數(shù)據(jù)和時(shí)序進(jìn)行了驗(yàn)證。
3.1 控制器數(shù)據(jù)驗(yàn)證
仿真平臺(tái)基于FLASH_bfm模塊封裝的task,對(duì)FLASH模型進(jìn)行寫(xiě)buffer操作如圖5所示。標(biāo)準(zhǔn)參考模型基于FLASH_bfm模塊中封裝的task對(duì)FLASH模型的讀操作如圖6所示。其中FLASH_OE_n為讀使能信號(hào),F(xiàn)LASH_WE_n為寫(xiě)使能信號(hào),F(xiàn)LASH_CE_n為片選使能信號(hào),F(xiàn)LASH_addr為地址信號(hào),F(xiàn)LASH_data為數(shù)據(jù)信號(hào)。從兩圖對(duì)比可以看出,向FLASH模型中寫(xiě)入的數(shù)據(jù)和標(biāo)準(zhǔn)參考模型讀出的數(shù)據(jù)一致,驗(yàn)證了仿真模型的正確性。
圖5 仿真平臺(tái)寫(xiě)buffer波形圖
圖6 標(biāo)準(zhǔn)參考模型讀FLASH模型波形圖
控制器對(duì)FLASH模型的讀操作的結(jié)果如圖7所示。其中:FLASH_CE_n為控制器發(fā)出的片選使能信號(hào);FLASH_OE_n為控制器發(fā)出的讀使能信號(hào);FLASH_WE_n為控制器發(fā)出的寫(xiě)使能信號(hào);FLASH_addr為控制器發(fā)出的地址信號(hào);FLASH_data為控制器接收到的數(shù)據(jù)信號(hào)。從仿真波形中可以看到,控制器讀出的數(shù)據(jù)與仿真器寫(xiě)入的數(shù)據(jù)一致,同時(shí)與標(biāo)準(zhǔn)參考模型讀出的數(shù)據(jù)一致,即控制器能夠正確的讀取外部NOR FLASH芯片中寫(xiě)入的數(shù)據(jù)。
圖7 FLASH控制器讀FLASH模型波形圖
3.2 控制器時(shí)序驗(yàn)證
本文對(duì)控制器讀時(shí)序采用SVA進(jìn)行驗(yàn)證,圖8是驗(yàn)證完成讀操作時(shí)鐘周期的斷言運(yùn)行結(jié)果。
圖8 Tavav波形圖
圖8中:FLASH_CE_n是控制器的片選使能信號(hào);FLASH_OE_n是控制器讀使能信號(hào);FLASH_WE_n是控制器寫(xiě)使能信號(hào);a_Tavav是對(duì)控制器完成讀操作時(shí)鐘周期的斷言。芯片手冊(cè)中要求完成讀操作的時(shí)間不能小于110 ns。圖中,第5個(gè)是斷言波形,藍(lán)色表示斷言是“inactive”狀態(tài),綠色表示斷言是“active”狀態(tài),如果斷言檢測(cè)到時(shí)序錯(cuò)誤會(huì)出現(xiàn)紅色的小箭頭[10]。從圖中的運(yùn)行結(jié)果,讀時(shí)鐘周期滿足要求。本文中對(duì)芯片片選和地址穩(wěn)定到合法數(shù)據(jù)輸出的(Telqv)時(shí)間間隔,地址到合法數(shù)據(jù)輸出(Tapa)時(shí)間間隔,也分別采用兩條斷言進(jìn)行驗(yàn)證。
4 結(jié) 語(yǔ)
本文按照RTCA/DO?254設(shè)計(jì)保證規(guī)范的要求,利用SVA和Verilog HDL構(gòu)建了一種NOR FLASH控制器的驗(yàn)證平臺(tái)。該平臺(tái)對(duì)FPGA設(shè)計(jì)中NOR FLASH控制器的需求規(guī)范進(jìn)行了成功的驗(yàn)證。平臺(tái)的復(fù)用性和測(cè)試性為以后系統(tǒng)的驗(yàn)證,設(shè)計(jì)的更改后的重復(fù)驗(yàn)證提供便利,提高了驗(yàn)證的效率。
參考文獻(xiàn)
[1] HILDERMAN V, BAGHI T. Avionics certification: a complete guide to DO?254 (hardware) [M]. America: Avionics Communications Inc, 2007.
[2] 范博書(shū).民用飛機(jī)研發(fā)過(guò)程中的確認(rèn)與驗(yàn)證[C]//2013年航空試驗(yàn)測(cè)試技術(shù)峰會(huì)暨學(xué)術(shù)交流會(huì)論文集.北京:中國(guó)航空學(xué)會(huì),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] 魏國(guó).一種NAND FLASH控制器驗(yàn)證平臺(tái)的設(shè)計(jì)[J].電子科技,2013(7):142?143.
[7] 杜旭,夏曉菲,趙宇.總線功能模型在集成電路功能驗(yàn)證中的設(shè)計(jì)與應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2004(5):130?133.
[8] 劉星.王慧.一種基于Verilog的驗(yàn)證平臺(tái)搭建及應(yīng)用[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] 李玉學(xué),白忠臣,秦水介.基于Verilog HDL的FIR數(shù)字濾波器的優(yōu)化設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2014,37(7):154?156.
[12] 許莉婭,段帥君,李傳南.基于Verilog HDL語(yǔ)言的CAN總線控制器設(shè)計(jì)及驗(yàn)證[J].現(xiàn)代電子技術(shù),2012,35(10):43?46.
[13] 唐寧,常青.航空數(shù)據(jù)總線技術(shù)分析研究[J].現(xiàn)代電子技術(shù),2014,37(4):64?69.endprint