摘要:電子系統功能與復雜度的日益增加,對系統驗證測試的效率提出了更高要求。傳統衛星測試平臺依據特定型號任務進行定制式設計,其設計開發周期長、綜合成本高,難以適應當前任務需求。為此,提出了一種基于System Verilog語言開發的星載固態存儲控制器通用仿真測試平臺架構,其內部采用層次化模型,信號接口統一采用APB總線標準,可以通過配置測試平臺數據源及格式及來適配不同容量、不同速率以及不同構型的星載固態存儲控制器。實驗表明,本文設計的測試平臺具有一定的通用性,相比于傳統測試平臺可以有效地節省測試時間并提高測試覆蓋率。
0 引言
星載固態存儲控制器是衛星的數據處理中心,負責衛星工程參數和有效載荷科學數據的接收、存儲與傳輸。星載固態存儲控制器使用現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)作為處理核心。FPGA是一種可編程的信息處理器件,可通過改變其配置信息實現不同功能,具有高集成度、高速、高可靠性等特點,在航天領域內得到了廣泛應用。但是當FPGA中的程序存在隱性缺陷時,如因外部異常輸入導致的內部功能模塊狀態機運行異常時,會導致FPGA輸出錯誤信號,進而導致整個系統功能紊亂。因此需要對FPGA設計進行功能測試和時序測試。此外,由于航天任務對可靠性和安全性的特殊要求,還需要對其進行余量測試、安全性測試、恢復性測試以及邊界測試等[1]。 圖1所示為傳統功能仿真測試平臺模型。傳統功能仿真測試平臺由激勵模塊、待測設計和接收模塊三部分組成。其特點是結構簡單、功能單一,沒有統一的架構和標準,且大都是基于特定的型號任務所開發的。這種“定制式”的測試平臺存在很多弊端,如通用性和可移植性差、可讀性差、不利于管理等。為解決上述問題,提出了一種基于System Verilog語言編寫的星載固態存儲控制器通用仿真測試平臺架構,其內部設計采用層次化模型,內部接口與總線均采用由ARM公司提出的高級外設總線標準(Advanced Peripheral Bus,APB)。
1 標準化通用測試平臺設計
1.1 測試平臺概述
基于Verilog HDL和VHDL語言開發的測試平臺存在重復利用率差、開發效率低等問題,而采用面向對象的專用驗證語言System Verilog可以有效地解決這些問題。System Verilog充分吸收和借鑒了Verilog HDL、VHDL、System C和C++等語言的特性,使其可以在更高的抽象層級上對高度復雜的設計進行測試驗證[2]。此外,測試平臺架構應采用模塊化和標準化設計,從而使測試平臺具有更好的通用性,還應采用層次化結構設計,以有效增強測試平臺的靈活性和穩定性。明確的層次設計可以有效地定義各層之間的接口,層與層之間的獨立性也使得每一層可以采用其最合適的技術去實現而不影響其他層。
1.2 層次化結構設計
星載固態存儲控制器設計的標準化通用仿真測試平臺包含5個層次:測試層、場景層、功能層、命令層和信號層,層次化結構通用測試平臺架構見圖2。
最底層為信號層,負責將待測設計連接到測試平臺,完成模塊信號對接。信號層上層是命令層,驅動單元接收來自功能層的命令信息后將總線上的命令驅動到待測設計的輸入上;接收單元負責收集待測設計的激勵響應輸出,并且按照命令進行分組;監視單元負責監視那些不受命令信號約束的獨立信號,其可穿越整個命令的周期來搜尋這些信號的變化[3]。另外,如果當程序中 “不應發生”的事情的確發生的時候,監視單元將進行報警。因此,監視單元和接收單元的共同作用可以更加全面地監控測試過程中的狀態變化,從而提高測試結果的可靠性。 功能層向下面對命令層。任務調度單元接收來自場景層的任務后,將任務分解成若干獨立的命令。這些命令在被送往驅動單元的同時也會被送往檢驗單元。檢驗單元負責對比實際待測設計的激勵響應與預測單元理想的響應結果。通過對檢驗單元中數據進行分析就可以判斷當前任務下待測設計是否符合預期設計要求。 場景層根據來自測試層的激勵約束,模擬實際任務中的各種場景。發生單元的組成部分根據不同的待測設計進行不同適應性更改,但基本模塊均由信號源和數據源組成。信號源根據上層的約束信息產生相應激勵信號,并控制數據源開始向待測設計發送數據。 測試層為整個測試平臺的頂層,其中輸入單元用來向測試平臺發送創建激勵的約束。功能覆蓋率可以衡量所有測試在測試計劃中的進展。
2 星載固態存儲控制器通用測試平臺實現
2.1 測試平臺架構設計
基于層次化結構通用測試平臺架構,結合工程型號任務需求,搭建星載固態存儲控制器通用仿真測試平臺,見圖3。
通用測試平臺中各模塊接口均使用APB總線標準進行封裝,并增加APB總線接口模塊進行平臺內各模塊及測試平臺與待測設計間通信。此外,增加參數配置模塊,其可對發生單元中的數據源和激勵源以及驅動單元中的時鐘和復位模塊進行配置。測試平臺內嵌有參數可配置的Flash模型、SDRAM模型以及MRAM模型。通過參數配置模塊可以對Flash模塊等進行配置。其中,Flash模型設計采用分層結構,最底層由8 Gbit的基本單元組成,支持主存儲區和空余區的讀寫,支持讀、寫和擦除等時間參數設置和初始壞塊設置,以該基本單元為基礎進行級聯擴展,可實現不同存儲容量、存儲速率以及疊裝構型的Flash器件的陣列模擬。 測試平臺的各項參數配置需在測試開始前完成,即測試前向參數配置模塊輸入配置參數,完成對Flash陣列模型及其他模塊的配置。對待測設計進行測試時,由測試輸入模塊向測試平臺注入約束條件,發生單元根據收到的約束條件產生相應的激勵源,激勵信號經任務調度單元分別加載到檢驗單元和待測設計。同時數據源根據約束條件開始向任務調度單元發送數據。任務調度單元接收到待測任務信息后將待測任務信息下發到驅動單元。驅動單元生成驅動配置文件,調配各個模塊向待測設計輸入數據及相應的時鐘復位信號。待測設計在接收到激勵輸入和數據后產生激勵響應,接收單元對激勵響應進行分類,隨后將其送入到檢驗單元中的比較器。檢驗單元收到的激勵輸入被加載到參考模型中產生理想激勵,隨后比較器將理想激勵與實際激勵響應進行比較。通過對檢驗單元輸出結果的分析就可以判斷在當前約束條件下待測設計是否符合預期設計目標。功能覆蓋率模塊收集整個測試過程中的信息作為評價測試的充分性證據。
2.2 工程組織架構
通用仿真測試平臺運行在仿真工具QuestaSim10.4c上,使用System Verilog語言開發。測試平臺采用層次化組織架構,工程組織架構見圖4。
測試工程組織架構為樹狀結構,頂層文件名為“Top_sim”,其中包含兩個主要的一級結構:約束文件(Constri_files)和參數配置文件(Para_cfg)。約束文件包含數據輸入約束(Data_in)和激勵輸入約束(Drive_in)兩個二級結構。激勵輸入約束下分為直接測試(Direct)和隨機測試(Random)兩個三級結構[4]。直接測試可以保證測試驗證過程有一定的復現性,而隨機測試可以對待測設計進行更為充分的驗證。參數配置文件(Para_cfg)用于對測試平臺中相關模塊進行配置以滿足待測設計的要求。測試平臺的執行腳本文件是采用TCL語言編寫的擴展名為.do的文件,用于在測試時對工程文件進行自動組織與控制。
3 實驗與應用
基于上述設計所開發的通用仿真測試平臺已成功應用于XX-09型號衛星和XX-5A型號衛星數傳FPGA的仿真測試。根據開發方提供的源程序以及《XX型號衛星數傳FPGA需求規格說明》開展測試,測試流程圖見圖5。
首先運用代碼檢查工具對RTL級代碼進行編碼規則檢查和代碼審查,隨后使用測試平臺分別對待測設計進行功能仿真測試、對邏輯綜合后網表文件開展門級仿真測試以及對布局布線后網表文件開展時序仿真測試。最后,使用靜態時序分析工具和邏輯等效性檢查工具對待測設計進行靜態時序分析和邏輯等效性檢查[5]。其中,功能仿真測試和門級仿真測試均在本文的通用仿真測試平臺上完成。 以XX-09型號衛星為例,存儲單元為兩個64 Gbit NAND Flash疊裝芯片并聯構成的128 Gbit NAND Flash存儲陣列,每個64 Gbit NAND Flash由8片8 Gbit的存儲基片組成[6]。根據XX-09型號衛星任務數傳FPGA任務書與需求規格說明,對數傳FPGA開展功能需求分析及接口需求分析,共整理出82個功能相關測試子項,設計了415個測試用例,覆蓋了功能測試、性能測試、時序測試、接口測試、安全性測試、余量測試、恢復性測試、邊界測試、等效性檢查共9種測試類型。仿真測試模塊覆蓋率和總體覆蓋率結果見圖6。功能仿真中對語句覆蓋率和分支覆蓋率進行分析,語句覆蓋率達到91.5%,分支覆蓋率達到97.4%,未覆蓋原因為case條件語句中default分支不可達,經確認測試后功能正常。
對XX-5A和XX-09型號衛星數傳FPGA分別采用傳統仿真測試平臺與本文仿真測試平臺進行仿真測試,統計覆蓋率與仿真周期數,結果見表1。
由表1知,傳統仿真測試平臺與通用仿真測試平臺均可完成100%功能覆蓋率,但通用仿真測試平臺的仿真周期數是傳統仿真測試平臺的48%左右,而且具有更好的語句覆蓋率和分支覆蓋率。綜上,本文所設計的仿真測試平臺覆蓋率性能良好并具有一定的通用性,相較于傳統仿真測試平臺可以有效縮短測試時間,并可以有效提高測試覆蓋率。
4 結論
為解決傳統測試平臺通用性和繼承性差、難升級、難維護等問題[7],提出了一種基于層次化結構設計的仿真測試平臺架構,并在此基礎上結合APB總線標準開發了星載固態存儲控制器的通用仿真測試平臺。利用該平臺對兩個衛星型號任務的數傳FPGA進行了仿真驗證測試,結果表明測試平臺可以有效支持對不同型號星載固態存儲控制器的仿真測試,相比于傳統測試平臺優化了測試流程并提高測試效率,具有很好的工程應用價值。
參考文獻
[1] 周珊,楊雅雯,王金波.航天高可靠FPGA測試技術研究[J].計算機技術與發展,2017,27(3):1-5,11.
[2] 高虎,封二強,趙剛.基于Testbench的FPGA實物自動化測試環境設計[J].電子技術應用,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] 楊志勇,董振興,朱巖,等.星載高速大容量存儲器文件化壞塊管理設計[J].電子技術應用,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在線加載功能設計[J].電子技術應用,2019,45(1):88-91.
[7] 陳琳娜,孟建熠,林志濤.面向串行總線的層次化UVM驗證平臺設計[J].傳感器與微系統,2018,37(9):84-86,89.
-
控制器
+關注
關注
112文章
16385瀏覽量
178378 -
固態存儲
+關注
關注
1文章
51瀏覽量
12883 -
C++
+關注
關注
22文章
2110瀏覽量
73689
原文標題:?【學術論文】星載固態存儲控制器標準化通用仿真測試平臺設計
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論