軟體質量與測試:可編程邏輯器件軟體測試指南
軟體工程國家標準簡介
【軟體質量與測試】(22):
可編程邏輯器件軟體測試指南
可編程邏輯器件(例如FPGA、CPLD)具有集成度高、體積小、功耗低、性價比高等特性,能夠實現越來越複雜的設計功能,已廣泛應用於核能、電力、高鐵等領域,並大規模地代替了常規硬體晶元組合。
可編程邏輯器件需按軟體工程化的思想進行管理,但是通用的軟體測試標準對於可編程邏輯器件軟體並不適用,如:功能模擬測試、靜態時序分析、邏輯等效性檢查。
GB/T 33783-2017《可編程邏輯器件軟體測試指南》規定了可編程邏輯器件軟體測試的目的、內容、級別、過程、類型和方法等要求,可用於可編程邏輯器件軟體的測試。
可編程邏輯器件軟體測試目的包括:
驗證可編程邏輯器件軟體是否滿足合同或開發技術要求、系統/子系統設計文檔、需求規格說明等所規定的要求;
發現可編程邏輯器件軟體錯誤;
提供可編程邏輯器件軟體產品質量評價的依據。
按表1和表2規定,選擇對應的測試方法,可對可編程邏輯器件軟體單元、配置項或系統的功能要求、性能要求、時序要求、介面要求、強度要求、餘量要求、安全性要求、邊界要求和功耗要求等開展測試。
表1 可編程邏輯器件軟體測試級別與測試類型對應關係表
表2 可編程邏輯器件軟體測試類型與測試方法對應關係表
可編程邏輯器件軟體測試的級別一般包括單元測試、配置項測試和系統測試,測試的過程一般包括測試策劃、測試設計和實現、測試執行和測試總結。
測試內容
可編程邏輯器件軟體測試類型一般包括文檔審查、代碼審查、代碼走查、邏輯測試、功能測試、性能測試、時序測試、介面測試、強度測試、餘量測試、安全性測試、邊界測試和功耗分析等。下面詳細介紹代碼審查、時序測試、餘量測試這三種測試類型的要求。
1.代碼審查
依據代碼檢查單對被測軟體進行審查,一般包括以下內容:
審查工程文件的完整性、一致性。
審查代碼和設計的一致性。
審查代碼執行標準的情況。
審查代碼邏輯表達的正確性。
審查代碼結構的合理性。
審查代碼的可讀性。
審查約束文件的符合性。
例如:
複位與時鐘檢查。
模塊間介面檢查。
狀態機及其狀態轉移檢查。
多時鐘域及跨時鐘域設計正確性檢查。
邏輯功能的實現正確性。
寄存器使用情況。
多餘代碼。
可靠性、安全性實現。
代碼書寫風格。
2.時序測試
在三種工況下,對軟體的時延、建立時間、保持時間等指標進行測試,一般包括以下內容:
測試建立、保持時間是否滿足要求。
測試時序控制信號相位、時延、電平寬度等是否滿足要求。
測試脈衝信號的頻率、占空比等是否滿足要求。
例如:
DSP數據匯流排讀操作時數據的保持時間最少為20ns。
FLASH寫操作的時序應滿足晶元手冊中的要求。
PWM控制信號A、B、C、D四路信號的相位滿足時序圖的設計要求。
3.餘量測試
對被測軟體的餘量要求進行測試,一般包括以下內容:
經過布局布線後的軟體的資源使用餘量。
經過布局布線後的軟體的時鐘餘量。
輸入/輸出及通道的吞吐能力餘量。
功能處理時間的餘量。
例如:
邏輯資源使用降額在80%以內。
最壞的情況下最大時鐘速率降額80%。
陀螺控制周期為5ms,完成4096個採樣點的積分計算應在控制周期內留有20%的時間餘量。
測試方法
可編程邏輯器件軟體測試方法一般包括設計檢查、功能模擬、門級模擬、時序模擬、靜態時序分析、邏輯等效性檢查和實物測試等。下面詳細介紹時序模擬、靜態時序分析這兩種測試方法的要求。
1.時序模擬
時序模擬是針對布局布線之後的網表文件和標準延時格式文件開展的模擬測試。時序模擬考慮門級延時和走線延時,能夠檢查多種工況下內部時序是否存在衝突,是否滿足外部介面時序要求,是否存在時序違規。
時序模擬內容:
方法與功能模擬基本一致,不同是將RTL代碼換成布局布線後網表文件和標準延時格式文件;
考查最大工況、最小工況和典型工況下的用例執行情況;
針對關鍵路徑的時序測試;
針對某些時序性能指標的測試。
例如:
最大工況下(電壓4.5V,溫度125度),輸出的電機PWM控制信號不滿足時序要求。
2.靜態時序分析
靜態時序分析是套用特定的時序模型, 針對邏輯綜合或布局布線後的網表文件和標準延時格式文件開展靜態時序分析,驗證門級網表的時序是否滿足時序約束的過程。
靜態時序分析相比時序模擬的優勢:
無需用向量去激活某個路徑,能夠對所有的時序路徑進行錯誤分析,能處理百萬門級的設計,分析速度比時序模擬快幾個數量級。在同步邏輯情況下,可以達到100%的時序路徑覆蓋。
靜態時序分析的目的是找出隱藏的時序問題,根據時序分析結果優化邏輯或約束條件,使設計達到時序收斂。
靜態時序分析可以識別的時序故障要比時序模擬多得多,包括:建立/保持時間,恢復/移除時間,時鐘脈衝寬度,不受約束的邏輯通道等。
靜態時序分析可分析的時序:
時鐘最大工作頻率;
數據相對於時鐘的建立時間和保持時間;
複位相對於時鐘的recovery和removal時間;
數據相對於數據的延時時間。
作者:彭鳴
中國航天科工三院第三〇四研究所