王忠明,姚志斌,郭紅霞,呂 敏
(1.清華大學(xué) 工程物理系,北京 100084;2.西北核技術(shù)研究所,陜西 西安 710024)
靜態(tài)隨機(jī)存取存儲器(SRAM)型現(xiàn)場可編程門陣列(FPGA)具有很好的設(shè)計靈活性,是很多航天電子設(shè)備的備選方案,但大量文獻(xiàn)和實際應(yīng)用表明這類器件對空間中的單粒子效應(yīng)非常敏感。Xilinx公司對典型的SRAM型FPGA器件進(jìn)行了單粒子效應(yīng)試驗,給出了器件的單粒子特性[1-3],且對由單粒子引起的系統(tǒng)失效機(jī)理進(jìn)行了分析[4],提出了針對這種效應(yīng)的系統(tǒng)級加固方法[5-6]。
FPGA的單粒子效應(yīng)主要是指發(fā)生在配置存儲器和塊存儲器中的單粒子翻轉(zhuǎn)。另外,觸發(fā)器、全局控制寄存器和半閉鎖結(jié)構(gòu)中也有可能發(fā)生單粒子翻轉(zhuǎn),但發(fā)生的概率較前兩者低幾個數(shù)量級[7]。配置存儲器中的數(shù)據(jù)控制著電路中各可配置邏輯模塊的功能和連接關(guān)系,一旦發(fā)生單粒子翻轉(zhuǎn)就有可能破壞電路結(jié)構(gòu),導(dǎo)致功能持續(xù)出錯,直到器件被重新配置才能恢復(fù)。因此,這種翻轉(zhuǎn)被認(rèn)為是FPGA中最突出的單粒子效應(yīng)。
對于FPGA,存儲器的翻轉(zhuǎn)截面只能用于描述器件本身對單粒子效應(yīng)的敏感程度,若用來預(yù)估系統(tǒng)在空間軌道上的失效率則會導(dǎo)致結(jié)果過于保守。文獻(xiàn)[8]將傳統(tǒng)的翻轉(zhuǎn)截面稱為靜態(tài)翻轉(zhuǎn)截面,且提出用于描述系統(tǒng)功能失效頻率的動態(tài)翻轉(zhuǎn)截面的概念。文獻(xiàn)[9]指出,靜態(tài)截面與動態(tài)截面間只相差1個常數(shù)。FPGA的單粒子效應(yīng)測試應(yīng)根據(jù)試驗?zāi)康牟煌瑳Q定采用靜態(tài)測試還是動態(tài)測試。本文提出的FPGA輻射效應(yīng)測試系統(tǒng)同時具備這兩種測試能力[10-11]。
靜態(tài)測試主要是指對FPGA內(nèi)部存儲器翻轉(zhuǎn)情況的監(jiān)測,而動態(tài)測試是指對系統(tǒng)功能輸出的監(jiān)測。測試系統(tǒng)主體框架由上位計算機(jī)、測試板及2塊輻照板組成。上位計算機(jī)與測試板間用50m的RS422協(xié)議進(jìn)行通信,而測試板與2塊輻照板則用60芯扁平電纜進(jìn)行連接。
靜態(tài)測試是對FPGA的配置數(shù)據(jù)進(jìn)行回讀驗證的過程[12]。輻照前,上位計算機(jī)將FPGA集成開發(fā)環(huán)境生成的配置文件、回讀文件和掩碼文件通過串口發(fā)送給下位DSP,再轉(zhuǎn)存到Flash中。配置器件時,下位DSP將Flash中的配置文件通過SelectMAP接口寫入FPGA中,實現(xiàn)程序的下載。在輻照狀態(tài)時,下位DSP從回讀文件中找到回讀命令,按一定時序從SelectMAP接口中回讀FPGA內(nèi)部存儲器的內(nèi)容,在掩碼文件的幫助下,比較原始配置數(shù)據(jù)與回讀數(shù)據(jù)的異同,從而實現(xiàn)對單粒子翻轉(zhuǎn)的監(jiān)測。
動態(tài)測試是指對系統(tǒng)功能的監(jiān)測。本文采用1片與待測器件完全相同的參照器件,令其與待測器件同步運行,將二者的輸出進(jìn)行比較,一旦待測器件受到單粒子效應(yīng)的干擾導(dǎo)致二者輸出不同,則記為1次功能出錯。這種錯誤一般會一直持續(xù)下去,因此,必須在出錯后對器件進(jìn)行自動重新配置,以保證下一次測試的有效性。
輻照時,下位DSP控制頻率發(fā)生器,生成測試向量的輸出時鐘、2片F(xiàn)PGA的同步時鐘及輸出向量的比較時鐘。當(dāng)2片F(xiàn)PGA輸出向量不同時,比較器會輸出高電平,使下位DSP產(chǎn)生中斷,并記錄及回傳此刻輸入輸出向量的值。
輻照試驗在北京串列加速器(HI-13)及蘭州重離子試驗裝置(HIREF)上進(jìn)行。試驗中的待測器件為Xilinx的 Virtex-XCV300,該器件采用0.22μm商用體硅工藝,規(guī)模約30萬門,配置存儲器約含1.7M位。靜態(tài)測試中采用的離子LET范圍為1.73~76MeV·cm2·mg-1(表1)。
在動態(tài)試驗中設(shè)計了3個不同的測試電路。測試電路1是一簡單的16位鎖存器,用于系統(tǒng)調(diào)試和驗證;測試電路2是1 024×16位的移位寄存器鏈,用于測試觸發(fā)器翻轉(zhuǎn);測試電路3的資源利用較均衡,包含2個線性反饋移位寄存器、2個乘法累加器和2個FIFO,將相同模塊的輸出進(jìn)行比較,結(jié)果進(jìn)入一16位計數(shù)器。3個測試電路的資源占用情況列于表2。由于設(shè)計的資源占用率不高,系統(tǒng)功能出錯的頻率相對配置位翻轉(zhuǎn)較低。受束流時間限制,動態(tài)試驗僅在少數(shù)離子下進(jìn)行。為避免系統(tǒng)功能出錯過快,采用較低的注量率(100~1 000cm-2·s-1)進(jìn)行試驗,每次功能出錯后自動對系統(tǒng)進(jìn)行重新配置,試驗流程如圖1所示。
表1 歷次FPGA單粒子效應(yīng)試驗情況Table 1 FPGA single-event effect experiment conditions
表2 3個測試設(shè)計電路的資源占用情況Table 2 Resource utilization of three benchmark circuit designs
單粒子試驗的結(jié)果常用翻轉(zhuǎn)截面來表示,它等于單粒子事件數(shù)與單位面積上入射的粒子注量之比,即:
其中:σ為翻轉(zhuǎn)截面;N為單粒子事件數(shù);F為單位面積上入射的粒子注量。
圖1 FPGA單粒子動態(tài)測試的流程圖Fig.1 Dynamic test flow of FPGA single-event experiment
在靜態(tài)試驗時,事件數(shù)等于內(nèi)部存儲器發(fā)生翻轉(zhuǎn)的次數(shù),而動態(tài)試驗時,事件數(shù)為系統(tǒng)功能出錯的次數(shù)。由此可得到靜態(tài)翻轉(zhuǎn)截面和動態(tài)翻轉(zhuǎn)截面2個參數(shù)。在處理試驗數(shù)據(jù)誤差時,僅考慮核事件的隨機(jī)漲落帶來的不確定性,由正態(tài)分布假設(shè)可知N個計數(shù)的標(biāo)準(zhǔn)偏差為N1/2,截面數(shù)據(jù)為2個計數(shù)之商,利用誤差合成公式可得到相應(yīng)的標(biāo)準(zhǔn)偏差[13]:
在處理重離子單粒子試驗數(shù)據(jù)時,往往對多個LET的翻轉(zhuǎn)截面進(jìn)行Weibull曲線擬合,以得到發(fā)生翻轉(zhuǎn)的LET閾值、飽和截面等重要參數(shù),擬合結(jié)果也可作為空間軌道翻轉(zhuǎn)率預(yù)估程序的輸入?yún)?shù)。Weibull曲線的函數(shù)形式為:
其中:σ(LET)為翻轉(zhuǎn)截面;σsat為飽和截面;L0為LET閾值;W為尺度參數(shù);s為形狀參數(shù)。
在利用最小二乘法擬合的過程中,用前面求得的翻轉(zhuǎn)截面的誤差作為權(quán)重來平衡每個LET點對擬合結(jié)果的貢獻(xiàn)。根據(jù)文獻(xiàn)[14]中推薦的基本原則,令尺度參數(shù)W不超過100,將形狀參數(shù)的初值設(shè)為1,飽和截面的初值設(shè)為最大LET處測得的截面,LET閾值設(shè)為試驗中的最小LET。
擬合出的靜態(tài)翻轉(zhuǎn)截面曲線如圖2所示,飽和截面為9.60×10-8cm2,LET 閾值為1.72MeV·cm2·mg-1。上述結(jié)果與文獻(xiàn)[13]中報道的Virtex的抗輻射加固版本XQVR300的試驗結(jié)果差別不大。這說明采用Xilinx的抗輻射系列芯片不能徹底解決單粒子翻轉(zhuǎn)的問題,對FPGA的加固還應(yīng)在系統(tǒng)層面進(jìn)行。
對3個測試電路的動態(tài)翻轉(zhuǎn)截面進(jìn)行了處理,其中,對資源占用較均衡的B03測試電路在多個LET下進(jìn)行了動態(tài)試驗(圖3)。受束流時間限制,其他2個測試電路只在1個LET下進(jìn)行了試驗。從圖3可看出,動態(tài)截面與靜態(tài)截面之比基本是一常數(shù)(即表3中的比例因子),此常數(shù)的物理意義是指配置存儲器中隨機(jī)發(fā)生1次翻轉(zhuǎn)可能導(dǎo)致系統(tǒng)功能失效的概率。由表3可知,對不同的配置電路,比例因子差別較大,一般情況下,資源占用率越高的電路動態(tài)截面越大。但從表2和3的對比可看出,比例因子不僅較資源占用率小得多,且二者也不是簡單的線性關(guān)系。對系統(tǒng)設(shè)計而言,動態(tài)測試結(jié)果可直接用于系統(tǒng)功能失效率的預(yù)估,而靜態(tài)測試結(jié)果主要反映器件本身的抗單粒子能力。
表3 用175MeV的Cl離子測得的3個配置電路的動態(tài)截面及其與靜態(tài)截面之比Table 3 Dynamic and static cross sections of three benchmark designs using 175MeV Cl ion
應(yīng)用重離子加速器對Xilinx的Virtex系列FPGA進(jìn)行了靜態(tài)和動態(tài)單粒子效應(yīng)試驗。靜態(tài)試驗結(jié)果表明,該器件發(fā)生翻轉(zhuǎn)的LET閾值很低,極易受到單粒子效應(yīng)的干擾。對3個配置電路的動態(tài)功能測試結(jié)果表明,系統(tǒng)功能失效的頻率與設(shè)計資源占用率直接相關(guān),但二者不是簡單的線性關(guān)系,不能直接用資源占用情況推算系統(tǒng)的空間失效率。
[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]姚志斌,張鳳祁,何寶平,等.靜態(tài)隨機(jī)訪問存儲器型現(xiàn)場可編程門陣列輻照效應(yīng)測試系統(tǒng)研制[J].強(qiáng)激光與粒子束,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靜態(tài)單粒子截面的獲取與分類[J].強(qiáng)激光與粒子束,2011,23(3):812-816.YAO Zhibin,F(xiàn)AN 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.