豐 坤,李躍華,張金林
(空軍預(yù)警學(xué)院,武漢430019)
現(xiàn)代信息化戰(zhàn)爭對空中預(yù)警裝備(如機載雷達)提出了可靠性高、體積小、功耗低、實時性強等要求。本文總結(jié)提煉出了一種更加適合于Altera公司Stratix系列器件的改進型基于模塊的動態(tài)重構(gòu)設(shè)計,并結(jié)合傳統(tǒng)硬件冗余,提出了一種基于現(xiàn)場可編程門陣列(FPGA)局部動態(tài)可重構(gòu)的雙模冗余(DMR)設(shè)計,以提升預(yù)警裝備的戰(zhàn)技性能,滿足作戰(zhàn)要求。
隨著數(shù)字系統(tǒng)的快速發(fā)展以及FPGA的日趨成熟,能夠?qū)崟r重構(gòu)的容錯技術(shù)逐漸應(yīng)用于軍事領(lǐng)域?;贔PGA的動態(tài)容錯技術(shù)[1],其基本原理是將備用配置數(shù)據(jù)重新下載到FPGA上,以消除原有的故障,即允許對可重構(gòu)的模塊或系統(tǒng)的一部分進行重新配置,在配置的過程中,其余的部分可以繼續(xù)工作而不受配置區(qū)域的影響。傳統(tǒng)的容錯技術(shù)主要包括硬件冗余、軟件冗余、信息冗余和時間冗余。在雷達裝備里用得最多的是三模冗余(TMR)[2]和雙模冗余比較(DMRC)[3],它們都能在模塊出現(xiàn)故障時迅速切換到備份模塊,保證系統(tǒng)、裝備的正常工作,其不足是不能及時消除、修復(fù)故障,并且會使功率和硬件資源的消耗過大,增大了體積和成本的開銷。本文在對基于Xilinx公司器件的4種局部重構(gòu)設(shè)計方法學(xué)習(xí)研究的基礎(chǔ)上,根據(jù)Altera用戶手冊,對基于模塊的動態(tài)重構(gòu)設(shè)計方法進行優(yōu)化改進,使其更加適合于Altera公司的Stratix系列器件。結(jié)合傳統(tǒng)容錯技術(shù),提出了一種基于FPGA局部可重構(gòu)技術(shù)的DMR設(shè)計,它能夠克服以上傳統(tǒng)容錯技術(shù)的不足,降低功耗,減少硬件資源的使用,提高系統(tǒng)、裝備的可靠性、實時性。
雙模冗余比較[3](DMRC)是一種主動硬件冗余形式,其結(jié)構(gòu)框圖如圖1所示。
圖1 雙模冗余比較結(jié)構(gòu)框圖
雙模冗余比較基本工作方式為:系統(tǒng)正常工作時,2個完全相同的模塊1和模塊2,輸出到比較控制器進行比較,如果比較結(jié)果一致,則正常輸出;如果比較結(jié)果不一致,則啟動它們各自的檢測電路進行故障檢測,將檢測到的故障模塊封鎖,禁止其輸出,只允許正常模塊輸出。這種方法能夠及時有效地檢測出故障,并確認故障模塊,保證系統(tǒng)的正常運行,但不具備對故障模塊及時消除和修復(fù)的能力。
在可靠性要求比較高的場合,如在沿海一線經(jīng)常擔(dān)負戰(zhàn)備值班的雷達武器裝備,常常采用傳統(tǒng)的三模冗余[2](TMR)設(shè)計,它是一種比較典型的被動硬件冗余形式,其結(jié)構(gòu)框圖如圖2所示。
圖2 傳統(tǒng)的TMR結(jié)構(gòu)框圖
圖2中M1、M2、M3為結(jié)構(gòu)和功能都相同的模塊,V為多數(shù)表決器。其工作方式為:系統(tǒng)正常工作時,M1、M2、M33個模塊同時接入電路工作,送到多數(shù)表決器V來表決。3個模塊中不多于1個模塊發(fā)生故障時,該TMR系統(tǒng)仍然正常工作,整個系統(tǒng)正常運行;當(dāng)有1個以上模塊發(fā)生故障時,該TMR系統(tǒng)失效,整個系統(tǒng)不能正常運行。
TMR系統(tǒng)能夠掩蓋和忽略其中一個模塊出錯或故障,由于2個模塊同時出故障的概率很低,所以其可靠性非常高,但是其消耗硬件資源較多,且不具備對故障模塊及時消除和修復(fù)的能力。
隨著FPGA可重構(gòu)技術(shù)的發(fā)展,目前市場上已經(jīng)有Xilinx和Altera兩家公司的FPGA支持局部動態(tài)可重構(gòu)。其中Xilinx公司主流的支持局部動態(tài)可重構(gòu)的設(shè)計方法有以下4種:基于差異的動態(tài)重構(gòu)設(shè)計[4],基于模塊的動態(tài)重構(gòu)設(shè)計[5],基于比特流的動態(tài)重構(gòu)設(shè)計[6]和早期獲取部分可重構(gòu)(EAPR)的設(shè)計[7]。Altera公司的可重構(gòu)方法可分為基于Stratix器件的重構(gòu)設(shè)計方法和基于Cyclone器件的重構(gòu)設(shè)計方法[8]。
在Xilinx的局部重構(gòu)設(shè)計方法中,基于模塊的動態(tài)重構(gòu)設(shè)計方法應(yīng)用較廣,這里就不再描述其它的3種重構(gòu)設(shè)計?;谀K的動態(tài)重構(gòu)[4]設(shè)計方法是系統(tǒng)按照一定的原則劃分為若干模塊,并且每個模塊之間相互獨立,其中一個模塊改變時不影響其它模塊的實現(xiàn)。它分別對每個模塊進行設(shè)計與綜合,最后通過頂層文件對所有子模塊的結(jié)果有機組合起來,就完成了整個系統(tǒng)的設(shè)計。其優(yōu)點是設(shè)計靈活,方便團隊式地進行項目的并行開發(fā),保證了項目的開發(fā)進度;同時各模塊之間實現(xiàn)功能相互獨立,在調(diào)試、改變其中某個子模塊的時候,最大程度上不干擾、影響其它模塊功能的實現(xiàn)。
由于本文中采用Altera公司的Stratix器件,故這里只介紹Stratix器件的重構(gòu)方法。基于Altera公司Stratix器件的設(shè)計方法與基于模塊的設(shè)計方法類似,其可以看作是基于模塊的動態(tài)重構(gòu)設(shè)計方法的改進型。根據(jù)Altera用戶手冊,對基于模塊的動態(tài)重構(gòu)設(shè)計方法進行優(yōu)化改進,使其更加適合于Altera公司的Stratix系列器件,如圖3所示,為基于Altera的Stratix系列器件局部重構(gòu)設(shè)計流程改進型。該改進型的流程包括模塊設(shè)計、重構(gòu)控制模塊設(shè)計、VerilogHDL編碼、功能仿真、設(shè)計分區(qū)、創(chuàng)建和編譯修訂、時序分析以及生成配置文件等主要步驟。
圖3 基于Stratix器件的改進型局部重構(gòu)設(shè)計流程
(1)模塊設(shè)計
根據(jù)系統(tǒng)設(shè)計的需要,選擇最適合于局部重構(gòu)的部分進行模塊設(shè)計。
(2)重構(gòu)控制模塊設(shè)計
根據(jù)所采用的局部重構(gòu)方法,設(shè)計一個局部重構(gòu)控制模塊,它可以在FPGA內(nèi)部,也可以在FPGA外部。其主要用來監(jiān)控局部重構(gòu)的過程。
(3)VerilogHDL編碼
利用硬件描述語言Verilog HDL為所有的局部重構(gòu)區(qū)域編寫代碼。
(4)功能仿真
對VerilogHDL編碼進行功能仿真,驗證編碼、設(shè)計是否正確。
(5)設(shè)計分區(qū)
指定局部重構(gòu)模塊與邏輯鎖定區(qū)域設(shè)計分區(qū)。如果功能仿真正確,就可以把局部重構(gòu)模塊設(shè)置為設(shè)計分區(qū),并加上邏輯鎖的位置約束。
(6)創(chuàng)建和編譯修訂
為每個personas的組合建立不同的修訂(revision),這些修訂主要是用來管理源文件以及執(zhí)行時序分析。
(7)時序分析
對personas進行時序分析,如果時序分析正確,則執(zhí)行下一步。
(8)生成配置文件
如果時序分析正確,就可以在Quartus II軟件將產(chǎn)生的文件轉(zhuǎn)換為執(zhí)行局部重構(gòu)所需要的部分配置文件。
在以上的任何步驟發(fā)生錯誤或與設(shè)計要求不相符,則返回到相應(yīng)的步驟或位置進行修改或者重新設(shè)計。
由于傳統(tǒng)的冗余方法已經(jīng)無法滿足現(xiàn)代機載雷達的要求,為了提高機載雷達探測各類復(fù)雜目標的能力,本文提出了一種基于局部可重構(gòu)技術(shù)的DMR設(shè)計,結(jié)構(gòu)框圖如圖4所示。其基本工作方式是:兩模塊并行接入系統(tǒng)中,其中一個模塊正常工作,另一個模塊作為熱備份。當(dāng)正在運行的模塊出現(xiàn)故障導(dǎo)致輸出不正常時,系統(tǒng)立即切換到備份模塊,保證系統(tǒng)正常運行。同時重構(gòu)控制器發(fā)出重構(gòu)信號調(diào)用Flash里的模塊配置數(shù)據(jù)對故障模塊進行重配置,從而消除、修復(fù)模塊故障。
圖4中,模塊A和備份模塊B結(jié)構(gòu)、系統(tǒng)和功能完全一樣,位于FPGA動態(tài)模塊區(qū)域,其它部分位于靜態(tài)模塊區(qū)域,F(xiàn)lash里的動態(tài)配置數(shù)據(jù)只需準備一個即可完成對模塊A和備份模塊B的重構(gòu)。其工作原理是:正常情況下,整個系統(tǒng)正常工作;當(dāng)檢測器檢測到正在工作的模塊A故障時,一方面檢測器馬上切斷模塊A的輸出,并發(fā)出報警信號給備份控制模塊啟動備份模塊B,使備份模塊B接入電路,正常工作;另一方面,檢測器給重構(gòu)控制器發(fā)送信號,重構(gòu)控制器發(fā)送重構(gòu)信號調(diào)用Flash里的模塊A配置數(shù)據(jù)對故障模塊A進行重新配置,消除、修復(fù)模塊A的故障。模塊A故障消除后,將其作為正在工作的備份模塊B的熱備份,如此循環(huán)。在重構(gòu)過程中,靜態(tài)模塊不受影響,仍然正常工作。機載雷達里核心部件模塊(如MTD模塊)的可靠性一般都比較高,2個模塊同時出故障的可能性基本不會發(fā)生。因此,基于局部可重構(gòu)技術(shù)的DMR設(shè)計能夠滿足機載雷達可靠性高的要求。
圖4 局部可重構(gòu)技術(shù)的DMR設(shè)計結(jié)構(gòu)框圖
與傳統(tǒng)冗余技術(shù)最大的區(qū)別是,基于局部可重構(gòu)技術(shù)的DMR設(shè)計不僅能有效提高可靠性,還能夠?qū)δK故障進行及時的消除、修復(fù),以保證機載雷達能夠?qū)崟r、不間斷地工作。這一優(yōu)勢使其在機載雷達方面具有廣闊的研究應(yīng)用前景。
如圖5是局部可重構(gòu)技術(shù)的DMR設(shè)計工作流程,系統(tǒng)正常運行時,正常輸出;檢測器檢測到運行模塊故障時,立即切斷故障模塊的輸出,并切換至備份模塊使其接入系統(tǒng),保證整個系統(tǒng)的正常工作,同時啟動重構(gòu)配置數(shù)據(jù)對模塊故障進行消除、修復(fù)。
圖5 局部可重構(gòu)技術(shù)的DMR設(shè)計工作流程
本例以Altera公司的Stratix系列EP5SGXEA7N2F40C2N作為開發(fā)硬件平臺,利用功能強大的Quartus II作為開發(fā)軟件,運用硬件描述語言Verilog HDL語言作為編程語言。
本實驗以一個3人表決器和一個二選一選擇器為例,從占用芯片資源、可靠性、可維修性幾個方面對傳統(tǒng)三模冗余和局部可重構(gòu)技術(shù)的DMR設(shè)計進行比較。
運用Quartus II軟件編程一個3人表決器,如圖6所示。
其中3個輸入模塊MULTADD1是系統(tǒng)、結(jié)構(gòu)、功能完全相同的乘法累加器,對3人表決器進行相關(guān)的設(shè)計、編譯、仿真后,可得到其編譯報告和仿真波形,仿真波形圖7所示。
由圖6可知,DATAa[7..0]為輸入,其經(jīng)過3個完全相同乘法累加器后結(jié)果相同,再通過表決電路后輸出仍然相同。從圖7可觀察到,在時鐘CLK1的第4個上升沿后輸出S=0×0+1×1=1;第5個上升沿后輸出S=1×1+2×2=5;第6個上升沿后輸出S=2×2+3×3=13。由于仿真存在延時,故在上升沿后一小段時間的輸出值仍與前一輸出值相同。
同理,可得到二選一選擇器的設(shè)計電路圖和仿真波形,分別如圖8、圖9所示。
由圖8可知,當(dāng)控制端S0為低電平時,選擇DATAa2[7..0]為輸入的乘法累加器的值輸出;當(dāng)控制端S0為高電平時,選擇DATAb[7..0]為輸入的乘法累加器的值輸出。
從圖9可觀察到,在時鐘CLK1的第4個上升沿后,控制端S0為低電平,選擇DATAa2[7..0]為輸入的乘法累加器的值S=0×0+1×1=1輸出;第5個上升沿后,控制端S0為高電平,選擇DATAb[7..0]為輸入的乘法累加器的值S=3×3+4×4=25輸出。由于仿真存在延時,故在上升沿后一小段時間的輸出值仍與前一輸出值相同。
圖6 3人表決器設(shè)計電路圖
圖7 3人表決器仿真波形圖
圖8 二選一選擇器設(shè)計電路圖
圖9 二選一選擇器的仿真波形
由3人表決器、二選一選擇器編譯報告,對比它們的資源消耗如表1所示。
表1 3人表決器、二選一選擇器的資源消耗對比
表1中,LE使用量和專用邏輯存儲器減少了23.1%,總存儲量也減少了23.1%,總組合功能使用量減少了25%,嵌入9bit乘數(shù)元素使用量減少了3%。
從可靠性、資源消耗以及可修復(fù)性3個方面對比雙模冗余、三模冗余和局部可重構(gòu)技術(shù)的DMR,如表2所示。
表2 3種技術(shù)的DMR比較
本文在學(xué)習(xí)Xilinx公司基于模塊的動態(tài)重構(gòu)設(shè)計基礎(chǔ)上,根據(jù)Altera用戶手冊,總結(jié)提煉出了一種更加適合于Altera公司Stratix系列器件改進型基于模塊的動態(tài)重構(gòu)設(shè)計。結(jié)合傳統(tǒng)的硬件冗余技術(shù)提出了一種基于局部可重構(gòu)技術(shù)的DMR設(shè)計,其意義不僅僅是節(jié)省了硬件資源,還能夠?qū)δK故障進行及時消除和修復(fù),提高了系統(tǒng)可靠性,保證了機載雷達的不間斷值班。
[1]張超,劉崢,趙偉.基于動態(tài)可重構(gòu)FPGA的容錯技術(shù)研究[J].電子科技,2011,24(1):102-108.
[2]劉斐文,姚睿.基于FPGA動態(tài)部分重構(gòu)的D/TMR系統(tǒng)設(shè)計[J].計算機工程與應(yīng)用,2010,46(35):55-57.
[3]張本宏,陸陽,魏臻,等.雙模冗余比較系統(tǒng)的可靠性和安全性分析[J].系統(tǒng)工程學(xué)報,2009,24(2):232-237.
[4]王開宇,夏書峰,劉東旭.基于差異和模塊重構(gòu)技術(shù)的動態(tài)可重構(gòu)設(shè)計[J].微電子學(xué)與計算機,2010,27(11):51-54.
[5]許駿,晏渭川,彭澄廉.基于模塊的動態(tài)可重構(gòu)系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2008,29(6):1367-1368.
[6]徐新民,樂瑩.FPGA動態(tài)部分重構(gòu)的研究及位流信息重構(gòu)的實現(xiàn)[J].科技通報,2008,24(2):235-245.
[7]薛建偉,張杰,關(guān)永.基于EAPR流程的動態(tài)局部可重構(gòu)實 現(xiàn) [J].工 程 應(yīng)用 技 術(shù) 與 實 現(xiàn),2010,23(36):252-254.
[8]魏昱,李躍華,張金林.基于FPGA的可重構(gòu)技術(shù)發(fā)展與應(yīng)用研究[J].電子技術(shù)與軟件工程,2014(6):198-200.