▍FPGA質量控制與測試
隨著數字化、智能化裝備的爆發(fā)式發(fā)展,具備更高可靠性、更高集成性的FPGA產品,依靠自身的自定義編程設計、可重復性修訂等特性,成功取代了傳統(tǒng)堆疊化電子元器件設計方式,應用到裝備的設計中去。未來電子信息領域,硬件裝備軟件化設計趨勢已不可逆轉。可以說,只要存在硬件,就必然有FPGA的身影。本期“專家訪談”欄目,邀請廣電計量軟件測試技術副總監(jiān)齊躍,深度解析FPGA質量控制與測試,助力企業(yè)提升FPGA測試效率和設計質量。
▍FPGA軟件的主要應用領域有哪些?
FPGA,全稱Field-Programmable Gate Array,翻譯成中文即現場可編程門陣列。它是一種主要以數字電路為主的集成芯片,屬于可編程器件中的一種。FPGA作為ASIC(專用集成電路)領域中的一種半定制電路而出現,具有無限次重新編程的能力,通過對預制的門電路、觸發(fā)器和可編程布線資源重新配置,可以實現任意的邏輯功能,大大提高了集成電路的靈活性,既解決了定制電路缺乏靈活性的不足,又克服了原有可編程器件門電路數容量過小的缺點。
因此,FPGA的應用方向非常廣泛,按照應用領域來看,FPGA在高速通信、數據處理、工業(yè)控制、特殊裝備和航空航天等眾多領域都已經得到了廣泛的應用。
▍為什么對FPGA軟件進行測評?
根據有關單位某產品試驗鑒定工作要求中提出,“FPGA應列入軟件清單進行管理,列入軟件測試要求考核范圍,關鍵或重要FPGA要針對性開展代碼規(guī)則檢查、功能仿真、時序驗證等測試”。所以根據上述文件要求所有設備中的FPGA軟件都要進行內部測試/第三方測評/鑒定測評。
▍FPGA軟件測試面臨哪些挑戰(zhàn)?
FPGA軟件包含進行設計而產生的程序、文檔和數據,同時包含與之相關的軟件特性和硬件特性。FPGA軟件測試需要考慮軟件代碼正確性、軟硬件接口協調性、時序性等方面的全面覆蓋。FPGA能夠穩(wěn)定、可靠地工作,不但功能需滿足要求,時序指標、安全性指標等均需滿足要求。
不同的FPGA芯片廠商、不同的運行電壓和溫度情況下,FPGA的時序會有很大不同,經常造成FPGA執(zhí)行時出現錯誤。因此,FPGA測試需要在驗證FPGA軟件特性的同時,驗證FPGA芯片硬件特性、電壓與溫度對時序的影響等環(huán)境特性是否滿足要求。因此,FPGA軟件測試包含對FPGA軟件特性、硬件特性及環(huán)境特性測試。
▍FPGA軟件測試的內容及流程有哪些?
FPGA開發(fā)流程復雜,從前端設計代碼到最后生成配置位流文件,均有可能引入設計缺陷。因此,在安全關鍵領域,FPGA軟件的獨立測評流程涵蓋由RTL代碼生成位流文件的各關鍵節(jié)點,從不同層次采用多種方法對軟件功能、接口、時序、和性能進行確認。
主要測試方法有:編碼規(guī)則檢查、跨時鐘檢查、功能仿真、門級仿真、時序仿真、功耗分析、邏輯等效性檢查等。測試過程主要包括:
1.首先根據軟件需求進行測試需求分析,確保測試100%覆蓋軟件需求。
2.針對RTL級代碼進行編碼規(guī)則檢查及功能仿真測試,驗證FPGA前端設計的正確性。
3.針對邏輯綜合后的門級網表文件進行邏輯等效性測試,驗證邏輯綜合的可靠性、一致性。
4.針對布局布線后的布線網表進行靜態(tài)時序分析及時序仿真測試,驗證FPGA后端設計時序路徑是否收斂。
5.針對燒寫下載后的目標設備開展板級實物測試,驗證FPGA整機設備功能實現正確性。
6.使用專業(yè)工具對FPGA前端硬件描述設計與后端時序電路邏輯一致性進行檢查。
▍如何提高FPGA測試的效率和準確性?
1.采用自動化測試工具:自動化測試工具可以大幅提高測試效率,減少人為誤差。
2.優(yōu)化測試策略:根據FPGA的具體應用場景和規(guī)格要求,制定針對性的測試策略,以提高測試的有效性和準確性。
3.強化在板測試:在板測試可以更好地模擬實際工作情況,有助于發(fā)現潛在問題。
4.強化可靠性評估:通過改進加速老化試驗方法、引入更多實際工作場景下的應力因子等方式,提高可靠性評估的準確性。
5.強化仿真測試:采用更精確的仿真模型和更全面的場景覆蓋,提高仿真測試的有效性。
▍如何提高FPGA軟件設計質量和可靠性?
FPGA質量提升是一個涵蓋設計、驗證、實施和測試全過程的系統(tǒng)工程,下面將詳細介紹幾個關鍵環(huán)節(jié):
1. 設計階段的質量保證
模塊化設計:采用模塊化的設計方法有助于提高代碼可讀性與重用性,并簡化后期維護。每個模塊應有明確的功能定義,遵循良好的設計原則。
資源優(yōu)化:根據具體應用需求合理分配邏輯資源、內存資源以及布線資源,通過算法優(yōu)化和架構選擇來降低功耗并提升性能。
RTL設計規(guī)范:遵循行業(yè)標準和最佳實踐編寫HDL代碼,確保代碼風格一致且易于綜合工具理解,避免潛在的時序問題。
2. 驗證流程強化
功能仿真:在早期階段進行詳盡的功能仿真驗證,確保設計滿足規(guī)格要求,并覆蓋所有可能的狀態(tài)和邊界條件。
形式驗證:利用形式化方法驗證設計正確性,包括等價檢查、屬性檢查及模型檢查,以減少因傳統(tǒng)仿真遺漏而引入的問題。
靜態(tài)時序分析(STA):在布局布線后執(zhí)行嚴格的STA,確保設計達到準確的時序約束,防止由于時鐘偏斜、延時不匹配導致的功能失效。
3. 增強可靠性設計
冗余技術:使用三模冗余(TMR)、糾錯碼(ECC)或其他容錯機制,提高系統(tǒng)的抗錯誤能力。
內建自測試(BIST):集成自測試電路,能夠在運行過程中檢測硬件故障,增強產品的現場可靠性。
軟錯誤防護:針對輻射效應和其他非長久性故障,采用適當的軟錯誤率(SER)防護策略。
4. 硬件實現與簽核
綜合與優(yōu)化:選擇高性能的綜合工具,并對其進行參數調整以獲得較優(yōu)布局布線結果,同時考慮資源利用率、速度和功率。
物理設計簽核:對完成布局布線后的設計進行全面的物理設計簽核,包括DRC(設計規(guī)則檢查)、LVS(Layout Versus Schematic),確保設計符合工藝要求。
綜上所述,提升FPGA設計質量涉及諸多方面,需要在整個開發(fā)周期中結合先進的設計理念、嚴謹的驗證手段和科學的測試方法,才能最終打造出高可靠性的FPGA產品。
▍廣電計量具備哪些FPGA測試服務經驗?
廣電計量FPGA測試團隊具有全面的裝備軟件測試資質,目前承接的項目包括商飛C919、載人航天、特殊裝備等領域數十項FPGA軟件測試項目,任務涵蓋了第三方驗收測試、內部測試、鑒定測試/定型測試,測試級別覆蓋單元測試、配置項測試和系統(tǒng)測試。