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