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