文獻(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)場(chǎng)可編程邏輯門(mén)陣列(Field Programmable Gate Array,,F(xiàn)PGA)作為處理核心,。FPGA是一種可編程的信息處理器件,可通過(guò)改變其配置信息實(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)簡(jiǎn)單、功能單一,,沒(méi)有統(tǒng)一的架構(gòu)和標(biāo)準(zhǔn),,且大都是基于特定的型號(hào)任務(wù)所開(kāi)發(fā)的。這種“定制式”的測(cè)試平臺(tái)存在很多弊端,,如通用性和可移植性差,、可讀性差、不利于管理等,。為解決上述問(wèn)題,,提出了一種基于System Verilog語(yǔ)言編寫(xiě)的星載固態(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語(yǔ)言開(kāi)發(fā)的測(cè)試平臺(tái)存在重復(fù)利用率差,、開(kāi)發(fā)效率低等問(wèn)題,,而采用面向?qū)ο蟮膶?zhuān)用驗(yàn)證語(yǔ)言System Verilog可以有效地解決這些問(wèn)題。System Verilog充分吸收和借鑒了Verilog HDL,、VHDL,、System C和C++等語(yǔ)言的特性,使其可以在更高的抽象層級(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è)試層、場(chǎng)景層,、功能層,、命令層和信號(hào)層,層次化結(jié)構(gòu)通用測(cè)試平臺(tái)架構(gòu)見(jiàn)圖2,。
最底層為信號(hào)層,,負(fù)責(zé)將待測(cè)設(shè)計(jì)連接到測(cè)試平臺(tái),完成模塊信號(hào)對(duì)接,。信號(hào)層上層是命令層,,驅(qū)動(dòng)單元接收來(lái)自功能層的命令信息后將總線上的命令驅(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è)命令的周期來(lái)搜尋這些信號(hào)的變化[3]。另外,,如果當(dāng)程序中 “不應(yīng)發(fā)生”的事情的確發(fā)生的時(shí)候,,監(jiān)視單元將進(jìn)行報(bào)警。因此,,監(jiān)視單元和接收單元的共同作用可以更加全面地監(jiān)控測(cè)試過(guò)程中的狀態(tài)變化,,從而提高測(cè)試結(jié)果的可靠性。
功能層向下面對(duì)命令層,。任務(wù)調(diào)度單元接收來(lái)自場(chǎng)景層的任務(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é)果,。通過(guò)對(duì)檢驗(yàn)單元中數(shù)據(jù)進(jìn)行分析就可以判斷當(dāng)前任務(wù)下待測(cè)設(shè)計(jì)是否符合預(yù)期設(shè)計(jì)要求。
場(chǎng)景層根據(jù)來(lái)自測(cè)試層的激勵(lì)約束,,模擬實(shí)際任務(wù)中的各種場(chǎng)景,。發(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ù)源開(kāi)始向待測(cè)設(shè)計(jì)發(fā)送數(shù)據(jù)。
測(cè)試層為整個(gè)測(cè)試平臺(tái)的頂層,,其中輸入單元用來(lá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),見(jiàn)圖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模型,。通過(guò)參數(shù)配置模塊可以對(duì)Flash模塊等進(jìn)行配置。其中,F(xiàn)lash模型設(shè)計(jì)采用分層結(jié)構(gòu),,最底層由8 Gbit的基本單元組成,,支持主存儲(chǔ)區(qū)和空余區(qū)的讀寫(xiě),支持讀,、寫(xiě)和擦除等時(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è)試開(kāi)始前完成,即測(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ù)約束條件開(kāi)始向任務(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)行分類(lèi),隨后將其送入到檢驗(yàn)單元中的比較器,。檢驗(yàn)單元收到的激勵(lì)輸入被加載到參考模型中產(chǎn)生理想激勵(lì),,隨后比較器將理想激勵(lì)與實(shí)際激勵(lì)響應(yīng)進(jìn)行比較。通過(guò)對(duì)檢驗(yàn)單元輸出結(jié)果的分析就可以判斷在當(dāng)前約束條件下待測(cè)設(shè)計(jì)是否符合預(yù)期設(shè)計(jì)目標(biāo),。功能覆蓋率模塊收集整個(gè)測(cè)試過(guò)程中的信息作為評(píng)價(jià)測(cè)試的充分性證據(jù),。
2.2 工程組織架構(gòu)
通用仿真測(cè)試平臺(tái)運(yùn)行在仿真工具QuestaSim10.4c上,使用System Verilog語(yǔ)言開(kāi)發(fā),。測(cè)試平臺(tái)采用層次化組織架構(gòu),,工程組織架構(gòu)見(jiàn)圖4。
測(cè)試工程組織架構(gòu)為樹(shù)狀結(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)證過(guò)程有一定的復(fù)現(xiàn)性,,而隨機(jī)測(cè)試可以對(duì)待測(cè)設(shè)計(jì)進(jìn)行更為充分的驗(yàn)證,。參數(shù)配置文件(Para_cfg)用于對(duì)測(cè)試平臺(tái)中相關(guān)模塊進(jìn)行配置以滿(mǎn)足待測(cè)設(shè)計(jì)的要求。測(cè)試平臺(tái)的執(zhí)行腳本文件是采用TCL語(yǔ)言編寫(xiě)的擴(kuò)展名為.do的文件,用于在測(cè)試時(shí)對(duì)工程文件進(jìn)行自動(dòng)組織與控制,。
3 實(shí)驗(yàn)與應(yīng)用
基于上述設(shè)計(jì)所開(kāi)發(fā)的通用仿真測(cè)試平臺(tái)已成功應(yīng)用于XX-09型號(hào)衛(wèi)星和XX-5A型號(hào)衛(wèi)星數(shù)傳FPGA的仿真測(cè)試,。根據(jù)開(kāi)發(fā)方提供的源程序以及《XX型號(hào)衛(wèi)星數(shù)傳FPGA需求規(guī)格說(shuō)明》開(kāi)展測(cè)試,測(cè)試流程圖見(jiàn)圖5,。
首先運(yùn)用代碼檢查工具對(duì)RTL級(jí)代碼進(jìn)行編碼規(guī)則檢查和代碼審查,,隨后使用測(cè)試平臺(tái)分別對(duì)待測(cè)設(shè)計(jì)進(jìn)行功能仿真測(cè)試、對(duì)邏輯綜合后網(wǎng)表文件開(kāi)展門(mén)級(jí)仿真測(cè)試以及對(duì)布局布線后網(wǎng)表文件開(kāi)展時(shí)序仿真測(cè)試,。最后,,使用靜態(tài)時(shí)序分析工具和邏輯等效性檢查工具對(duì)待測(cè)設(shè)計(jì)進(jìn)行靜態(tài)時(shí)序分析和邏輯等效性檢查[5]。其中,,功能仿真測(cè)試和門(mén)級(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ù)書(shū)與需求規(guī)格說(shuō)明,對(duì)數(shù)傳FPGA開(kāi)展功能需求分析及接口需求分析,,共整理出82個(gè)功能相關(guān)測(cè)試子項(xiàng),,設(shè)計(jì)了415個(gè)測(cè)試用例,覆蓋了功能測(cè)試,、性能測(cè)試,、時(shí)序測(cè)試、接口測(cè)試,、安全性測(cè)試,、余量測(cè)試、恢復(fù)性測(cè)試,、邊界測(cè)試,、等效性檢查共9種測(cè)試類(lèi)型。仿真測(cè)試模塊覆蓋率和總體覆蓋率結(jié)果見(jiàn)圖6,。功能仿真中對(duì)語(yǔ)句覆蓋率和分支覆蓋率進(jìn)行分析,,語(yǔ)句覆蓋率達(dá)到91.5%,分支覆蓋率達(dá)到97.4%,,未覆蓋原因?yàn)閏ase條件語(yǔ)句中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é)果見(jiàn)表1。
由表1知,,傳統(tǒng)仿真測(cè)試平臺(tái)與通用仿真測(cè)試平臺(tái)均可完成100%功能覆蓋率,,但通用仿真測(cè)試平臺(tái)的仿真周期數(shù)是傳統(tǒng)仿真測(cè)試平臺(tái)的48%左右,,而且具有更好的語(yǔ)句覆蓋率和分支覆蓋率。綜上,,本文所設(shè)計(jì)的仿真測(cè)試平臺(tái)覆蓋率性能良好并具有一定的通用性,,相較于傳統(tǒng)仿真測(cè)試平臺(tái)可以有效縮短測(cè)試時(shí)間,并可以有效提高測(cè)試覆蓋率,。
4 結(jié)論
為解決傳統(tǒng)測(cè)試平臺(tái)通用性和繼承性差,、難升級(jí)、難維護(hù)等問(wèn)題[7],,提出了一種基于層次化結(jié)構(gòu)設(shè)計(jì)的仿真測(cè)試平臺(tái)架構(gòu),,并在此基礎(chǔ)上結(jié)合APB總線標(biāo)準(zhǔn)開(kāi)發(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.中國(guó)科學(xué)院 復(fù)雜航天系統(tǒng)電子信息技術(shù)國(guó)防科技創(chuàng)新重點(diǎn)實(shí)驗(yàn)室,北京100190,;
2.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心,,北京 100190;3.中國(guó)科學(xué)院大學(xué),,北京100190)