文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190327
中文引用格式: 張偉東,,董振興,朱巖,,等. 星載固態(tài)存儲(chǔ)控制器標(biāo)準(zhǔn)化通用仿真測(cè)試平臺(tái)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2019,45(7):117-120.
英文引用格式: Zhang Weidong,,Dong Zhenxing,,Zhu Yan,,et al. Design of standardized universal simulation test platform for onboard solid state memory controllers[J]. Application of Electronic Technique,,2019,45(7):117-120.
0 引言
星載固態(tài)存儲(chǔ)控制器是衛(wèi)星的數(shù)據(jù)處理中心,負(fù)責(zé)衛(wèi)星工程參數(shù)和有效載荷科學(xué)數(shù)據(jù)的接收,、存儲(chǔ)與傳輸,。星載固態(tài)存儲(chǔ)控制器使用現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)作為處理核心,。FPGA是一種可編程的信息處理器件,,可通過改變其配置信息實(shí)現(xiàn)不同功能,具有高集成度,、高速,、高可靠性等特點(diǎn),在航天領(lǐng)域內(nèi)得到了廣泛應(yīng)用,。但是當(dāng)FPGA中的程序存在隱性缺陷時(shí),,如因外部異常輸入導(dǎo)致的內(nèi)部功能模塊狀態(tài)機(jī)運(yùn)行異常時(shí),會(huì)導(dǎo)致FPGA輸出錯(cuò)誤信號(hào),,進(jìn)而導(dǎo)致整個(gè)系統(tǒng)功能紊亂,。因此需要對(duì)FPGA設(shè)計(jì)進(jìn)行功能測(cè)試和時(shí)序測(cè)試。此外,,由于航天任務(wù)對(duì)可靠性和安全性的特殊要求,,還需要對(duì)其進(jìn)行余量測(cè)試、安全性測(cè)試,、恢復(fù)性測(cè)試以及邊界測(cè)試等[1],。
圖1所示為傳統(tǒng)功能仿真測(cè)試平臺(tái)模型。傳統(tǒng)功能仿真測(cè)試平臺(tái)由激勵(lì)模塊,、待測(cè)設(shè)計(jì)和接收模塊三部分組成,。其特點(diǎn)是結(jié)構(gòu)簡單、功能單一,,沒有統(tǒng)一的架構(gòu)和標(biāo)準(zhǔn),,且大都是基于特定的型號(hào)任務(wù)所開發(fā)的。這種“定制式”的測(cè)試平臺(tái)存在很多弊端,,如通用性和可移植性差,、可讀性差、不利于管理等,。為解決上述問題,,提出了一種基于System Verilog語言編寫的星載固態(tài)存儲(chǔ)控制器通用仿真測(cè)試平臺(tái)架構(gòu),其內(nèi)部設(shè)計(jì)采用層次化模型,內(nèi)部接口與總線均采用由ARM公司提出的高級(jí)外設(shè)總線標(biāo)準(zhǔn)(Advanced Peripheral Bus,,APB),。
1 標(biāo)準(zhǔn)化通用測(cè)試平臺(tái)設(shè)計(jì)
1.1 測(cè)試平臺(tái)概述
基于Verilog HDL和VHDL語言開發(fā)的測(cè)試平臺(tái)存在重復(fù)利用率差、開發(fā)效率低等問題,,而采用面向?qū)ο蟮膶S抿?yàn)證語言System Verilog可以有效地解決這些問題,。System Verilog充分吸收和借鑒了Verilog HDL、VHDL,、System C和C++等語言的特性,使其可以在更高的抽象層級(jí)上對(duì)高度復(fù)雜的設(shè)計(jì)進(jìn)行測(cè)試驗(yàn)證[2],。此外,測(cè)試平臺(tái)架構(gòu)應(yīng)采用模塊化和標(biāo)準(zhǔn)化設(shè)計(jì),,從而使測(cè)試平臺(tái)具有更好的通用性,,還應(yīng)采用層次化結(jié)構(gòu)設(shè)計(jì),以有效增強(qiáng)測(cè)試平臺(tái)的靈活性和穩(wěn)定性,。明確的層次設(shè)計(jì)可以有效地定義各層之間的接口,,層與層之間的獨(dú)立性也使得每一層可以采用其最合適的技術(shù)去實(shí)現(xiàn)而不影響其他層。
1.2 層次化結(jié)構(gòu)設(shè)計(jì)
星載固態(tài)存儲(chǔ)控制器設(shè)計(jì)的標(biāo)準(zhǔn)化通用仿真測(cè)試平臺(tái)包含5個(gè)層次:測(cè)試層,、場景層,、功能層、命令層和信號(hào)層,,層次化結(jié)構(gòu)通用測(cè)試平臺(tái)架構(gòu)見圖2,。
最底層為信號(hào)層,負(fù)責(zé)將待測(cè)設(shè)計(jì)連接到測(cè)試平臺(tái),,完成模塊信號(hào)對(duì)接,。信號(hào)層上層是命令層,驅(qū)動(dòng)單元接收來自功能層的命令信息后將總線上的命令驅(qū)動(dòng)到待測(cè)設(shè)計(jì)的輸入上,;接收單元負(fù)責(zé)收集待測(cè)設(shè)計(jì)的激勵(lì)響應(yīng)輸出,,并且按照命令進(jìn)行分組,;監(jiān)視單元負(fù)責(zé)監(jiān)視那些不受命令信號(hào)約束的獨(dú)立信號(hào),,其可穿越整個(gè)命令的周期來搜尋這些信號(hào)的變化[3]。另外,,如果當(dāng)程序中 “不應(yīng)發(fā)生”的事情的確發(fā)生的時(shí)候,,監(jiān)視單元將進(jìn)行報(bào)警。因此,,監(jiān)視單元和接收單元的共同作用可以更加全面地監(jiān)控測(cè)試過程中的狀態(tài)變化,,從而提高測(cè)試結(jié)果的可靠性。
功能層向下面對(duì)命令層,。任務(wù)調(diào)度單元接收來自場景層的任務(wù)后,,將任務(wù)分解成若干獨(dú)立的命令。這些命令在被送往驅(qū)動(dòng)單元的同時(shí)也會(huì)被送往檢驗(yàn)單元。檢驗(yàn)單元負(fù)責(zé)對(duì)比實(shí)際待測(cè)設(shè)計(jì)的激勵(lì)響應(yīng)與預(yù)測(cè)單元理想的響應(yīng)結(jié)果,。通過對(duì)檢驗(yàn)單元中數(shù)據(jù)進(jìn)行分析就可以判斷當(dāng)前任務(wù)下待測(cè)設(shè)計(jì)是否符合預(yù)期設(shè)計(jì)要求,。
場景層根據(jù)來自測(cè)試層的激勵(lì)約束,模擬實(shí)際任務(wù)中的各種場景,。發(fā)生單元的組成部分根據(jù)不同的待測(cè)設(shè)計(jì)進(jìn)行不同適應(yīng)性更改,,但基本模塊均由信號(hào)源和數(shù)據(jù)源組成。信號(hào)源根據(jù)上層的約束信息產(chǎn)生相應(yīng)激勵(lì)信號(hào),,并控制數(shù)據(jù)源開始向待測(cè)設(shè)計(jì)發(fā)送數(shù)據(jù),。
測(cè)試層為整個(gè)測(cè)試平臺(tái)的頂層,其中輸入單元用來向測(cè)試平臺(tái)發(fā)送創(chuàng)建激勵(lì)的約束,。功能覆蓋率可以衡量所有測(cè)試在測(cè)試計(jì)劃中的進(jìn)展,。
2 星載固態(tài)存儲(chǔ)控制器通用測(cè)試平臺(tái)實(shí)現(xiàn)
2.1 測(cè)試平臺(tái)架構(gòu)設(shè)計(jì)
基于層次化結(jié)構(gòu)通用測(cè)試平臺(tái)架構(gòu),結(jié)合工程型號(hào)任務(wù)需求,,搭建星載固態(tài)存儲(chǔ)控制器通用仿真測(cè)試平臺(tái),,見圖3。
通用測(cè)試平臺(tái)中各模塊接口均使用APB總線標(biāo)準(zhǔn)進(jìn)行封裝,,并增加APB總線接口模塊進(jìn)行平臺(tái)內(nèi)各模塊及測(cè)試平臺(tái)與待測(cè)設(shè)計(jì)間通信,。此外,增加參數(shù)配置模塊,,其可對(duì)發(fā)生單元中的數(shù)據(jù)源和激勵(lì)源以及驅(qū)動(dòng)單元中的時(shí)鐘和復(fù)位模塊進(jìn)行配置,。測(cè)試平臺(tái)內(nèi)嵌有參數(shù)可配置的Flash模型、SDRAM模型以及MRAM模型,。通過參數(shù)配置模塊可以對(duì)Flash模塊等進(jìn)行配置,。其中,F(xiàn)lash模型設(shè)計(jì)采用分層結(jié)構(gòu),,最底層由8 Gbit的基本單元組成,,支持主存儲(chǔ)區(qū)和空余區(qū)的讀寫,支持讀,、寫和擦除等時(shí)間參數(shù)設(shè)置和初始?jí)膲K設(shè)置,,以該基本單元為基礎(chǔ)進(jìn)行級(jí)聯(lián)擴(kuò)展,可實(shí)現(xiàn)不同存儲(chǔ)容量,、存儲(chǔ)速率以及疊裝構(gòu)型的Flash器件的陣列模擬,。
測(cè)試平臺(tái)的各項(xiàng)參數(shù)配置需在測(cè)試開始前完成,即測(cè)試前向參數(shù)配置模塊輸入配置參數(shù),,完成對(duì)Flash陣列模型及其他模塊的配置,。對(duì)待測(cè)設(shè)計(jì)進(jìn)行測(cè)試時(shí),由測(cè)試輸入模塊向測(cè)試平臺(tái)注入約束條件,,發(fā)生單元根據(jù)收到的約束條件產(chǎn)生相應(yīng)的激勵(lì)源,,激勵(lì)信號(hào)經(jīng)任務(wù)調(diào)度單元分別加載到檢驗(yàn)單元和待測(cè)設(shè)計(jì),。同時(shí)數(shù)據(jù)源根據(jù)約束條件開始向任務(wù)調(diào)度單元發(fā)送數(shù)據(jù)。任務(wù)調(diào)度單元接收到待測(cè)任務(wù)信息后將待測(cè)任務(wù)信息下發(fā)到驅(qū)動(dòng)單元,。驅(qū)動(dòng)單元生成驅(qū)動(dòng)配置文件,,調(diào)配各個(gè)模塊向待測(cè)設(shè)計(jì)輸入數(shù)據(jù)及相應(yīng)的時(shí)鐘復(fù)位信號(hào)。待測(cè)設(shè)計(jì)在接收到激勵(lì)輸入和數(shù)據(jù)后產(chǎn)生激勵(lì)響應(yīng),,接收單元對(duì)激勵(lì)響應(yīng)進(jìn)行分類,,隨后將其送入到檢驗(yàn)單元中的比較器。檢驗(yàn)單元收到的激勵(lì)輸入被加載到參考模型中產(chǎn)生理想激勵(lì),,隨后比較器將理想激勵(lì)與實(shí)際激勵(lì)響應(yīng)進(jìn)行比較,。通過對(duì)檢驗(yàn)單元輸出結(jié)果的分析就可以判斷在當(dāng)前約束條件下待測(cè)設(shè)計(jì)是否符合預(yù)期設(shè)計(jì)目標(biāo)。功能覆蓋率模塊收集整個(gè)測(cè)試過程中的信息作為評(píng)價(jià)測(cè)試的充分性證據(jù),。
2.2 工程組織架構(gòu)
通用仿真測(cè)試平臺(tái)運(yùn)行在仿真工具QuestaSim10.4c上,,使用System Verilog語言開發(fā)。測(cè)試平臺(tái)采用層次化組織架構(gòu),,工程組織架構(gòu)見圖4,。
測(cè)試工程組織架構(gòu)為樹狀結(jié)構(gòu),頂層文件名為“Top_sim”,,其中包含兩個(gè)主要的一級(jí)結(jié)構(gòu):約束文件(Constri_files)和參數(shù)配置文件(Para_cfg),。約束文件包含數(shù)據(jù)輸入約束(Data_in)和激勵(lì)輸入約束(Drive_in)兩個(gè)二級(jí)結(jié)構(gòu)。激勵(lì)輸入約束下分為直接測(cè)試(Direct)和隨機(jī)測(cè)試(Random)兩個(gè)三級(jí)結(jié)構(gòu)[4],。直接測(cè)試可以保證測(cè)試驗(yàn)證過程有一定的復(fù)現(xiàn)性,,而隨機(jī)測(cè)試可以對(duì)待測(cè)設(shè)計(jì)進(jìn)行更為充分的驗(yàn)證。參數(shù)配置文件(Para_cfg)用于對(duì)測(cè)試平臺(tái)中相關(guān)模塊進(jìn)行配置以滿足待測(cè)設(shè)計(jì)的要求,。測(cè)試平臺(tái)的執(zhí)行腳本文件是采用TCL語言編寫的擴(kuò)展名為.do的文件,,用于在測(cè)試時(shí)對(duì)工程文件進(jìn)行自動(dòng)組織與控制。
3 實(shí)驗(yàn)與應(yīng)用
基于上述設(shè)計(jì)所開發(fā)的通用仿真測(cè)試平臺(tái)已成功應(yīng)用于XX-09型號(hào)衛(wèi)星和XX-5A型號(hào)衛(wèi)星數(shù)傳FPGA的仿真測(cè)試,。根據(jù)開發(fā)方提供的源程序以及《XX型號(hào)衛(wèi)星數(shù)傳FPGA需求規(guī)格說明》開展測(cè)試,,測(cè)試流程圖見圖5。
首先運(yùn)用代碼檢查工具對(duì)RTL級(jí)代碼進(jìn)行編碼規(guī)則檢查和代碼審查,,隨后使用測(cè)試平臺(tái)分別對(duì)待測(cè)設(shè)計(jì)進(jìn)行功能仿真測(cè)試,、對(duì)邏輯綜合后網(wǎng)表文件開展門級(jí)仿真測(cè)試以及對(duì)布局布線后網(wǎng)表文件開展時(shí)序仿真測(cè)試。最后,,使用靜態(tài)時(shí)序分析工具和邏輯等效性檢查工具對(duì)待測(cè)設(shè)計(jì)進(jìn)行靜態(tài)時(shí)序分析和邏輯等效性檢查[5],。其中,,功能仿真測(cè)試和門級(jí)仿真測(cè)試均在本文的通用仿真測(cè)試平臺(tái)上完成,。
以XX-09型號(hào)衛(wèi)星為例,存儲(chǔ)單元為兩個(gè)64 Gbit NAND Flash疊裝芯片并聯(lián)構(gòu)成的128 Gbit NAND Flash存儲(chǔ)陣列,,每個(gè)64 Gbit NAND Flash由8片8 Gbit的存儲(chǔ)基片組成[6],。根據(jù)XX-09型號(hào)衛(wèi)星任務(wù)數(shù)傳FPGA任務(wù)書與需求規(guī)格說明,,對(duì)數(shù)傳FPGA開展功能需求分析及接口需求分析,共整理出82個(gè)功能相關(guān)測(cè)試子項(xiàng),,設(shè)計(jì)了415個(gè)測(cè)試用例,,覆蓋了功能測(cè)試、性能測(cè)試,、時(shí)序測(cè)試,、接口測(cè)試、安全性測(cè)試,、余量測(cè)試,、恢復(fù)性測(cè)試、邊界測(cè)試,、等效性檢查共9種測(cè)試類型,。仿真測(cè)試模塊覆蓋率和總體覆蓋率結(jié)果見圖6。功能仿真中對(duì)語句覆蓋率和分支覆蓋率進(jìn)行分析,,語句覆蓋率達(dá)到91.5%,,分支覆蓋率達(dá)到97.4%,未覆蓋原因?yàn)閏ase條件語句中default分支不可達(dá),,經(jīng)確認(rèn)測(cè)試后功能正常,。
對(duì)XX-5A和XX-09型號(hào)衛(wèi)星數(shù)傳FPGA分別采用傳統(tǒng)仿真測(cè)試平臺(tái)與本文仿真測(cè)試平臺(tái)進(jìn)行仿真測(cè)試,統(tǒng)計(jì)覆蓋率與仿真周期數(shù),,結(jié)果見表1,。
由表1知,傳統(tǒng)仿真測(cè)試平臺(tái)與通用仿真測(cè)試平臺(tái)均可完成100%功能覆蓋率,,但通用仿真測(cè)試平臺(tái)的仿真周期數(shù)是傳統(tǒng)仿真測(cè)試平臺(tái)的48%左右,,而且具有更好的語句覆蓋率和分支覆蓋率。綜上,,本文所設(shè)計(jì)的仿真測(cè)試平臺(tái)覆蓋率性能良好并具有一定的通用性,,相較于傳統(tǒng)仿真測(cè)試平臺(tái)可以有效縮短測(cè)試時(shí)間,并可以有效提高測(cè)試覆蓋率,。
4 結(jié)論
為解決傳統(tǒng)測(cè)試平臺(tái)通用性和繼承性差,、難升級(jí)、難維護(hù)等問題[7],,提出了一種基于層次化結(jié)構(gòu)設(shè)計(jì)的仿真測(cè)試平臺(tái)架構(gòu),,并在此基礎(chǔ)上結(jié)合APB總線標(biāo)準(zhǔn)開發(fā)了星載固態(tài)存儲(chǔ)控制器的通用仿真測(cè)試平臺(tái)。利用該平臺(tái)對(duì)兩個(gè)衛(wèi)星型號(hào)任務(wù)的數(shù)傳FPGA進(jìn)行了仿真驗(yàn)證測(cè)試,,結(jié)果表明測(cè)試平臺(tái)可以有效支持對(duì)不同型號(hào)星載固態(tài)存儲(chǔ)控制器的仿真測(cè)試,,相比于傳統(tǒng)測(cè)試平臺(tái)優(yōu)化了測(cè)試流程并提高測(cè)試效率,具有很好的工程應(yīng)用價(jià)值,。
參考文獻(xiàn)
[1] 周珊,,楊雅雯,,王金波.航天高可靠FPGA測(cè)試技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,,27(3):1-5,,11.
[2] 高虎,封二強(qiáng),,趙剛.基于Testbench的FPGA實(shí)物自動(dòng)化測(cè)試環(huán)境設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2018,44(4):48-51.
[3] FIERGOLSKI A.Simulation environment based on the universal verification methodology[J].Journal of Instrumentation,,2017,,12(1):C01001.
[4] 楊志勇,董振興,,朱巖,,等.星載高速大容量存儲(chǔ)器文件化壞塊管理設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,,43(6):11-14.
[5] BIRLA S,,SHARMA S,SHUKLA N K.UVM-powered hardware/software co-verification[J].Journal of Information and Optimization Sciences,,2017,,38(6):945-952.
[6] 林天靜,阮翔,,劉春.基于Flash控制器的FPGA在線加載功能設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2019,45(1):88-91.
[7] 陳琳娜,,孟建熠,,林志濤.面向串行總線的層次化UVM驗(yàn)證平臺(tái)設(shè)計(jì)[J].傳感器與微系統(tǒng),2018,,37(9):84-86,,89.
作者信息:
張偉東1,2,,3,,董振興1,2,,朱 巖1,,2,安軍社1,,2
(1.中國科學(xué)院 復(fù)雜航天系統(tǒng)電子信息技術(shù)國防科技創(chuàng)新重點(diǎn)實(shí)驗(yàn)室,,北京100190;
2.中國科學(xué)院 國家空間科學(xué)中心,,北京 100190,;3.中國科學(xué)院大學(xué),,北京100190)