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