王忠明,姚志斌,郭紅霞,呂 敏
(1.清華大學 工程物理系,北京 100084;2.西北核技術研究所,陜西 西安 710024)
靜態隨機存取存儲器(SRAM)型現場可編程門陣列(FPGA)具有很好的設計靈活性,是很多航天電子設備的備選方案,但大量文獻和實際應用表明這類器件對空間中的單粒子效應非常敏感。Xilinx公司對典型的SRAM型FPGA器件進行了單粒子效應試驗,給出了器件的單粒子特性[1-3],且對由單粒子引起的系統失效機理進行了分析[4],提出了針對這種效應的系統級加固方法[5-6]。
FPGA的單粒子效應主要是指發生在配置存儲器和塊存儲器中的單粒子翻轉。另外,觸發器、全局控制寄存器和半閉鎖結構中也有可能發生單粒子翻轉,但發生的概率較前兩者低幾個數量級[7]。配置存儲器中的數據控制著電路中各可配置邏輯模塊的功能和連接關系,一旦發生單粒子翻轉就有可能破壞電路結構,導致功能持續出錯,直到器件被重新配置才能恢復。因此,這種翻轉被認為是FPGA中最突出的單粒子效應。
對于FPGA,存儲器的翻轉截面只能用于描述器件本身對單粒子效應的敏感程度,若用來預估系統在空間軌道上的失效率則會導致結果過于保守。文獻[8]將傳統的翻轉截面稱為靜態翻轉截面,且提出用于描述系統功能失效頻率的動態翻轉截面的概念。文獻[9]指出,靜態截面與動態截面間只相差1個常數。FPGA的單粒子效應測試應根據試驗目的不同決定采用靜態測試還是動態測試。本文提出的FPGA輻射效應測試系統同時具備這兩種測試能力[10-11]。
靜態測試主要是指對FPGA內部存儲器翻轉情況的監測,而動態測試是指對系統功能輸出的監測。測試系統主體框架由上位計算機、測試板及2塊輻照板組成。上位計算機與測試板間用50m的RS422協議進行通信,而測試板與2塊輻照板則用60芯扁平電纜進行連接。
靜態測試是對FPGA的配置數據進行回讀驗證的過程[12]。輻照前,上位計算機將FPGA集成開發環境生成的配置文件、回讀文件和掩碼文件通過串口發送給下位DSP,再轉存到Flash中。配置器件時,下位DSP將Flash中的配置文件通過SelectMAP接口寫入FPGA中,實現程序的下載。在輻照狀態時,下位DSP從回讀文件中找到回讀命令,按一定時序從SelectMAP接口中回讀FPGA內部存儲器的內容,在掩碼文件的幫助下,比較原始配置數據與回讀數據的異同,從而實現對單粒子翻轉的監測。
動態測試是指對系統功能的監測。本文采用1片與待測器件完全相同的參照器件,令其與待測器件同步運行,將二者的輸出進行比較,一旦待測器件受到單粒子效應的干擾導致二者輸出不同,則記為1次功能出錯。這種錯誤一般會一直持續下去,因此,必須在出錯后對器件進行自動重新配置,以保證下一次測試的有效性。
輻照時,下位DSP控制頻率發生器,生成測試向量的輸出時鐘、2片FPGA的同步時鐘及輸出向量的比較時鐘。當2片FPGA輸出向量不同時,比較器會輸出高電平,使下位DSP產生中斷,并記錄及回傳此刻輸入輸出向量的值。
輻照試驗在北京串列加速器(HI-13)及蘭州重離子試驗裝置(HIREF)上進行。試驗中的待測器件為Xilinx的 Virtex-XCV300,該器件采用0.22μm商用體硅工藝,規模約30萬門,配置存儲器約含1.7M位。靜態測試中采用的離子LET范圍為1.73~76MeV·cm2·mg-1(表1)。
在動態試驗中設計了3個不同的測試電路。測試電路1是一簡單的16位鎖存器,用于系統調試和驗證;測試電路2是1 024×16位的移位寄存器鏈,用于測試觸發器翻轉;測試電路3的資源利用較均衡,包含2個線性反饋移位寄存器、2個乘法累加器和2個FIFO,將相同模塊的輸出進行比較,結果進入一16位計數器。3個測試電路的資源占用情況列于表2。由于設計的資源占用率不高,系統功能出錯的頻率相對配置位翻轉較低。受束流時間限制,動態試驗僅在少數離子下進行。為避免系統功能出錯過快,采用較低的注量率(100~1 000cm-2·s-1)進行試驗,每次功能出錯后自動對系統進行重新配置,試驗流程如圖1所示。

表1 歷次FPGA單粒子效應試驗情況Table 1 FPGA single-event effect experiment conditions

表2 3個測試設計電路的資源占用情況Table 2 Resource utilization of three benchmark circuit designs
單粒子試驗的結果常用翻轉截面來表示,它等于單粒子事件數與單位面積上入射的粒子注量之比,即:

其中:σ為翻轉截面;N為單粒子事件數;F為單位面積上入射的粒子注量。

圖1 FPGA單粒子動態測試的流程圖Fig.1 Dynamic test flow of FPGA single-event experiment
在靜態試驗時,事件數等于內部存儲器發生翻轉的次數,而動態試驗時,事件數為系統功能出錯的次數。由此可得到靜態翻轉截面和動態翻轉截面2個參數。在處理試驗數據誤差時,僅考慮核事件的隨機漲落帶來的不確定性,由正態分布假設可知N個計數的標準偏差為N1/2,截面數據為2個計數之商,利用誤差合成公式可得到相應的標準偏差[13]:

在處理重離子單粒子試驗數據時,往往對多個LET的翻轉截面進行Weibull曲線擬合,以得到發生翻轉的LET閾值、飽和截面等重要參數,擬合結果也可作為空間軌道翻轉率預估程序的輸入參數。Weibull曲線的函數形式為:

其中:σ(LET)為翻轉截面;σsat為飽和截面;L0為LET閾值;W為尺度參數;s為形狀參數。
在利用最小二乘法擬合的過程中,用前面求得的翻轉截面的誤差作為權重來平衡每個LET點對擬合結果的貢獻。根據文獻[14]中推薦的基本原則,令尺度參數W不超過100,將形狀參數的初值設為1,飽和截面的初值設為最大LET處測得的截面,LET閾值設為試驗中的最小LET。
擬合出的靜態翻轉截面曲線如圖2所示,飽和截面為9.60×10-8cm2,LET 閾值為1.72MeV·cm2·mg-1。上述結果與文獻[13]中報道的Virtex的抗輻射加固版本XQVR300的試驗結果差別不大。這說明采用Xilinx的抗輻射系列芯片不能徹底解決單粒子翻轉的問題,對FPGA的加固還應在系統層面進行。


對3個測試電路的動態翻轉截面進行了處理,其中,對資源占用較均衡的B03測試電路在多個LET下進行了動態試驗(圖3)。受束流時間限制,其他2個測試電路只在1個LET下進行了試驗。從圖3可看出,動態截面與靜態截面之比基本是一常數(即表3中的比例因子),此常數的物理意義是指配置存儲器中隨機發生1次翻轉可能導致系統功能失效的概率。由表3可知,對不同的配置電路,比例因子差別較大,一般情況下,資源占用率越高的電路動態截面越大。但從表2和3的對比可看出,比例因子不僅較資源占用率小得多,且二者也不是簡單的線性關系。對系統設計而言,動態測試結果可直接用于系統功能失效率的預估,而靜態測試結果主要反映器件本身的抗單粒子能力。

表3 用175MeV的Cl離子測得的3個配置電路的動態截面及其與靜態截面之比Table 3 Dynamic and static cross sections of three benchmark designs using 175MeV Cl ion
應用重離子加速器對Xilinx的Virtex系列FPGA進行了靜態和動態單粒子效應試驗。靜態試驗結果表明,該器件發生翻轉的LET閾值很低,極易受到單粒子效應的干擾。對3個配置電路的動態功能測試結果表明,系統功能失效的頻率與設計資源占用率直接相關,但二者不是簡單的線性關系,不能直接用資源占用情況推算系統的空間失效率。
[1]FULLER E,CAFFREY M,BLAIN P,et al.Radiation test results of the Virtex FPGA and ZBT SRAM for space based reconfigurable computing[C]∥ Proceedings of Military and Aerospace Applications of Programmable Logic Devices(MAPLD).Laurel MD:NASA NEPP,1999.
[2]WIRTHLIN M,JOHNSON E,ROLLINS N,et al.The reliability of FPGA circuit designs in the presence of radiation induced configuration upsets[C]∥Proceedings of the 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.[S.l.]:[s.n.],2003.
[3]CAFFREY M,GRAHAM P,JOHNSON E,et al.Single-event upsets in SRAM FPGAs[C]∥Proceedings of Military and Aerospace Applications of Programmable Logic Devices(MAPLD).Laurel MD:NASA NEPP,2002.
[4]GRAHAM P,CAFFREY M,ZIMMERMAN J,et al.Consequences and categories of SRAM FPGA configuration SEUs[C]∥Proceedings of Military and Aerospace Programmable Logic Devices International Conference(MAPLD).Washington D.C.:NASA NEPP,2003.
[5]CARMICHAEL C.Triple module redundancy design techniques for virtex FPGAs[R].San Jose,CA:Xilinx,2000.
[6]CARMICHAEL C.Correcting single-event upsets through virtex partial configuration[R].San Jose,CA:Xilinx,2000.
[7]FULLER E,CAFFREY M,SALAZAR A,et al.Radiation testing update,SEU mitigation,and availability analysis of the virtex FPGA for space reconfigurable computing[R].San Jose,CA:Xilinx,2000.
[8]MORGAN K,CAFFREY M,GRAHAM H,et al.SEU-induced persistent error propagation in FPGAs[J].IEEE Transactions on Nuclear Science,2005,52(6):2 438-2 445.
[9]VIOLANTE M,STERPONE L,CESCHIA M,et al.Simulation-based analysis of SEU effects in SRAM-based FPGAs[J].IEEE Transactions on Nuclear Science,2004,51(6):3 354-3 359.
[10]姚志斌,張鳳祁,何寶平,等.靜態隨機訪問存儲器型現場可編程門陣列輻照效應測試系統研制[J].強激光與粒子束,2009,21(5):749-754.YAO Zhibin,ZHANG Fengqi,HE Baoping,et al.Development of the measurement system for radiation effect on SRAM-based FPGA[J].High Power Laser and Particle Beams,2009,21(5):749-754(in Chinese).
[11]姚志斌,范如玉,郭紅霞,等.FPGA靜態單粒子截面的獲取與分類[J].強激光與粒子束,2011,23(3):812-816.YAO Zhibin,FAN Ruyu,GUO Hongxia,et al.Identification and classification of static singleevent upsets cross section of SRAM-based FPGAs[J].High Power Laser and Particle Beams,2011,23(3):812-816(in Chinese).
[12]Xilinx.Virtex FPGA series configuration and readback[R].San Jose,CA:Xilinx,2005.
[13]ALDERIGHI M,CANDELORI A,CASINI F,et al.SEU sensitivity of virtex configuration logic[J].IEEE Transactions on Nuclear Science,2005,52(6):2 462-2 467.
[14]PERTERSEN E L.Single-event data analysis[J].IEEE Transactions on Nuclear Science,2004,55(6):2 819-2 841.