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