薛茜男,王 鵬 ,田 毅,白 杰
(中國民航大學適航審定技術與管理研究中心,民用航空器適航與維修重點實驗室,天津300300)
現場可編程門陣列FPGA(Field Programmable Gate Array)等數字電路已被廣泛應用于航空航天等多方面領域。目前,民用機載電子硬件等相關開發很多都是基于FPGA 技術,諸如信號處理、監控、發動機控制等。由于FPGA 的可編程性,使得其具有極大的靈活度,可以配置執行任何用戶指定的操作。同時,FPGA 還可以及時修訂不正確的設計和重新配置FPGA 而避免一些錯誤的發生[1]。FPGA 比起ASIC 等其他電路芯片系統有著不可比擬的優勢,但是FPGA 對于重離子和原子所引起的單粒子效應非常敏感,尤其是近年來高密度集成芯片的出現,電路容量增大、操作電壓降低使得它們在輻射環境下的可靠性降低[2-3]。單粒子效應引起的邏輯翻轉會影響到用戶設計的觸發器,FPGA 配置比特流,和任何隱藏的FPGA 寄存器或狀態機。其中配置比特流的翻轉是特別重要,因為這樣的翻轉會直接影響電路的工作狀態和相關動作。如果配置位翻轉,電路的工作會被改變,將直接導致資源和邏輯功能被打亂。
單粒子效應引起的翻轉故障是由粒子和PN 結相互作用引起的一種暫態故障,主要是由單粒子翻轉SEU(Single Event Upset)及單粒子瞬態脈沖SET(Single Event Transient)這些單粒子效應引起的,對SRAM 型的FPGA 上實現的電路具有特別嚴重的影響。由于三模冗余 TMR (Triple Modular Redundancy)技術簡單性以及高可靠性,被廣泛使用于FPGA 電路中的SEU 效應的容錯技術。文獻[4-5]中表明三模冗余的容錯技術可大幅度提高FPGA在SEU 效應影響下的可靠性。
FPGA 等數字電路已經成為航空飛行控制的基本組成部分。不同于航天領域,盡管航空飛行遭受輻射的強度和機率都會較低,但是隨著數字電路技術的發展,工藝尺寸已經達到微米甚至納米級尺度,在實現高密度和高集成度的數字電路同時也使得數字電路更加容易受到重離子轟擊造成單粒子翻轉故障[6]。特別是對于民用航空領域,較長的使用時間和很高的使用頻率對FPGA 等相關數字電路的可靠性都提出了更高的要求。實驗數據表明[7-8],在6 000 inch 北緯40°飛行時,器件發生SEU 的概率為1.85×10-2次/(天·器件)。假設一塊航空電子電路板上有4 個FPGA,航空電子系統含有4 塊板,則此航空電子系統的平均翻轉間隔時間為9 h,遠達不到可靠性要求。聯邦航空管理局(FAA)2011 年2 月最新發布的《機載系統的微處理器的選擇和評價手冊》[9]中專門提到單粒子翻轉引起的軟故障會導致寄存器配置位的改變,并提出應該對SEU 效應進行監控。ARJ21 影子審查開展后,FAA 在其獨立的問題紀要中提到需要考慮的“單粒子效應”問題,要求對其進行額外檢查以保證功能的正確性和完整性。因而,亟待民用機載電子硬件適航審定人員開展單粒子效應測試研究工作,評估機載電子硬件數字電路對單粒子效應的防護能力。
目前,對FPGA 等數字電路抗SEU 效應的測試方法主要包括航空航天器搭載實驗[10]、地面高能粒子輻照實驗[11]和單粒子翻轉故障注入實驗[12]。其中搭載試驗周期長,成本高,試驗靈活性差。地面高能粒子輻照實驗需要昂貴復雜的設備,測試周期長,靈活性差,而且是有損測試。另外,由于SEU 是一種隨機事件,為了保證實驗中能夠確保觀察到單粒子翻轉現象,需要加長測試時間或是采取加速手段,這都對實驗設計提出了很高要求。單粒子翻轉故障注入的方法實現靈活,測試率高,對器件沒有物理損傷,不受器件固有SEE 性能和其他輻射效應影響,受到了許多研究人員的關注。
本文以仿真SEU 故障注入為手段,從民用機載電子硬件數字電路中主流的三模冗余技術入手,設計了SEU 效應仿真測試電路,可仿真檢測系統是否受SEU 故障影響引起系統失效,并計算系統的SEU故障失效率。基于Altera Cyclone? Ⅳ4CE115 FPGA 器件,將冗余系統與多時鐘沿觸發相結合,提高了電路的檢錯能力。模擬高空輻射環境對冗余系統進行故障注入,通過與參照單元的比較,可直接靈活地仿真測試SEU 故障的發生。
由于SRAM 的FPGA 對于帶電粒子的輻射特別敏感,當某個基本電路單元受到高能粒子入侵產生單粒子翻轉故障時,這個故障可以通過新生的關系,擴大到更大的作用區域,甚至導致電路輸出失效。在空間輻射環境下,由于高能粒子入射到SRAM 型FPGA并最終導致電路輸出軟失效是一個復雜的隨機過程[13]。首先,高能粒子穿過航天器表面的防護層及器件封裝材料,抵達器件的敏感區域。然后,考慮粒子抵達敏感區域后與器件材料發生相互作用,使得器件特性發生變化,導致某些存儲單元或處理節點發生了位翻轉的邏輯狀態異常,發生了軟故障。最后,單粒子翻轉發生后在系統內部擴散和傳播,最終導致系統輸出結果偏離預期或出現錯誤動作,造成系統失效。單粒子翻轉的概率取決于器件的翻轉截面和粒子通量,而粒子通量與輻射環境有關,翻轉截面是器件本身的物理特性,表征的實際上就是器件的固有抗單粒子翻轉能力。單粒子翻轉將按照一定的概率轉化為系統輸出的軟失效,這個過程與系統硬件和軟件的體系結構以及工作負載(對FPGA 就是用戶電路)有關,如FPGA 中未使用到的配置比特流資源等,這些單元是否發生單粒子翻轉都不會被傳播。目前,研究人員對于單粒子效應仿真研究的主要是關注在軟故障發生的前提下,是否導致失效發生,目的在于分析系統在單粒子翻轉發生后的對電路輸出的影響。
故障注入技術是通過人為向系統中注入故障,并觀察系統的行為來對容錯系統可信性進行驗證的一項技術[7]。按照注入的方式,可將故障注入分為3 種[8]:基于硬件的故障注入、基于軟件的故障注入和基于仿真的故障注入[14]。基于仿真的故障注入是在設計階段對系統的可靠性進行評價的一種有用的實驗方法,在設計階段盡早地發現錯誤并進行修正。并且,與其他技術相比,基于仿真技術所建模的組件具有較高的可觀察性和可控制性。
本文介紹的面向民用機載電子硬件SEU 效應仿真測試系統構成如圖1 所示,由測試計算機、基于FPGA 的測試仿真板組成。測試計算機為USB 接口的PC 機,通過JTAG 接口對FPGA 器件加載冗余電路、進行配置或者編程及調試,并完成測試信號設定。測試仿真板是整個系統的核心組成部分,由一片Altera Cyclone? Ⅳ4CE115 FPGA 器件實現。

圖1 民用機載電子硬件SEU 效應仿真測試系統構成
在測試過程中,首先,使用仿真器的內建命令進行了錯誤注入,運用TB 文件對輸入數據進行控制,以模擬真實情況下的SEU 效應引起的翻轉故障。仿真測試過程中,由測試計算機控制測試單元是否正常工作,當收到故障注入命令后,系統會啟動模擬故障模式,在觸發時刻同時,故障注入數據輸入到系統接收端。測試單元接收故障注入數據,并進行容錯處理,最終判別單元將容錯后輸出數據以參照單元為標準進行單粒子翻轉失效檢測,并輸出判斷結果。記錄測試過程中共注入的位翻轉次數Ns,共檢測到的失效次數為Nf,則被檢測系統的失效概率為τ=Nf/Ns[13],以該失效概率τ 來評估該被檢測系統對單粒子翻轉效應的防護能力。
TMR(Triple Modular Redundancy)是一種常用的單粒子翻轉故障容錯結構[15],該設計原理是將電路復制成完全相同的3 份,同時運行這3 部分電路,并且將結果輸出到一個多數表決器中,表決器會將多數的結果作為正確結果輸出。基于該種原理,結合參照單元比較,即可實現對單粒子翻轉造成系統失效的檢測。
具體電路設計如圖3 所示。3 個相同的輸入分別設為Input1,Input2,Input3,作為3 個D 觸發器的輸入端,3 個D 觸發器的時鐘由CLK 時鐘控制,CLK觸發時,分別輸出Output1,Output2,Output3。將Output1,Output2,Output3 作為多數表決器的輸入端,經過多數表決,輸出最終的正確結果。具體操作為Output1,Output2,Output3 兩兩作為3 個與門的輸入,兩兩相與后的記過輸出到一個或門,最終作為多數表決器的輸出。

圖2 SEU 效應仿真測試過程

圖3 SEU 故障TMR 容錯電路
作為常用的數字電路容錯技術,TMR 可以屏蔽大部分的SEU 效應引起的翻轉故障,但是前提是任意兩個模塊不會在同一時間發生故障。即便是不考慮TMR 所需附加資源多、功耗大、占用空間大等缺陷,從容錯失效率來講,TMR 技術對于同一時刻兩路輸入同時發生翻轉故障的情況下,表現得無能為力。如果輸入模塊某兩輸入發生單粒子翻轉效應,即便迅速恢復正確輸入,仍然會造成誤判。
本文的SEU 效應仿真測試研究是基于FPGA設計的一種基于多時鐘沿的SEU 故障TMR 檢錯電路,在每一個冗余模塊結合時鐘沿延遲觸發,繼而通過多數表決器表決,并將輸出結果與參照單元輸出結果相比較,判斷是否有單粒子翻轉所引起的失效發生。對于單粒子翻轉測試來說,該種設計在同時多輸入發生可恢復的翻轉故障時,具有較好的判斷力。對于觸發器來說,只有在時鐘觸發的時候,才對輸入信號進行采樣,其輸出數據才作為一個冗余數據,而其他任何時刻的輸入都不被考慮。
檢錯電路具體設計如圖4 所示,數據不僅輸入到3 個冗余模塊,并同時輸入到參照單元。每個冗余模塊的時鐘觸發都是不同時的,本文將3 個時鐘分別設計為具有不同占空比的時鐘,也就決定了采樣到的輸入不是同一時刻的輸入,避免了一些多模塊同時發生故障導致失效的可能性。參照單元為判斷依據,判斷單粒子翻轉是否造成失效,輸出最終的檢錯結果。基于該模式對單粒子翻轉是否引起失效進行檢測,即便多于一個輸入同時發生翻轉故障,只要在模塊各自時鐘沿觸發時刻,輸入無故障發生,即不會影響系統的檢測結果。該種思路彌補了TMR設計的一些不足,提高了電路的檢錯能力,對一些產生邏輯翻轉并及時恢復的翻轉故障有很好的屏蔽效果。

圖4 基于多時鐘沿的SEU 故障TMR 檢錯電路結構
本文利用模擬的內建命令進行了單粒子翻轉故障的注入,以模擬真實情況下的單粒子翻轉故障。考慮TMR 系統冗余模塊發生單粒子故障的可能性,對冗余系統中的一個或多個模塊進行故障注入,使冗余模塊中輸出信號發生翻轉,模擬單粒子效應引起的翻轉故障。
實驗設計針對一個檢測周期,以CLK3 的1/4周期為最小單位,設0 為正確數據,1 為發生翻轉故障。每個模塊故障注入有Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ5 種情況(圖5),分別代表故障在第0/4CLK3、1/4CLK3、2/4CLK3、3/4CLK3、4/4CLK3 時刻發生。圖6 所示為當三輸入系統中有2 個模塊在CLK3 上升沿時發生翻轉故障,單粒子翻轉故障TMR 容錯電路和基于多時鐘沿的單粒子翻轉故障TMR 容錯電路的輸出波形。從圖中可以看出,當有2 個冗余模塊同時發生翻轉故障的時候,傳統的TMR 容錯電路就無法輸出正確的結果。引入了多時鐘沿觸發之后,由于一個模塊的翻轉故障發生在其觸發之后,故其仍能輸出正確的結果。

表1 部分故障注入2 種電路的容錯結果

圖5 模擬SEU 效應引起的故障注入

圖6 SEU 故障注入
考慮對于三輸入系統故障發生的可能性,三通道共注入故障125 種,觀察一個周期內容錯電路輸出結果。檢錯電路以參照單元輸出為依據,判斷SEU 故障是否引起系統失效,從而實現SEU 故障測試。利用本文所述的SEU 故障仿真測試方法,對兩種容錯電路進行故障注入,并進行SEU 故障測試,判斷測試單元在遭受SEU 故障后是否產生失效。表1 列出了部分故障注入2 種電路的容錯結果,紅色虛線框內表示失效的產生。統計位翻轉次數Ns和檢測到的失效次數Nf,計算測試單元的失效率。從表2 可以看出,基于多時鐘沿的SEU 故障TMR檢錯電路的失效率明顯低于SEU 故障TMR 檢錯電路,檢錯電路能夠實現對SEU 效應所引起的翻轉故障的仿真測試,得出測試單元的SEU 故障失效率,用以評估測試單元對SEU 效應的防護能力。

表2 基于多時鐘沿的SEU 故障TMR 檢錯電路與SEU 故障TMR 檢錯電路的失效率
本文針對民用機載電子硬件易于在飛行中遭受輻射而發生單粒子翻轉故障,研究了一種基于多時鐘沿的冗余檢錯電路用于單粒子翻轉故障仿真測試。該仿真檢錯電路通過以參照單元作為判別依據,可以檢測被測單元是否輸出正確的容錯結果,計算被測單元的SEU 故障失效率,來評估被測單元的抗SEU 效應的能力。通過該檢錯電路仿真結果表明,引入的多時鐘沿電路,可以降低冗余系統的故障失效率,改進了冗余系統的容錯能力,驗證了該檢錯電路用于SEU 效應仿真測試的可行性。
[1] Eric Johnson,Michael Wirthlin,Michael Caffrey. Single-Event Upset Simulation on an FPGA[C]//Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms(ERSA),CSREA Press,June 2002,68-73.
[2] Azambuja J R,Sousa F,Rosa L,et al.Evaluating Large Grain TMR and Selective Partial Reconfiguration for Soft Error Mitigation in SRAM-Based FPGAs[C]//On-Line Testing Symposium,2009.IOLTS 2009.15th IEEE International,24-26 June 2009,101-106.
[3] 李飛,安海華.0.18 μm NMOS 的重離子單粒子瞬態脈沖的仿真模擬[J].電子器件,2011,34(5):558-561.
[4] Rollins N,Wirthlin M,Caffrey M,et al.Evaluating TMR Techniques in the Presence of Single Event Upsets[C]//Proceedings of the 6th Annual International Conference on Military and Aerospace Programmable Logic Devices(MAPLD). Washington,D. C.:NASA Office of Logic Design,AIAA,September 2003:63.
[5] Carl Carmichael.Triple Module Redundancy Design Techniques for Virtex FPGAs[R].Technical report,Xilinx Corporation,November 1,2001.XAPP197(v1.0).
[6] José Rodrigo Azambuja,Fernando Sousa,Lucas Rosa,et al.Evaluating Large Grain TMR and Selective Partial Reconfiguration for Soft Error Mitigation in SRAM-Based FPGAs[C]//Proceedings of IEEE International On-Line Testing Symposium.Sesimbra-Lisbon,Portugal:IEEE Press,2009,101-106.
[7] Gracia J,Baraza J C,Gil D,et al. Comparison and Application of Different VHDL-Based Fault Injection Techniques [C]//Proceedings of IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems,2001,233-241.
[8] 任向隆,馬捷中,曾憲煉. 基于VHDL 的故障注入技術研究[J].測控技術,2009,11,73-76.
[9] Air Traffic Organization.Handbook for the Selection and Evaluation of Microprocessors for Airborne Systems,DOT/FAA/AR-11/2.NextGen &Operations Planning Office of Research and Technology Development,Washington,DC 20591,February 2011.
[10] Paul E Dodd,Lloyd W Massengill. Basic Mechanisms and Modeling of Single-Event Upset in Digital Microelectronics[J].IEEE Transactions on Nuclear Science,2003,50(3):583-599.
[11] 王忠明,姚志斌,郭紅霞,等.SRAM 型FPGA 的靜態與動態單粒子效應試驗[J].原子能科學技術,2011,45(12):1506-1510.
[12] Kastensmidt F L,Neuberger G,Hentschke R F,et al. Designing Fault-Tolerant Techniques for SRAM-Based FPGAs[J].IEEE Design and Test of Computers,2004,21(6):552-562.
[13] 周永彬,楊俊.SRAM 型FPGA 單粒子翻轉失效率自動測試系統設計與實現[J].計算機測量與控制,2010,18(10):2272-2274.
[14] 聶永峰,于東英,曾澤嶸,等.一種改進的對抗軟錯誤電路結構設計[J].現代電子技術,2011,34(24):184-187.
[15] 張超,趙偉,劉崢.基于FPGA 的三模冗余容錯技術研究[J].現代電子技術,2011,34(5):167-171.