豐 坤,李躍華,張金林
(空軍預警學院,武漢430019)
現代信息化戰爭對空中預警裝備(如機載雷達)提出了可靠性高、體積小、功耗低、實時性強等要求。本文總結提煉出了一種更加適合于Altera公司Stratix系列器件的改進型基于模塊的動態重構設計,并結合傳統硬件冗余,提出了一種基于現場可編程門陣列(FPGA)局部動態可重構的雙模冗余(DMR)設計,以提升預警裝備的戰技性能,滿足作戰要求。
隨著數字系統的快速發展以及FPGA的日趨成熟,能夠實時重構的容錯技術逐漸應用于軍事領域。基于FPGA的動態容錯技術[1],其基本原理是將備用配置數據重新下載到FPGA上,以消除原有的故障,即允許對可重構的模塊或系統的一部分進行重新配置,在配置的過程中,其余的部分可以繼續工作而不受配置區域的影響。傳統的容錯技術主要包括硬件冗余、軟件冗余、信息冗余和時間冗余。在雷達裝備里用得最多的是三模冗余(TMR)[2]和雙模冗余比較(DMRC)[3],它們都能在模塊出現故障時迅速切換到備份模塊,保證系統、裝備的正常工作,其不足是不能及時消除、修復故障,并且會使功率和硬件資源的消耗過大,增大了體積和成本的開銷。本文在對基于Xilinx公司器件的4種局部重構設計方法學習研究的基礎上,根據Altera用戶手冊,對基于模塊的動態重構設計方法進行優化改進,使其更加適合于Altera公司的Stratix系列器件。結合傳統容錯技術,提出了一種基于FPGA局部可重構技術的DMR設計,它能夠克服以上傳統容錯技術的不足,降低功耗,減少硬件資源的使用,提高系統、裝備的可靠性、實時性。
雙模冗余比較[3](DMRC)是一種主動硬件冗余形式,其結構框圖如圖1所示。

圖1 雙模冗余比較結構框圖
雙模冗余比較基本工作方式為:系統正常工作時,2個完全相同的模塊1和模塊2,輸出到比較控制器進行比較,如果比較結果一致,則正常輸出;如果比較結果不一致,則啟動它們各自的檢測電路進行故障檢測,將檢測到的故障模塊封鎖,禁止其輸出,只允許正常模塊輸出。這種方法能夠及時有效地檢測出故障,并確認故障模塊,保證系統的正常運行,但不具備對故障模塊及時消除和修復的能力。
在可靠性要求比較高的場合,如在沿海一線經常擔負戰備值班的雷達武器裝備,常常采用傳統的三模冗余[2](TMR)設計,它是一種比較典型的被動硬件冗余形式,其結構框圖如圖2所示。

圖2 傳統的TMR結構框圖
圖2中M1、M2、M3為結構和功能都相同的模塊,V為多數表決器。其工作方式為:系統正常工作時,M1、M2、M33個模塊同時接入電路工作,送到多數表決器V來表決。3個模塊中不多于1個模塊發生故障時,該TMR系統仍然正常工作,整個系統正常運行;當有1個以上模塊發生故障時,該TMR系統失效,整個系統不能正常運行。
TMR系統能夠掩蓋和忽略其中一個模塊出錯或故障,由于2個模塊同時出故障的概率很低,所以其可靠性非常高,但是其消耗硬件資源較多,且不具備對故障模塊及時消除和修復的能力。
隨著FPGA可重構技術的發展,目前市場上已經有Xilinx和Altera兩家公司的FPGA支持局部動態可重構。其中Xilinx公司主流的支持局部動態可重構的設計方法有以下4種:基于差異的動態重構設計[4],基于模塊的動態重構設計[5],基于比特流的動態重構設計[6]和早期獲取部分可重構(EAPR)的設計[7]。Altera公司的可重構方法可分為基于Stratix器件的重構設計方法和基于Cyclone器件的重構設計方法[8]。
在Xilinx的局部重構設計方法中,基于模塊的動態重構設計方法應用較廣,這里就不再描述其它的3種重構設計。基于模塊的動態重構[4]設計方法是系統按照一定的原則劃分為若干模塊,并且每個模塊之間相互獨立,其中一個模塊改變時不影響其它模塊的實現。它分別對每個模塊進行設計與綜合,最后通過頂層文件對所有子模塊的結果有機組合起來,就完成了整個系統的設計。其優點是設計靈活,方便團隊式地進行項目的并行開發,保證了項目的開發進度;同時各模塊之間實現功能相互獨立,在調試、改變其中某個子模塊的時候,最大程度上不干擾、影響其它模塊功能的實現。
由于本文中采用Altera公司的Stratix器件,故這里只介紹Stratix器件的重構方法。基于Altera公司Stratix器件的設計方法與基于模塊的設計方法類似,其可以看作是基于模塊的動態重構設計方法的改進型。根據Altera用戶手冊,對基于模塊的動態重構設計方法進行優化改進,使其更加適合于Altera公司的Stratix系列器件,如圖3所示,為基于Altera的Stratix系列器件局部重構設計流程改進型。該改進型的流程包括模塊設計、重構控制模塊設計、VerilogHDL編碼、功能仿真、設計分區、創建和編譯修訂、時序分析以及生成配置文件等主要步驟。

圖3 基于Stratix器件的改進型局部重構設計流程
(1)模塊設計
根據系統設計的需要,選擇最適合于局部重構的部分進行模塊設計。
(2)重構控制模塊設計
根據所采用的局部重構方法,設計一個局部重構控制模塊,它可以在FPGA內部,也可以在FPGA外部。其主要用來監控局部重構的過程。
(3)VerilogHDL編碼
利用硬件描述語言Verilog HDL為所有的局部重構區域編寫代碼。
(4)功能仿真
對VerilogHDL編碼進行功能仿真,驗證編碼、設計是否正確。
(5)設計分區
指定局部重構模塊與邏輯鎖定區域設計分區。如果功能仿真正確,就可以把局部重構模塊設置為設計分區,并加上邏輯鎖的位置約束。
(6)創建和編譯修訂
為每個personas的組合建立不同的修訂(revision),這些修訂主要是用來管理源文件以及執行時序分析。
(7)時序分析
對personas進行時序分析,如果時序分析正確,則執行下一步。
(8)生成配置文件
如果時序分析正確,就可以在Quartus II軟件將產生的文件轉換為執行局部重構所需要的部分配置文件。
在以上的任何步驟發生錯誤或與設計要求不相符,則返回到相應的步驟或位置進行修改或者重新設計。
由于傳統的冗余方法已經無法滿足現代機載雷達的要求,為了提高機載雷達探測各類復雜目標的能力,本文提出了一種基于局部可重構技術的DMR設計,結構框圖如圖4所示。其基本工作方式是:兩模塊并行接入系統中,其中一個模塊正常工作,另一個模塊作為熱備份。當正在運行的模塊出現故障導致輸出不正常時,系統立即切換到備份模塊,保證系統正常運行。同時重構控制器發出重構信號調用Flash里的模塊配置數據對故障模塊進行重配置,從而消除、修復模塊故障。
圖4中,模塊A和備份模塊B結構、系統和功能完全一樣,位于FPGA動態模塊區域,其它部分位于靜態模塊區域,Flash里的動態配置數據只需準備一個即可完成對模塊A和備份模塊B的重構。其工作原理是:正常情況下,整個系統正常工作;當檢測器檢測到正在工作的模塊A故障時,一方面檢測器馬上切斷模塊A的輸出,并發出報警信號給備份控制模塊啟動備份模塊B,使備份模塊B接入電路,正常工作;另一方面,檢測器給重構控制器發送信號,重構控制器發送重構信號調用Flash里的模塊A配置數據對故障模塊A進行重新配置,消除、修復模塊A的故障。模塊A故障消除后,將其作為正在工作的備份模塊B的熱備份,如此循環。在重構過程中,靜態模塊不受影響,仍然正常工作。機載雷達里核心部件模塊(如MTD模塊)的可靠性一般都比較高,2個模塊同時出故障的可能性基本不會發生。因此,基于局部可重構技術的DMR設計能夠滿足機載雷達可靠性高的要求。

圖4 局部可重構技術的DMR設計結構框圖
與傳統冗余技術最大的區別是,基于局部可重構技術的DMR設計不僅能有效提高可靠性,還能夠對模塊故障進行及時的消除、修復,以保證機載雷達能夠實時、不間斷地工作。這一優勢使其在機載雷達方面具有廣闊的研究應用前景。
如圖5是局部可重構技術的DMR設計工作流程,系統正常運行時,正常輸出;檢測器檢測到運行模塊故障時,立即切斷故障模塊的輸出,并切換至備份模塊使其接入系統,保證整個系統的正常工作,同時啟動重構配置數據對模塊故障進行消除、修復。

圖5 局部可重構技術的DMR設計工作流程
本例以Altera公司的Stratix系列EP5SGXEA7N2F40C2N作為開發硬件平臺,利用功能強大的Quartus II作為開發軟件,運用硬件描述語言Verilog HDL語言作為編程語言。
本實驗以一個3人表決器和一個二選一選擇器為例,從占用芯片資源、可靠性、可維修性幾個方面對傳統三模冗余和局部可重構技術的DMR設計進行比較。
運用Quartus II軟件編程一個3人表決器,如圖6所示。
其中3個輸入模塊MULTADD1是系統、結構、功能完全相同的乘法累加器,對3人表決器進行相關的設計、編譯、仿真后,可得到其編譯報告和仿真波形,仿真波形圖7所示。
由圖6可知,DATAa[7..0]為輸入,其經過3個完全相同乘法累加器后結果相同,再通過表決電路后輸出仍然相同。從圖7可觀察到,在時鐘CLK1的第4個上升沿后輸出S=0×0+1×1=1;第5個上升沿后輸出S=1×1+2×2=5;第6個上升沿后輸出S=2×2+3×3=13。由于仿真存在延時,故在上升沿后一小段時間的輸出值仍與前一輸出值相同。
同理,可得到二選一選擇器的設計電路圖和仿真波形,分別如圖8、圖9所示。
由圖8可知,當控制端S0為低電平時,選擇DATAa2[7..0]為輸入的乘法累加器的值輸出;當控制端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人表決器設計電路圖

圖7 3人表決器仿真波形圖

圖8 二選一選擇器設計電路圖

圖9 二選一選擇器的仿真波形
由3人表決器、二選一選擇器編譯報告,對比它們的資源消耗如表1所示。

表1 3人表決器、二選一選擇器的資源消耗對比
表1中,LE使用量和專用邏輯存儲器減少了23.1%,總存儲量也減少了23.1%,總組合功能使用量減少了25%,嵌入9bit乘數元素使用量減少了3%。
從可靠性、資源消耗以及可修復性3個方面對比雙模冗余、三模冗余和局部可重構技術的DMR,如表2所示。

表2 3種技術的DMR比較
本文在學習Xilinx公司基于模塊的動態重構設計基礎上,根據Altera用戶手冊,總結提煉出了一種更加適合于Altera公司Stratix系列器件改進型基于模塊的動態重構設計。結合傳統的硬件冗余技術提出了一種基于局部可重構技術的DMR設計,其意義不僅僅是節省了硬件資源,還能夠對模塊故障進行及時消除和修復,提高了系統可靠性,保證了機載雷達的不間斷值班。
[1]張超,劉崢,趙偉.基于動態可重構FPGA的容錯技術研究[J].電子科技,2011,24(1):102-108.
[2]劉斐文,姚睿.基于FPGA動態部分重構的D/TMR系統設計[J].計算機工程與應用,2010,46(35):55-57.
[3]張本宏,陸陽,魏臻,等.雙模冗余比較系統的可靠性和安全性分析[J].系統工程學報,2009,24(2):232-237.
[4]王開宇,夏書峰,劉東旭.基于差異和模塊重構技術的動態可重構設計[J].微電子學與計算機,2010,27(11):51-54.
[5]許駿,晏渭川,彭澄廉.基于模塊的動態可重構系統設計[J].計算機工程與設計,2008,29(6):1367-1368.
[6]徐新民,樂瑩.FPGA動態部分重構的研究及位流信息重構的實現[J].科技通報,2008,24(2):235-245.
[7]薛建偉,張杰,關永.基于EAPR流程的動態局部可重構實 現 [J].工 程 應用 技 術 與 實 現,2010,23(36):252-254.
[8]魏昱,李躍華,張金林.基于FPGA的可重構技術發展與應用研究[J].電子技術與軟件工程,2014(6):198-200.