《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 星載固態(tài)存儲控制器標(biāo)準(zhǔn)化通用仿真測試平臺設(shè)計
星載固態(tài)存儲控制器標(biāo)準(zhǔn)化通用仿真測試平臺設(shè)計
2019年電子技術(shù)應(yīng)用第7期
張偉東1,2,3,董振興1,2,朱 巖1,2,安軍社1,2
1.中國科學(xué)院 復(fù)雜航天系統(tǒng)電子信息技術(shù)國防科技創(chuàng)新重點實驗室,北京100190; 2.中國科學(xué)院 國家空間科學(xué)中心,北京 100190;3.中國科學(xué)院大學(xué),北京100190
摘要: 電子系統(tǒng)功能與復(fù)雜度的日益增加,對系統(tǒng)驗證測試的效率提出了更高要求。傳統(tǒng)衛(wèi)星測試平臺依據(jù)特定型號任務(wù)進行定制式設(shè)計,其設(shè)計開發(fā)周期長、綜合成本高,難以適應(yīng)當(dāng)前任務(wù)需求。為此,提出了一種基于System Verilog語言開發(fā)的星載固態(tài)存儲控制器通用仿真測試平臺架構(gòu),其內(nèi)部采用層次化模型,信號接口統(tǒng)一采用APB總線標(biāo)準(zhǔn),可以通過配置測試平臺數(shù)據(jù)源及格式及來適配不同容量、不同速率以及不同構(gòu)型的星載固態(tài)存儲控制器。實驗表明,本文設(shè)計的測試平臺具有一定的通用性,相比于傳統(tǒng)測試平臺可以有效地節(jié)省測試時間并提高測試覆蓋率。
中圖分類號: TN919.5
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190327
中文引用格式: 張偉東,董振興,朱巖,等. 星載固態(tài)存儲控制器標(biāo)準(zhǔn)化通用仿真測試平臺設(shè)計[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.
Design of standardized universal simulation test platform for onboard solid state memory controllers
Zhang Weidong1,2,3,Dong Zhenxing1,2,Zhu Yan1,2,An Junshe1,2
1.Key Laboratory of Electronics and Information Technology for Space Systems,Chinese Academy of Sciences, Beijing 100190,China; 2.National Space Sciences Center,Chinese Academy of Sciences,Beijing 100190,China; 3.University of Chinese Academy of Science,Beijing 100190,China
Abstract: The increasing functionality and complexity of electronic systems places higher demands on the efficiency of system verification tests. The traditional satellite test platform is customized according to the specific model task. Its design and development cycle is long, and the comprehensive cost is difficult to adapt to the current task requirements. To this end, this paper proposes a general simulation test platform architecture for on-board solid-state storage controller based on System Verilog. It uses a hierarchical model internally, and the signal interface uses APB bus standard uniformly. It can be configured by testing the platform data source and format to adapt to onboard solid-state storage controllers of different capacities, different rates and different configurations. Experiments show that the test platform designed in this paper has certain versatility, which can effectively save test time and improve test coverage compared with traditional test platform.
Key words : onboard;solid state memory controllers;test platform;System Verilog

0 引言

    星載固態(tài)存儲控制器是衛(wèi)星的數(shù)據(jù)處理中心,負責(zé)衛(wèi)星工程參數(shù)和有效載荷科學(xué)數(shù)據(jù)的接收、存儲與傳輸。星載固態(tài)存儲控制器使用現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)作為處理核心。FPGA是一種可編程的信息處理器件,可通過改變其配置信息實現(xiàn)不同功能,具有高集成度、高速、高可靠性等特點,在航天領(lǐng)域內(nèi)得到了廣泛應(yīng)用。但是當(dāng)FPGA中的程序存在隱性缺陷時,如因外部異常輸入導(dǎo)致的內(nèi)部功能模塊狀態(tài)機運行異常時,會導(dǎo)致FPGA輸出錯誤信號,進而導(dǎo)致整個系統(tǒng)功能紊亂。因此需要對FPGA設(shè)計進行功能測試和時序測試。此外,由于航天任務(wù)對可靠性和安全性的特殊要求,還需要對其進行余量測試、安全性測試、恢復(fù)性測試以及邊界測試等[1]。

    圖1所示為傳統(tǒng)功能仿真測試平臺模型。傳統(tǒng)功能仿真測試平臺由激勵模塊、待測設(shè)計和接收模塊三部分組成。其特點是結(jié)構(gòu)簡單、功能單一,沒有統(tǒng)一的架構(gòu)和標(biāo)準(zhǔn),且大都是基于特定的型號任務(wù)所開發(fā)的。這種“定制式”的測試平臺存在很多弊端,如通用性和可移植性差、可讀性差、不利于管理等。為解決上述問題,提出了一種基于System Verilog語言編寫的星載固態(tài)存儲控制器通用仿真測試平臺架構(gòu),其內(nèi)部設(shè)計采用層次化模型,內(nèi)部接口與總線均采用由ARM公司提出的高級外設(shè)總線標(biāo)準(zhǔn)(Advanced Peripheral Bus,APB)。

qrs4-t1.gif

1 標(biāo)準(zhǔn)化通用測試平臺設(shè)計

1.1 測試平臺概述

    基于Verilog HDL和VHDL語言開發(fā)的測試平臺存在重復(fù)利用率差、開發(fā)效率低等問題,而采用面向?qū)ο蟮膶S抿炞C語言System Verilog可以有效地解決這些問題。System Verilog充分吸收和借鑒了Verilog HDL、VHDL、System C和C++等語言的特性,使其可以在更高的抽象層級上對高度復(fù)雜的設(shè)計進行測試驗證[2]。此外,測試平臺架構(gòu)應(yīng)采用模塊化和標(biāo)準(zhǔn)化設(shè)計,從而使測試平臺具有更好的通用性,還應(yīng)采用層次化結(jié)構(gòu)設(shè)計,以有效增強測試平臺的靈活性和穩(wěn)定性。明確的層次設(shè)計可以有效地定義各層之間的接口,層與層之間的獨立性也使得每一層可以采用其最合適的技術(shù)去實現(xiàn)而不影響其他層。

1.2 層次化結(jié)構(gòu)設(shè)計

    星載固態(tài)存儲控制器設(shè)計的標(biāo)準(zhǔn)化通用仿真測試平臺包含5個層次:測試層、場景層、功能層、命令層和信號層,層次化結(jié)構(gòu)通用測試平臺架構(gòu)見圖2。 

qrs4-t2.gif

    最底層為信號層,負責(zé)將待測設(shè)計連接到測試平臺,完成模塊信號對接。信號層上層是命令層,驅(qū)動單元接收來自功能層的命令信息后將總線上的命令驅(qū)動到待測設(shè)計的輸入上;接收單元負責(zé)收集待測設(shè)計的激勵響應(yīng)輸出,并且按照命令進行分組;監(jiān)視單元負責(zé)監(jiān)視那些不受命令信號約束的獨立信號,其可穿越整個命令的周期來搜尋這些信號的變化[3]。另外,如果當(dāng)程序中 “不應(yīng)發(fā)生”的事情的確發(fā)生的時候,監(jiān)視單元將進行報警。因此,監(jiān)視單元和接收單元的共同作用可以更加全面地監(jiān)控測試過程中的狀態(tài)變化,從而提高測試結(jié)果的可靠性。

    功能層向下面對命令層。任務(wù)調(diào)度單元接收來自場景層的任務(wù)后,將任務(wù)分解成若干獨立的命令。這些命令在被送往驅(qū)動單元的同時也會被送往檢驗單元。檢驗單元負責(zé)對比實際待測設(shè)計的激勵響應(yīng)與預(yù)測單元理想的響應(yīng)結(jié)果。通過對檢驗單元中數(shù)據(jù)進行分析就可以判斷當(dāng)前任務(wù)下待測設(shè)計是否符合預(yù)期設(shè)計要求。

    場景層根據(jù)來自測試層的激勵約束,模擬實際任務(wù)中的各種場景。發(fā)生單元的組成部分根據(jù)不同的待測設(shè)計進行不同適應(yīng)性更改,但基本模塊均由信號源和數(shù)據(jù)源組成。信號源根據(jù)上層的約束信息產(chǎn)生相應(yīng)激勵信號,并控制數(shù)據(jù)源開始向待測設(shè)計發(fā)送數(shù)據(jù)。

    測試層為整個測試平臺的頂層,其中輸入單元用來向測試平臺發(fā)送創(chuàng)建激勵的約束。功能覆蓋率可以衡量所有測試在測試計劃中的進展。

2 星載固態(tài)存儲控制器通用測試平臺實現(xiàn)

2.1 測試平臺架構(gòu)設(shè)計

    基于層次化結(jié)構(gòu)通用測試平臺架構(gòu),結(jié)合工程型號任務(wù)需求,搭建星載固態(tài)存儲控制器通用仿真測試平臺,見圖3。

qrs4-t3.gif

    通用測試平臺中各模塊接口均使用APB總線標(biāo)準(zhǔn)進行封裝,并增加APB總線接口模塊進行平臺內(nèi)各模塊及測試平臺與待測設(shè)計間通信。此外,增加參數(shù)配置模塊,其可對發(fā)生單元中的數(shù)據(jù)源和激勵源以及驅(qū)動單元中的時鐘和復(fù)位模塊進行配置。測試平臺內(nèi)嵌有參數(shù)可配置的Flash模型、SDRAM模型以及MRAM模型。通過參數(shù)配置模塊可以對Flash模塊等進行配置。其中,F(xiàn)lash模型設(shè)計采用分層結(jié)構(gòu),最底層由8 Gbit的基本單元組成,支持主存儲區(qū)和空余區(qū)的讀寫,支持讀、寫和擦除等時間參數(shù)設(shè)置和初始壞塊設(shè)置,以該基本單元為基礎(chǔ)進行級聯(lián)擴展,可實現(xiàn)不同存儲容量、存儲速率以及疊裝構(gòu)型的Flash器件的陣列模擬。

    測試平臺的各項參數(shù)配置需在測試開始前完成,即測試前向參數(shù)配置模塊輸入配置參數(shù),完成對Flash陣列模型及其他模塊的配置。對待測設(shè)計進行測試時,由測試輸入模塊向測試平臺注入約束條件,發(fā)生單元根據(jù)收到的約束條件產(chǎn)生相應(yīng)的激勵源,激勵信號經(jīng)任務(wù)調(diào)度單元分別加載到檢驗單元和待測設(shè)計。同時數(shù)據(jù)源根據(jù)約束條件開始向任務(wù)調(diào)度單元發(fā)送數(shù)據(jù)。任務(wù)調(diào)度單元接收到待測任務(wù)信息后將待測任務(wù)信息下發(fā)到驅(qū)動單元。驅(qū)動單元生成驅(qū)動配置文件,調(diào)配各個模塊向待測設(shè)計輸入數(shù)據(jù)及相應(yīng)的時鐘復(fù)位信號。待測設(shè)計在接收到激勵輸入和數(shù)據(jù)后產(chǎn)生激勵響應(yīng),接收單元對激勵響應(yīng)進行分類,隨后將其送入到檢驗單元中的比較器。檢驗單元收到的激勵輸入被加載到參考模型中產(chǎn)生理想激勵,隨后比較器將理想激勵與實際激勵響應(yīng)進行比較。通過對檢驗單元輸出結(jié)果的分析就可以判斷在當(dāng)前約束條件下待測設(shè)計是否符合預(yù)期設(shè)計目標(biāo)。功能覆蓋率模塊收集整個測試過程中的信息作為評價測試的充分性證據(jù)。

2.2 工程組織架構(gòu)

    通用仿真測試平臺運行在仿真工具QuestaSim10.4c上,使用System Verilog語言開發(fā)。測試平臺采用層次化組織架構(gòu),工程組織架構(gòu)見圖4。

qrs4-t4.gif

    測試工程組織架構(gòu)為樹狀結(jié)構(gòu),頂層文件名為“Top_sim”,其中包含兩個主要的一級結(jié)構(gòu):約束文件(Constri_files)和參數(shù)配置文件(Para_cfg)。約束文件包含數(shù)據(jù)輸入約束(Data_in)和激勵輸入約束(Drive_in)兩個二級結(jié)構(gòu)。激勵輸入約束下分為直接測試(Direct)和隨機測試(Random)兩個三級結(jié)構(gòu)[4]。直接測試可以保證測試驗證過程有一定的復(fù)現(xiàn)性,而隨機測試可以對待測設(shè)計進行更為充分的驗證。參數(shù)配置文件(Para_cfg)用于對測試平臺中相關(guān)模塊進行配置以滿足待測設(shè)計的要求。測試平臺的執(zhí)行腳本文件是采用TCL語言編寫的擴展名為.do的文件,用于在測試時對工程文件進行自動組織與控制。

3 實驗與應(yīng)用

    基于上述設(shè)計所開發(fā)的通用仿真測試平臺已成功應(yīng)用于XX-09型號衛(wèi)星和XX-5A型號衛(wèi)星數(shù)傳FPGA的仿真測試。根據(jù)開發(fā)方提供的源程序以及《XX型號衛(wèi)星數(shù)傳FPGA需求規(guī)格說明》開展測試,測試流程圖見圖5。

qrs4-t5.gif

    首先運用代碼檢查工具對RTL級代碼進行編碼規(guī)則檢查和代碼審查,隨后使用測試平臺分別對待測設(shè)計進行功能仿真測試、對邏輯綜合后網(wǎng)表文件開展門級仿真測試以及對布局布線后網(wǎng)表文件開展時序仿真測試。最后,使用靜態(tài)時序分析工具和邏輯等效性檢查工具對待測設(shè)計進行靜態(tài)時序分析和邏輯等效性檢查[5]。其中,功能仿真測試和門級仿真測試均在本文的通用仿真測試平臺上完成。

    以XX-09型號衛(wèi)星為例,存儲單元為兩個64 Gbit NAND Flash疊裝芯片并聯(lián)構(gòu)成的128 Gbit NAND Flash存儲陣列,每個64 Gbit NAND Flash由8片8 Gbit的存儲基片組成[6]。根據(jù)XX-09型號衛(wèi)星任務(wù)數(shù)傳FPGA任務(wù)書與需求規(guī)格說明,對數(shù)傳FPGA開展功能需求分析及接口需求分析,共整理出82個功能相關(guān)測試子項,設(shè)計了415個測試用例,覆蓋了功能測試、性能測試、時序測試、接口測試、安全性測試、余量測試、恢復(fù)性測試、邊界測試、等效性檢查共9種測試類型。仿真測試模塊覆蓋率和總體覆蓋率結(jié)果見圖6。功能仿真中對語句覆蓋率和分支覆蓋率進行分析,語句覆蓋率達到91.5%,分支覆蓋率達到97.4%,未覆蓋原因為case條件語句中default分支不可達,經(jīng)確認測試后功能正常。

qrs4-t6.gif

    對XX-5A和XX-09型號衛(wèi)星數(shù)傳FPGA分別采用傳統(tǒng)仿真測試平臺與本文仿真測試平臺進行仿真測試,統(tǒng)計覆蓋率與仿真周期數(shù),結(jié)果見表1。

qrs4-b1.gif

    由表1知,傳統(tǒng)仿真測試平臺與通用仿真測試平臺均可完成100%功能覆蓋率,但通用仿真測試平臺的仿真周期數(shù)是傳統(tǒng)仿真測試平臺的48%左右,而且具有更好的語句覆蓋率和分支覆蓋率。綜上,本文所設(shè)計的仿真測試平臺覆蓋率性能良好并具有一定的通用性,相較于傳統(tǒng)仿真測試平臺可以有效縮短測試時間,并可以有效提高測試覆蓋率。

4 結(jié)論

    為解決傳統(tǒng)測試平臺通用性和繼承性差、難升級、難維護等問題[7],提出了一種基于層次化結(jié)構(gòu)設(shè)計的仿真測試平臺架構(gòu),并在此基礎(chǔ)上結(jié)合APB總線標(biāo)準(zhǔn)開發(fā)了星載固態(tài)存儲控制器的通用仿真測試平臺。利用該平臺對兩個衛(wèi)星型號任務(wù)的數(shù)傳FPGA進行了仿真驗證測試,結(jié)果表明測試平臺可以有效支持對不同型號星載固態(tài)存儲控制器的仿真測試,相比于傳統(tǒng)測試平臺優(yōu)化了測試流程并提高測試效率,具有很好的工程應(yīng)用價值。

參考文獻

[1] 周珊,楊雅雯,王金波.航天高可靠FPGA測試技術(shù)研究[J].計算機技術(shù)與發(fā)展,2017,27(3):1-5,11.

[2] 高虎,封二強,趙剛.基于Testbench的FPGA實物自動化測試環(huán)境設(shè)計[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] 楊志勇,董振興,朱巖,等.星載高速大容量存儲器文件化壞塊管理設(shè)計[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].電子技術(shù)應(yīng)用,2019,45(1):88-91.

[7] 陳琳娜,孟建熠,林志濤.面向串行總線的層次化UVM驗證平臺設(shè)計[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)新重點實驗室,北京100190;

2.中國科學(xué)院 國家空間科學(xué)中心,北京 100190;3.中國科學(xué)院大學(xué),北京100190)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。