黨浩淮,符明明
(1. 南京科瑞達電子裝備有限責任公司,南京 211100;2. 陸裝駐上海地區(qū)航空軍代室,上海 201100)
隨著微電子技術的發(fā)展,可編程邏輯器件FPGA以其高功能密度、體積小、低功耗、半定制的靈活配置能力,在軍用裝備領域的應用越來越廣泛。與嵌入式軟件、桌面軟件等相比,FPGA軟件工程化起步較晚,實時性較好,且與硬件交聯(lián)較多,本質上屬于硬件邏輯的一種方式;但與硬件相比,其具有可編程功能,且能夠便捷實現(xiàn)復雜算法、通信交互等,導致FPGA軟件研制過程極易失控。
GJB9432-2018、GJB9433-2018、GJB9764-2020、GJB10157-2021、GJB5000B-2021等相關國家軍用標準對FPGA軟件的相關管理起到了重要作用,其中GJB5000B實施指南將FPGA軟件列入須管理的軟件范疇。目前,相關研究主要圍繞嵌入式軟件、上位機軟件、界面軟件等“純軟件”展開,而針對FPGA軟件管理體系的研究成果較少。雖然文獻[1]較為系統(tǒng)地描述了軟件管理體系,但并未涉及FPGA軟件相關內容;文獻[2]總結了軍用FPGA開發(fā)現(xiàn)狀,比對了GJB5000A和DO-254的差異,未針對FPGA軟件的特點開展詳細應用研究。
本文以GJB5000B成熟度二級要求為標準,對FPGA軟件工程化應用展開研究。
GJB5000B包含組織管理類、項目管理類、工程類、支持類等4類,共21個實踐域,其中二級實踐域12個。關于軟件研制能力成熟度相關的建設、應用等相關文獻[3-7]已有較為充分的論述,故本文主要針對FPGA軟件相關應用,文中的差異性主要指FPGA軟件和嵌入式軟件、上位機軟件、界面軟件等其他軟件的差異比較。
在組織管理類中,包含領導作用和實施基礎兩個二級實踐域,其實施標準在FPGA軟件和其他軟件中無差別,可遵照實施。
在項目管理類中有項目策劃和項目監(jiān)控兩個二級實踐域。FPGA軟件與其他軟件的差異性如表1所示。
在工程類中有立項論證、需求開發(fā)與管理、驗證與確認、運行維護等4個二級實踐域。FPGA軟件與其他軟件的差異性如表2所示。
支持類實踐域包括配置管理、質量保證、測量與績效管理等3個二級實踐域。FPGA軟件與其他軟件的差異性如表3所示。
在實施GJB5000B相關標準前,應按照其要求完成相關體系文件建設。根據相關實踐域標準,在FPGA軟件相關部分,組織表4所示體系文件的編制。
表2 工程類實踐域差異性
表3 支持類實踐域差異性
表4 FPGA體系文件表格
在上述體系文件中,《FPGA軟件研制過程》、《FPGA軟件需求分析規(guī)范》、《FPGA軟件設計規(guī)范》、《FPGA軟件測試規(guī)范》、《FPGA軟件語言編碼規(guī)范》等相關文件須與其他軟件區(qū)分,單獨編制;《FPGA軟件運行維護規(guī)范》、《FPGA軟件配置管理規(guī)范》、《FPGA軟件質量保證規(guī)范》、《FPGA軟件測量規(guī)范》等相關文件可與其他軟件合并編制。
根據相關體系文件,在FPGA軟件相關項目研制過程中,須按照GJB9764-2020《軍用可編程器件軟件文檔編制規(guī)范》的相關要求,編制項目中的相關文檔。
FPGA軟件研制流程如圖1所示。
在GJB5000B的實踐域中,需求過程主要實踐域為需求開發(fā)與管理,其目的是開發(fā)、維護和管理需求,與利益相關方達成一致,確保顧客的需求和期望得到滿足。
對于軍用FPGA產品,該過程的需求包括用戶需求、產品需求和FPGA軟件需求3個層級,三者是逐級精化的過程。
FPGA軟件需求過程如下:
(1)開展用戶需求分析,形成用戶需求;根據用戶需求開展FPGA選型及可行性風險分析,形成《FPGA軟件可行性和風險分析報告》,確定型號研制各階段FPGA器件選型要求;
(2)根據用戶對功能、性能、接口、功耗、電氣、時序、頻率、資源等要求,形成《FPGA軟件研制任務書》;
(3)評審《FPGA軟件研制任務書》,通過后建立功能基線,將《任務書》入庫;
(4)開展系統(tǒng)設計,分析產品和產品部件的功能需求、性能需求及約束要求等,形成《FPGA軟件需求規(guī)格說明》;
(5)評審《需求規(guī)格說明》,確保用戶、開發(fā)人員、測試人員以及其他利益相關方達成一致,共同確認《FPGA軟件需求規(guī)格說明》;
(6)需求在產品生存周期內可能因各種原因發(fā)生變更,故應管理需求變更,即在需求變更時,對變更進行評估、記錄、分析、評審、批準和維護,最大限度地減少返工。
在GJB5000B的實踐域中,設計過程主要實踐域為技術解決方案,其目的是指導設計與構建滿足需求的FPGA設計方案,指導設計方案準確實現(xiàn),以提供高效的設計和解決方案,實現(xiàn)滿足需求的FPGA軟件,提高FPGA軟件的質量。
因該實踐域為三級實踐域,故在項目研制過程中,該部分可根據實際需要進行適當裁剪。
FPGA軟件設計過程如下:
(1)確定設計準則。一般設計準則是對組織級設計準則的裁剪,選定項目設計的實現(xiàn)準則;
(2)概要設計。依據《需求規(guī)格說明》進行結構分解,設計FPGA軟件整體實現(xiàn)方案和架構,同時考慮時鐘樹設計、復位處理設計、跨時鐘域設計等,形成《FPGA軟件概要設計說明》;
(3)詳細設計。描述FPGA的模塊組成和功能,完成內部和外部接口說明,同時開展時序約束和管腳約束等,形成《FPGA軟件詳細設計說明》;
(4)接口設計。開展通信協(xié)議設計、模塊調用關系、數(shù)據接口設計、軟件可配置接口設計、構件接口設計等,形成《FPGA軟件接口設計說明》;
(5)編碼實現(xiàn)FPGA軟件工程產品。該部分可與概要設計、詳細設計、接口設計迭代進行。
在GJB5000B的實踐域中,測試過程主要實踐域為FPGA驗證與確認實踐域,其目的是指導驗證FPGA軟件是否滿足需求,確定選定的解決方案及部件在預期環(huán)境下是否能實現(xiàn)預期用途,以便通過全過程驗證與確認,提高選定方案滿足用戶需求的可能性。
FPGA軟件測試過程如下:
(1)確認待測試的FPGA產品,識別FPGA產品的需求,明確測試范圍,選擇測試方法,形成《FPGA軟件仿真測試計劃》;
(2)建立測試的輸入輸出、實施步驟等,使測試步驟具有可操作性,清晰明確,可以指導測試操作,形成《FPGA軟件仿真測試說明》;
(3)根據《FPGA軟件測試說明》進行仿真測試,并記錄相應結果,形成《FPGA軟件仿真測試報告》,將相關問題反饋給FPGA軟件設計人員;
(4)FPGA軟件設計人員根據相關問題單進行修改,FPGA測試人員完成回歸測試;
(5)在完成仿真測試后,在設備上確認測試FPGA軟件。與仿真相比,應導出對設施、設備和環(huán)境的需求,形成《FPGA軟件確認測試計劃》和《FPGA軟件確認測試說明》;
(6)FPGA測試人員記錄執(zhí)行過程,確認結果。應結合環(huán)境差異分析和控制不可測試項,必要時須與相關人員一起確認所選擇的產品或產品部件,在測試完成后形成《FPGA軟件確認測試報告》;
(7)對測試結果進行評審。
在基于GJB5000B進行FPGA軟件全生命周期研制的過程中,應重點關注以下問題:
在需求開發(fā)階段,若能將需求分解得較為細致,則可以大幅降低后期研制過程中的糾錯成本。軟件研制階段的糾錯成本如圖2所示,可以看出需求階段的糾錯成本最低。
圖2 軟件研制糾錯成本圖
可重用資產開發(fā)是GJB5000B中三級實踐域中的相關內容,但該部分對日常項目研制和管理非常重要,因此作為應用重點進行說明。
在FPGA軟件研制過程中,很多技術可繼承已在其他項目中應用成熟的模塊,或針對所研制項目的特殊性作少量修改,如通用接口模塊、通用算法模塊等。
模塊重用是提高軟件研發(fā)效率和可靠性的重要手段之一,應開發(fā)組織級可重用資產,提取很多已驗證且功能獨立的模塊,方便設計師在進行相關設計時可以從可重用資產庫中下載相關功能模塊。
通用質量特性一般包括可靠性、安全性、可維護性等內容,屬于GJB5000B中三級實踐域的相關內容。因該部分對各項目的適用性較強,故可作為可重用資產統(tǒng)一開發(fā)。
因FPGA軟件研制周期很長,可能由不同的FPGA設計師接手相關工程代碼的維護工作,在最初研制階段就做好相關通用質量特性應用,十分有利于后期維護工作的開展。
FPGA軟件的配置管理與其他軟件基本相同,在實際應用中應注意以下兩點:
(1)因燒錄文件與硬件密切相關,故須統(tǒng)一配置管理燒錄說明和燒錄文件,方便生產人員使用;
(2)FPGA軟件所含內容較多,如約束文件、IP文件、測試激勵文件等,所占空間較大,應有專門空間進行統(tǒng)一配置管理。
本文主要研究了FPGA軟件的應用過程,比較了FPGA軟件與其他軟件的差異性,并根據實際應用情況,總結了相關體系文件和FPGA軟件運行流程,指出在實際應用中應重點關注的相關問題,對FPGA軟件的開發(fā)有一定的參考價值。