孫 野,陳暉照
(山東航天電子技術(shù)研究所 通信事業(yè)部,山東 煙臺264003)
由于靜態(tài)存儲器(Static Random Access Memory,SRAM)型現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)與反熔絲型FPGA相比具有可反復(fù)重新配置的優(yōu)點,所以SRAM型FPGA在航天領(lǐng)域受到廣泛關(guān)注。但SRAM[1]為輻射敏感器件,這嚴(yán)重威脅了衛(wèi)星安全可靠的運行。國內(nèi)外對航天故障的統(tǒng)計顯示:約有40%的故障源自太空輻射[2]。近10年來,國內(nèi)外一直重視SRAM FPGA輻射效應(yīng)和加固方法研究。本文研究了三模冗余(TMR)和 動態(tài)刷新(Scrubbing)兩種加固措施,并對采取措施的FPGA和未采取加固措施的FPGA進(jìn)行單粒子輻照實驗研究,成功驗證了TMR+Scrubbing加固措施的有效性,試驗結(jié)果顯示,TMR+Scrubbing加固措施可以提高SRAM型FPGA抗單粒子性能2倍以上。
FPGA內(nèi)部的RAM資源相對寄存器、查找表等資源較為豐富,而且都可以采用雙端口方式訪問,當(dāng)正常邏輯只操作一個端口時,可以采用圖1所示方式對RAM模塊進(jìn)行三模冗余處理,當(dāng)正常邏輯使用RAM模塊的A端口時,自刷新模塊使用B端口同時讀取3份RAM中的數(shù)據(jù),進(jìn)行讀取→比對→回寫的操作。如當(dāng)RAM模塊1中數(shù)據(jù)有錯誤時,自刷新模塊經(jīng)比對發(fā)現(xiàn)該模塊存在錯誤后,保存錯誤數(shù)據(jù)存在的地址,同時檢測正常邏輯在端口A的操作信號,當(dāng)發(fā)現(xiàn)正常邏輯沒有對數(shù)據(jù)錯誤存在的地址進(jìn)行寫操作時,立即通過端口B對RAM模塊1的數(shù)據(jù)錯誤地址寫入正確的數(shù)據(jù)。為保證自刷新模塊自身的可靠性,對自刷新模塊進(jìn)行模塊級三模冗余。
圖1 RAM三模冗余自刷新處理框圖
在一般通信系統(tǒng)中,借助查找表法實現(xiàn)載波NCO或者濾波器,因此正弦表、反正切函數(shù)表、濾波器參數(shù)等重要的運行參數(shù)一般存在于FPGA的內(nèi)部ROM中,由于ROM只是使用雙端口RAM資源的一個端口,因此可以通過另一端口實現(xiàn)三模冗余和自刷新,具備可恢復(fù)能力。3個RAM的三路信號(douta_tr0douta_tr1douta_tr2)輸出后經(jīng)過表決器比對,輸出一路信號(doutb),在正余弦表單元中,TMR單元信號處理如圖2所示[3]。
圖2 正余弦表TMR單元信號處理
三模冗余對資源的占用量是原始設(shè)計的3.2~3.5倍,因此不能對整個FPGA邏輯設(shè)計進(jìn)行三模冗余,只能選擇對關(guān)鍵模塊和所有模塊中長時間存在的關(guān)鍵變量進(jìn)行三模冗余。長時間存在的關(guān)鍵變量主要是指:主程序的大循環(huán)控制變量、主程序的有限狀態(tài)機控制變量、重要的全局標(biāo)志等等,這些變量關(guān)系到FPGA運行程序的總體進(jìn)程,而且存在的時間比較長,發(fā)生單粒子翻轉(zhuǎn)的概率比一些臨時局部變量大的多,影響也更加嚴(yán)重[4]。
在Scrubbing過程中對配置流數(shù)據(jù)進(jìn)行回讀、比對,當(dāng)發(fā)現(xiàn)配置數(shù)據(jù)有錯誤時,對存在錯誤的部分配置區(qū)進(jìn)行局部重配置,消除錯誤數(shù)據(jù)。進(jìn)行Scrubbing時,可以不中斷FPGA的正常工作,該措施在FPGA工作期間同步運行,以最快的速度檢測到配置區(qū)數(shù)據(jù)錯誤并糾錯,可以有效地防止配置區(qū)數(shù)據(jù)累積,將錯誤影響的時間間隔縮小到一個回讀、比對周期所需的處理時間。在這個過程中分3步:配置流回讀、比對、局部重配置。
回讀是通過JTAG接口從配置區(qū)中回讀出FPGA內(nèi)嵌邏輯的運行狀態(tài)量,據(jù)此判斷邏輯是否運行正常?;刈x過程可以讀出CLB、IOB的寄存器和FPGA的內(nèi)部存儲器的當(dāng)前狀態(tài),以及布線資源的配置情況等,然后通過回讀數(shù)據(jù)的校驗來檢驗當(dāng)前配置數(shù)據(jù)的正確性。
表1 XQRV3000配置存儲器動態(tài)回讀的時間特性
表1所列為XQRV3000動態(tài)回讀的時間特性。經(jīng)過實驗測試,JTAG接口最快的訪問速率約可達(dá)55 Mbit·s-1。這里以39.2 MHz作為回讀時鐘,根據(jù)表1中的參數(shù)可以計算得到:每幀數(shù)據(jù)的回讀時間約為150μs,整個器件的回讀時間約為270 ms。SRAM型FPGA配置區(qū)的部分?jǐn)?shù)據(jù)反映了硬件結(jié)構(gòu)內(nèi)部的寄存器內(nèi)容,而FPGA內(nèi)嵌邏輯中又使用了硬件結(jié)構(gòu)中的寄存器,實際上配置區(qū)的部分?jǐn)?shù)據(jù)位充當(dāng)了內(nèi)嵌邏輯中變量的影子寄存器,可以從這些影子寄存器中探測FPGA內(nèi)嵌邏輯的工作狀態(tài)。
比對就是將標(biāo)準(zhǔn)數(shù)據(jù)和回讀數(shù)據(jù)逐位進(jìn)行比較,也就是直接比較校驗。這個過程需要兩個專用的存儲區(qū)域分別存儲屏蔽數(shù)據(jù)文件(design.msk)和回讀后應(yīng)該得到的標(biāo)準(zhǔn)數(shù)據(jù)(design.rbb)。這兩個文件可以在生成配置數(shù)據(jù)(design.bit)時一并生成。由于某些臨時性數(shù)據(jù),比如Distributed RAM,在FPGA工作的過程中會發(fā)生變化,因此比對時需要將此部分內(nèi)容屏蔽掉[5]。即在直接比較校驗過程中,需要比較的是校驗碼是否相等,如果不相等則說明回讀的數(shù)據(jù)出現(xiàn)翻轉(zhuǎn)錯誤?;刈x數(shù)據(jù)的直接比較校驗流程如圖3所示。
圖3 配置存儲器回讀數(shù)據(jù)的直接比較校驗
局部動態(tài)重構(gòu)是指在不中斷FPGA其他功能模塊正常時序條件下,實現(xiàn)的故障區(qū)域的局部重配置。在FPGA發(fā)生單粒子輻射效應(yīng)故障時,HRU通過對FPGA狀態(tài)的監(jiān)控、配置存儲器的回讀校驗等措施,可以將故障定位于功能模塊對應(yīng)的布線配置區(qū)域。
在樣品FPGA和配置數(shù)據(jù)存儲PROM器件間加入一塊Actel反熔絲型FPGA,由該Actel FPGA充當(dāng)樣品FPGA的配置控制器,負(fù)責(zé)對樣品FPGA進(jìn)行動態(tài)刷新。
試驗采用輻照中測試,輻照失效判據(jù)為功能失效。首先為了驗證TMR+Scrubbing加固方法的有效性,采用相同注量率的B粒子分別照射無加固措施的樣品和采用TMR+Scrubbing加固的樣品,在試驗過程中觀測樣品功能是否失效[6]。
表2 平均中斷粒子數(shù)與加固模式關(guān)系
根據(jù)實驗數(shù)據(jù),獲得中斷粒子總數(shù)與第I次翻轉(zhuǎn)關(guān)系曲線如圖4所示。
圖4 失效粒子總數(shù)與第N次翻轉(zhuǎn)關(guān)系曲線
注量率對比實驗過程中,樣品功能失效時立即停止輻照,待測試系統(tǒng)重新開機,實驗樣本進(jìn)入正常工作狀態(tài)之后繼續(xù)輻照,失效粒子數(shù)累積計量。
通過B粒子相同注量率(60 Ions/cm2·s)下不同檢測模式的對比實驗可以得出結(jié)論,TMR+scrubing加固方式可以將SRAM型FPGA抗輻射性能提高2倍以上。實驗成功驗證了TMR+scrubing加固方式可以提高SRAM型FPGA抗輻射性能。為TMR+scrubing加固研究提供了數(shù)據(jù)依據(jù)。需要注意在實際工程實現(xiàn)中,并非所有功能都可以刷新,也有一些功能由于FPGA資源有限的原因,不能三模冗余,這些資源有可能會成為TMR+scrubing FPGA抗輻射性能的短板,使用時需謹(jǐn)慎。
[1] 韓鄭生.抗輻射集成電路概論[M].北京:清華大學(xué)出版社,2011.
[2]PHILIPPE A,GREG A.Assessing and mitigating radiation effects in xilinx FPGA[M].Pasedena,California:Propulsion Laboratory California Institute of Technology,2008.
[3]REED R.Implementation of a BPSK transceiver for use with the university of kansas agile radio:bachelor of science[D].Kansas:University of Kansas,2004.
[4] 辛明瑞,時晨,高德遠(yuǎn),等.面向空間應(yīng)用的片上系統(tǒng)集成技術(shù)研究[J].微電子學(xué)與計算機,2006,23(6):194-197.
[5] 段青亞,黃士坦,辛明瑞.空間單粒子故障容錯設(shè)計的驗證技術(shù)研究[J].微電子學(xué)與計算機,2007,24(11):38-41.
[6] 刑克飛,張傳勝,王京,等.數(shù)字信號處理器抗輻射設(shè)計技術(shù)研究[J].應(yīng)用基礎(chǔ)與工程科學(xué)學(xué)報,2006,14(4):572,578.