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