基于軟件的空間輻照下FPGA可靠性設(shè)計方法
FPGA以其集成度高、靈活性強(qiáng)、開發(fā)周期短的特點(diǎn),在航天領(lǐng)域得到了越來越廣泛的應(yīng)用。然而,其工作的空間環(huán)境存在著大量γ光子、輻射帶電子、高能質(zhì)子等高能粒子。這些高能粒子轟擊到器件上,會產(chǎn)生總劑量效應(yīng)(Total Ionizing Dose, D)、單粒子翻轉(zhuǎn)(Single Event Upset, SEU)、單粒子鎖定(Single Event Latchup, SEL)、單粒子燒毀(Single Event Bumout,SEB)、單粒子?xùn)艙舸?Single Event Gate Rupture, SEGR)、內(nèi)帶電效應(yīng)等空間輻射效應(yīng)[1]。這些效應(yīng)對基于SRAM的FPGA的影響尤為明顯。
本文引用地址:http://2s4d.com/article/201809/389152.htm現(xiàn)代FPGA工藝向著低電壓、高集成度方向發(fā)展,這使得發(fā)生空間輻射響應(yīng)的閾值越來越低,發(fā)生故障的概率越來越大??臻g輻射效應(yīng)的發(fā)生,輕則會使設(shè)備工作異常,重則會導(dǎo)致設(shè)備燒毀、永久失效。因此,F(xiàn)PGA必須進(jìn)行高可靠性設(shè)計,來最大限度地預(yù)防和解決空間輻射效應(yīng)的影響。
1 空間輻照效應(yīng)
據(jù)衛(wèi)星資料統(tǒng)計,其異常記錄中有70%是由空間輻射環(huán)境引起的[2]。主要空間輻射效應(yīng)與輻射源及作用對象之間關(guān)系如表1所列。
表1 主要輻射效應(yīng)、輻射源及對象
單粒子效應(yīng)(Single Event Effect,SEE)是單個高能質(zhì)子或重離子入射電子元器件上引發(fā)的輻射效應(yīng)。根據(jù)效應(yīng)的機(jī)理不同可分為單粒子翻轉(zhuǎn)、鎖定、燒毀、柵擊穿等。
當(dāng)單個空間高能帶電粒子轟擊到大規(guī)模、超大規(guī)模的邏輯型微電子器件時,沿粒子入射軌跡,在芯片的PN結(jié)附近區(qū)產(chǎn)生電離效應(yīng),生成一定數(shù)量的電子空穴對(載流子)。如果芯片處于加電狀態(tài),這些由于輻射產(chǎn)生的載流子將在芯片內(nèi)部電場作用下發(fā)生飄移和重新分布,從而改變了芯片內(nèi)部正常載流子的運(yùn)動分布和運(yùn)動狀態(tài)。當(dāng)這種改變足夠大時,將引起器件電性能狀態(tài)的改變,造成邏輯器件或電路的邏輯錯誤,例如:存儲器中數(shù)據(jù)發(fā)生翻轉(zhuǎn),使能信號被重新置位,從而引起邏輯功能混亂、計算機(jī)程序“跑飛”,甚至造成災(zāi)難性的后果。
目前,大多數(shù)FPGA基于SRAM結(jié)構(gòu)?;赟RAM的FPGA中的基本可編程通孔是一個1位的SRAM單元。這種SRAM通孔的編程和擦寫方式與其他SRAM存儲器一樣。雖然SRAM通孔比一般SRAM組建更可靠,但之后的狀態(tài)也很容易被空間輻射產(chǎn)生的電荷改寫[3]。
圖1為與FPGA相同的CMOS工藝單粒子翻轉(zhuǎn)示意圖和單粒子翻轉(zhuǎn)敏感區(qū)域[4]。
圖1 與FPGA相同的CMOS工藝單粒子翻轉(zhuǎn)示意圖
因此,對于FPGA軟件設(shè)計而言,單粒子翻轉(zhuǎn)對FPGA內(nèi)部邏輯、存儲器的影響尤為嚴(yán)重,需要進(jìn)行安全可靠性設(shè)計。
2 防范措施
通??梢圆捎萌缦碌姆椒?,最大限度地防止或避免空間輻照下的單粒子效應(yīng)對FPGA軟件的影響。
2.1 定期重新配置FPGA
對FPGA進(jìn)行重新配置,可以清除積累的任何錯誤。設(shè)計者必須確定潛在錯誤的影響,以及這些錯誤蔓延所需的時間。在這個時間段之內(nèi)重新配置FPGA,或者設(shè)計檢測電路,當(dāng)FPGA工作錯誤時,及時對FPGA進(jìn)行重新配置。雖然錯誤仍然會蔓延,但潛在的損害被重新配置所限制。
筆者所設(shè)計的系統(tǒng)為CCD相機(jī)成像系統(tǒng),由任務(wù)需求及功能估算,每次開機(jī)上電時間約為120 s。開機(jī)即加載FPGA邏輯,攝像任務(wù)完成后,隨即下電,準(zhǔn)備下一次攝像任務(wù)。因此,可以極大地避免空間輻照效應(yīng)對設(shè)備的影響。
2.2 三模冗余(TMR)
對關(guān)鍵信號,數(shù)據(jù)進(jìn)行冗余設(shè)計,是防止SEU發(fā)生的比較行之有效的方法。冗余設(shè)計是用多個相同單元構(gòu)成并聯(lián)形式,最后通過表決單元輸出最終的數(shù)據(jù)或信號,三模冗余是常用的冗余設(shè)計方法。理論上,在FPGA中某一單元發(fā)生SEU的概率是存在的。但連續(xù)兩個相同單元同時發(fā)生SEU事件,在有限的工作時間內(nèi),幾乎是不可能的。雖然一個單元發(fā)生SEU導(dǎo)致錯誤,但其他單元不會同時發(fā)生錯誤,通過表決,保證了數(shù)據(jù)或信號的安全可靠。圖2為Xilinx公司推薦的三模冗余結(jié)構(gòu)。雖然TMR帶來了可靠性的提高[5],但是隨之帶來了系統(tǒng)最高運(yùn)行速度的降低和資源的浪費(fèi),而且表決器本身也可能出錯,并不具備抗空間輻照的能力。如果系統(tǒng)長時間加電工作于空間輻射環(huán)境中,由于SEU的累積效應(yīng),兩個或多個表決單元都發(fā)生SEU的可能還是存在的,這就需要采取相應(yīng)的設(shè)計方法,檢測發(fā)生SEU的邏輯單元,將其重新置位,“拉”回正常工作狀態(tài),從而保證系統(tǒng)的安全可靠。
圖2 Xilinx公司推薦的三模冗余邏輯
目前,Xilinx公司等FPGA制造商能夠提供相應(yīng)的TMR模塊IP核,但目前還無法獲得。可以根據(jù)實(shí)際情況,對系統(tǒng)關(guān)鍵的部位,進(jìn)行三模冗余設(shè)計。
筆者在所設(shè)計的系統(tǒng)中,同時設(shè)計了3個“關(guān)鍵數(shù)據(jù)解析”單元,將解析到的關(guān)鍵數(shù)據(jù)同時存儲在相鄰的3個塊RAM中,最后通過“關(guān)鍵數(shù)據(jù)表決單元”,輸出可靠的關(guān)鍵數(shù)據(jù)。
2.3 周期擦除技術(shù)
周期擦除技術(shù)是指,在固定時間周期內(nèi),對系統(tǒng)內(nèi)部各關(guān)鍵單元進(jìn)行周期擦除復(fù)位,這樣可以很大程度地避免單粒子翻轉(zhuǎn)對系統(tǒng)產(chǎn)生的影響。
當(dāng)系統(tǒng)中發(fā)生單粒子翻轉(zhuǎn)事件時,可能會導(dǎo)致關(guān)鍵寄存器、計數(shù)器或關(guān)鍵使能信號等發(fā)生意外翻轉(zhuǎn),引起外圍控制器件異常工作。若這種異常的工作狀態(tài)持續(xù)時間較長,會導(dǎo)致設(shè)備無法正常工作甚至永久損壞。若系統(tǒng)采用周期擦除技術(shù),一旦發(fā)生SEU,周期復(fù)位信號可以在很短的時間內(nèi),將錯誤的計數(shù)器、存儲器復(fù)位到正確狀態(tài),保證系統(tǒng)的安全穩(wěn)定。
筆者所設(shè)計的CCD成像系統(tǒng),CCD探測器的各時序控制信號為關(guān)鍵信號。若不幸發(fā)生SEU,可能導(dǎo)致CCD時序驅(qū)動信號頻率大幅升高,過高的頻率會導(dǎo)致外圍驅(qū)動器失效甚至燒毀。
由于CCD時序控制信號為周期信號,故在時序設(shè)計中,系統(tǒng)內(nèi)部自行產(chǎn)生周期擦除信號。此信號同時產(chǎn)生3個,進(jìn)行三模冗余備份,并經(jīng)過FPGA時鐘樹網(wǎng)絡(luò),保證此周期復(fù)位信號安全可靠。此信號采用同步復(fù)位,用軟件仿真SEU故障,時序仿真圖如圖3所示。
圖3 周期擦除時序仿真圖
信號cnt_fre經(jīng)過周期擦除處理,而cnt_fre_r未經(jīng)過相應(yīng)處理。可以看到,在某時刻,兩個計數(shù)器均發(fā)生了SEU,計數(shù)值跳轉(zhuǎn)到異常值76且保持。由于采用周期擦除技術(shù),cnt_fre在周期擦除信號有效期間,復(fù)位至初始狀態(tài),繼續(xù)正常工作。而未經(jīng)周期擦除處理的cnt_fre_r則始終處于異常狀態(tài),導(dǎo)致系統(tǒng)故障。
2.4 糾錯電路EDAC
FPGA系統(tǒng)發(fā)生SEU后,會使關(guān)鍵寄存器、信號等處于錯誤狀態(tài)。盡管可以通過三模冗余技術(shù),將這種錯誤狀態(tài)暫時隔置,但是在長期加電工作要求的條件下,冗余單元可能繼續(xù)發(fā)生錯誤而導(dǎo)致單元失效。
對各模塊關(guān)鍵信號實(shí)時監(jiān)測,并將檢測到的錯誤信號及時糾正,防止了空間輻照對系統(tǒng)的影響。糾錯電路的設(shè)計需要根據(jù)系統(tǒng)的特點(diǎn),進(jìn)行相應(yīng)的設(shè)計。系統(tǒng)EDAC(Error Detected And Corrected)設(shè)計的功能仿真圖如圖4所示。
圖4 EDAC功能仿真圖
系統(tǒng)對關(guān)鍵寄存器Sta_Line(起始行寄存器)進(jìn)行三模冗余,當(dāng)糾錯使信號EDAC_n有效時,進(jìn)行3個冗余單元的三選二表決,并將表決結(jié)果暫存在表決結(jié)果寄存器reg內(nèi),更新至各冗余單元寄存器中。由圖4可知,寄存器sta_line3在某時刻發(fā)生了SEU,sta_line3寄存器故障。在edac_n有效時,將此關(guān)鍵信號糾錯,置回正確狀態(tài),而關(guān)鍵信號sta_line將始終保持正確值,保證了系統(tǒng)的安全可靠。
結(jié)語
可編程邏輯器件FPGA必將在航天領(lǐng)域得到更廣泛的應(yīng)用。針對空間輻照效應(yīng)影響的高可靠性設(shè)計,將越來越成為FPGA軟硬件設(shè)計的難點(diǎn)和重點(diǎn)。根據(jù)飛行器空間軌道的不同、輻射總劑量的差異,從硬件上,可以通過加厚屏蔽層、元器件加固等方式,盡可能地降低SEU發(fā)生的概率;從軟件上,通過定期重配置、周期擦除、三模冗余、EDAC等手段,最大程度降低或消除SEU對系統(tǒng)的影響。本文提出的基于軟件的空間輻照下FPGA可靠性設(shè)計方法,可以為空間航天FPGA嵌入式系統(tǒng)設(shè)計提供一定的參考。
評論