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