基于軟件的空間輻照下FPGA可靠性設計方法
FPGA以其集成度高、靈活性強、開(kāi)發(fā)周期短的特點(diǎn),在航天領(lǐng)域得到了越來(lái)越廣泛的應用。然而,其工作的空間環(huán)境存在著(zhù)大量γ光子、輻射帶電子、高能質(zhì)子等高能粒子。這些高能粒子轟擊到器件上,會(huì )產(chǎn)生總劑量效應(Total Ionizing Dose, D)、單粒子翻轉(Single Event Upset, SEU)、單粒子鎖定(Single Event Latchup, SEL)、單粒子燒毀(Single Event Bumout,SEB)、單粒子柵擊穿(Single Event Gate Rupture, SEGR)、內帶電效應等空間輻射效應[1]。這些效應對基于SRAM的FPGA的影響尤為明顯。
本文引用地址:http://dyxdggzs.com/article/201809/389152.htm現代FPGA工藝向著(zhù)低電壓、高集成度方向發(fā)展,這使得發(fā)生空間輻射響應的閾值越來(lái)越低,發(fā)生故障的概率越來(lái)越大??臻g輻射效應的發(fā)生,輕則會(huì )使設備工作異常,重則會(huì )導致設備燒毀、永久失效。因此,FPGA必須進(jìn)行高可靠性設計,來(lái)最大限度地預防和解決空間輻射效應的影響。
1 空間輻照效應
據衛星資料統計,其異常記錄中有70%是由空間輻射環(huán)境引起的[2]。主要空間輻射效應與輻射源及作用對象之間關(guān)系如表1所列。
表1 主要輻射效應、輻射源及對象

單粒子效應(Single Event Effect,SEE)是單個(gè)高能質(zhì)子或重離子入射電子元器件上引發(fā)的輻射效應。根據效應的機理不同可分為單粒子翻轉、鎖定、燒毀、柵擊穿等。
當單個(gè)空間高能帶電粒子轟擊到大規模、超大規模的邏輯型微電子器件時(shí),沿粒子入射軌跡,在芯片的PN結附近區產(chǎn)生電離效應,生成一定數量的電子空穴對(載流子)。如果芯片處于加電狀態(tài),這些由于輻射產(chǎn)生的載流子將在芯片內部電場(chǎng)作用下發(fā)生飄移和重新分布,從而改變了芯片內部正常載流子的運動(dòng)分布和運動(dòng)狀態(tài)。當這種改變足夠大時(shí),將引起器件電性能狀態(tài)的改變,造成邏輯器件或電路的邏輯錯誤,例如:存儲器中數據發(fā)生翻轉,使能信號被重新置位,從而引起邏輯功能混亂、計算機程序“跑飛”,甚至造成災難性的后果。
目前,大多數FPGA基于SRAM結構?;赟RAM的FPGA中的基本可編程通孔是一個(gè)1位的SRAM單元。這種SRAM通孔的編程和擦寫(xiě)方式與其他SRAM存儲器一樣。雖然SRAM通孔比一般SRAM組建更可靠,但之后的狀態(tài)也很容易被空間輻射產(chǎn)生的電荷改寫(xiě)[3]。
圖1為與FPGA相同的CMOS工藝單粒子翻轉示意圖和單粒子翻轉敏感區域[4]。

圖1 與FPGA相同的CMOS工藝單粒子翻轉示意圖
因此,對于FPGA軟件設計而言,單粒子翻轉對FPGA內部邏輯、存儲器的影響尤為嚴重,需要進(jìn)行安全可靠性設計。
2 防范措施
通??梢圆捎萌缦碌姆椒?,最大限度地防止或避免空間輻照下的單粒子效應對FPGA軟件的影響。
2.1 定期重新配置FPGA
對FPGA進(jìn)行重新配置,可以清除積累的任何錯誤。設計者必須確定潛在錯誤的影響,以及這些錯誤蔓延所需的時(shí)間。在這個(gè)時(shí)間段之內重新配置FPGA,或者設計檢測電路,當FPGA工作錯誤時(shí),及時(shí)對FPGA進(jìn)行重新配置。雖然錯誤仍然會(huì )蔓延,但潛在的損害被重新配置所限制。
筆者所設計的系統為CCD相機成像系統,由任務(wù)需求及功能估算,每次開(kāi)機上電時(shí)間約為120 s。開(kāi)機即加載FPGA邏輯,攝像任務(wù)完成后,隨即下電,準備下一次攝像任務(wù)。因此,可以極大地避免空間輻照效應對設備的影響。
2.2 三模冗余(TMR)
對關(guān)鍵信號,數據進(jìn)行冗余設計,是防止SEU發(fā)生的比較行之有效的方法。冗余設計是用多個(gè)相同單元構成并聯(lián)形式,最后通過(guò)表決單元輸出最終的數據或信號,三模冗余是常用的冗余設計方法。理論上,在FPGA中某一單元發(fā)生SEU的概率是存在的。但連續兩個(gè)相同單元同時(shí)發(fā)生SEU事件,在有限的工作時(shí)間內,幾乎是不可能的。雖然一個(gè)單元發(fā)生SEU導致錯誤,但其他單元不會(huì )同時(shí)發(fā)生錯誤,通過(guò)表決,保證了數據或信號的安全可靠。圖2為Xilinx公司推薦的三模冗余結構。雖然TMR帶來(lái)了可靠性的提高[5],但是隨之帶來(lái)了系統最高運行速度的降低和資源的浪費,而且表決器本身也可能出錯,并不具備抗空間輻照的能力。如果系統長(cháng)時(shí)間加電工作于空間輻射環(huán)境中,由于SEU的累積效應,兩個(gè)或多個(gè)表決單元都發(fā)生SEU的可能還是存在的,這就需要采取相應的設計方法,檢測發(fā)生SEU的邏輯單元,將其重新置位,“拉”回正常工作狀態(tài),從而保證系統的安全可靠。

圖2 Xilinx公司推薦的三模冗余邏輯
目前,Xilinx公司等FPGA制造商能夠提供相應的TMR模塊IP核,但目前還無(wú)法獲得??梢愿鶕?shí)際情況,對系統關(guān)鍵的部位,進(jìn)行三模冗余設計。
筆者在所設計的系統中,同時(shí)設計了3個(gè)“關(guān)鍵數據解析”單元,將解析到的關(guān)鍵數據同時(shí)存儲在相鄰的3個(gè)塊RAM中,最后通過(guò)“關(guān)鍵數據表決單元”,輸出可靠的關(guān)鍵數據。
2.3 周期擦除技術(shù)
周期擦除技術(shù)是指,在固定時(shí)間周期內,對系統內部各關(guān)鍵單元進(jìn)行周期擦除復位,這樣可以很大程度地避免單粒子翻轉對系統產(chǎn)生的影響。
當系統中發(fā)生單粒子翻轉事件時(shí),可能會(huì )導致關(guān)鍵寄存器、計數器或關(guān)鍵使能信號等發(fā)生意外翻轉,引起外圍控制器件異常工作。若這種異常的工作狀態(tài)持續時(shí)間較長(cháng),會(huì )導致設備無(wú)法正常工作甚至永久損壞。若系統采用周期擦除技術(shù),一旦發(fā)生SEU,周期復位信號可以在很短的時(shí)間內,將錯誤的計數器、存儲器復位到正確狀態(tài),保證系統的安全穩定。
筆者所設計的CCD成像系統,CCD探測器的各時(shí)序控制信號為關(guān)鍵信號。若不幸發(fā)生SEU,可能導致CCD時(shí)序驅動(dòng)信號頻率大幅升高,過(guò)高的頻率會(huì )導致外圍驅動(dòng)器失效甚至燒毀。
由于CCD時(shí)序控制信號為周期信號,故在時(shí)序設計中,系統內部自行產(chǎn)生周期擦除信號。此信號同時(shí)產(chǎn)生3個(gè),進(jìn)行三模冗余備份,并經(jīng)過(guò)FPGA時(shí)鐘樹(shù)網(wǎng)絡(luò ),保證此周期復位信號安全可靠。此信號采用同步復位,用軟件仿真SEU故障,時(shí)序仿真圖如圖3所示。

圖3 周期擦除時(shí)序仿真圖
信號cnt_fre經(jīng)過(guò)周期擦除處理,而cnt_fre_r未經(jīng)過(guò)相應處理??梢钥吹?,在某時(shí)刻,兩個(gè)計數器均發(fā)生了SEU,計數值跳轉到異常值76且保持。由于采用周期擦除技術(shù),cnt_fre在周期擦除信號有效期間,復位至初始狀態(tài),繼續正常工作。而未經(jīng)周期擦除處理的cnt_fre_r則始終處于異常狀態(tài),導致系統故障。
2.4 糾錯電路EDAC
FPGA系統發(fā)生SEU后,會(huì )使關(guān)鍵寄存器、信號等處于錯誤狀態(tài)。盡管可以通過(guò)三模冗余技術(shù),將這種錯誤狀態(tài)暫時(shí)隔置,但是在長(cháng)期加電工作要求的條件下,冗余單元可能繼續發(fā)生錯誤而導致單元失效。
對各模塊關(guān)鍵信號實(shí)時(shí)監測,并將檢測到的錯誤信號及時(shí)糾正,防止了空間輻照對系統的影響。糾錯電路的設計需要根據系統的特點(diǎn),進(jìn)行相應的設計。系統EDAC(Error Detected And Corrected)設計的功能仿真圖如圖4所示。

圖4 EDAC功能仿真圖
系統對關(guān)鍵寄存器Sta_Line(起始行寄存器)進(jìn)行三模冗余,當糾錯使信號EDAC_n有效時(shí),進(jìn)行3個(gè)冗余單元的三選二表決,并將表決結果暫存在表決結果寄存器reg內,更新至各冗余單元寄存器中。由圖4可知,寄存器sta_line3在某時(shí)刻發(fā)生了SEU,sta_line3寄存器故障。在edac_n有效時(shí),將此關(guān)鍵信號糾錯,置回正確狀態(tài),而關(guān)鍵信號sta_line將始終保持正確值,保證了系統的安全可靠。
結語(yǔ)
可編程邏輯器件FPGA必將在航天領(lǐng)域得到更廣泛的應用。針對空間輻照效應影響的高可靠性設計,將越來(lái)越成為FPGA軟硬件設計的難點(diǎn)和重點(diǎn)。根據飛行器空間軌道的不同、輻射總劑量的差異,從硬件上,可以通過(guò)加厚屏蔽層、元器件加固等方式,盡可能地降低SEU發(fā)生的概率;從軟件上,通過(guò)定期重配置、周期擦除、三模冗余、EDAC等手段,最大程度降低或消除SEU對系統的影響。本文提出的基于軟件的空間輻照下FPGA可靠性設計方法,可以為空間航天FPGA嵌入式系統設計提供一定的參考。
評論