文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.015
中文引用格式: 馮興,王大鳴,張彥奎,等. 基于SRAM型FPGA的SEU敏感性研究[J].電子技術(shù)應(yīng)用,2016,42(5):53-56.
英文引用格式: Feng Xing,Wang Daming,Zhang Yankui,et al. SEU sensitivity research in SRAM-based FPGA[J].Application of Electronic Technique,2016,42(5):53-56.
0 引言
隨著星載信號處理平臺對于信號處理能力需求的不斷提升,宇航級芯片已越來越難以滿足需求,而商用芯片相對宇航級芯片擁有更強的處理能力和更多的處理資源。所以基于商用芯片構(gòu)建星載處理平臺的商用現(xiàn)成技術(shù)(Commercial Off-The-Shelf,COTS)成為當(dāng)前衛(wèi)星通信平臺設(shè)計領(lǐng)域的研究熱點。
由于商用芯片向著高密集度、低操作電壓的方向迅速發(fā)展,使得它們在空間輻射環(huán)境下的可靠性大大降低。其中軟故障是主要故障,它是由帶電粒子和PN結(jié)相互作用引起的一種暫態(tài)故障,可造成芯片嚴(yán)重的運行錯誤[1]。所以如何彌補商用芯片本身抗輻照能力的不足是需要解決的重要問題。
國內(nèi)外研究機構(gòu)對于星載信號處理平臺抗SEU方法目前主要分為兩類:一類是針對SEU的屏蔽,包括各種抗SEU加固結(jié)構(gòu)設(shè)計、高性能抗SEU的CMOS(Complementary Metal Oxide Semiconductor)工藝等[2];另一類是針對SEU的修復(fù),如動態(tài)可重構(gòu)技術(shù)、編碼糾正[3]等方法。另外,由于星載平臺中包含大量的諸如FIR(Finite Impulse Response)濾波和FFT(Fast Fourier Transform)的處理過程,故近年來針對各種濾波器和信號處理算法本身抗SEU的方法研究特別廣泛,如文獻[4]、文獻[5]分別實現(xiàn)FIR濾波器和FFT算法的容錯技術(shù)。
相對于上述研究思路,本文則重點關(guān)注芯片內(nèi)部各種不同硬件資源對于SEU事件的敏感性。以星載平臺上應(yīng)用廣泛的SRAM型FPGA為研究對象,通過模擬星載平臺和故障注入的實驗,根據(jù)各種資源在故障源注入后誘發(fā)系統(tǒng)出現(xiàn)功能紊亂的概率總結(jié)出各種資源對于SEU敏感性高低的結(jié)論。
1 SEU敏感性研究模型
為驗證SRAM型FPGA不同資源對于SEU存在不同的敏感性,需要模擬星載信號處理平臺SRAM型FPGA在外部空間遭遇SEU效應(yīng)的整個過程。即在地面上模擬采用SRAM型FPGA的星載信號處理平臺,模擬FPGA出現(xiàn)的SEU錯誤,以及將模擬的SEU錯誤注入到FPGA內(nèi)部不同資源中。據(jù)此提出SEU敏感性研究的模型,如圖1所示。
根據(jù)研究模型,首先可以采用基于商用芯片的星地聯(lián)合處理平臺來模擬星載平臺,其硬件環(huán)境如圖2所示。其中CPCI(Compact Peripheral Component Interconnect)總線用來模擬星地鏈路,星載處理板模擬星載信號處理平臺,處理板采用了多片SRAM型FPGA芯片作為實驗的測試芯片。
為調(diào)用FPGA內(nèi)部資源,采用兩種功能相同但實現(xiàn)方式不同的功能模塊,因此可以針對兩種模塊設(shè)計顆粒度不同的實驗A和實驗B來分別進行實驗?;诠δ苣K通過故障注入的方式生成模擬的SEU錯誤,在系統(tǒng)正常運行的情況下,將錯誤注入到平臺FPGA的功能模塊中,觀察注入前后的輸出狀態(tài),對比兩次實驗結(jié)果,得出SEU敏感性研究的結(jié)論。
2 SEU敏感性實驗設(shè)計
2.1 基于IP核的FFT敏感性實驗設(shè)計
通常星載平臺中擁有大量的FFT運算,而這些運算大都通過在FPGA中調(diào)用IP核來實現(xiàn)。因此以基于IP核的FFT來進行SEU敏感性實驗是合理的。SRAM型FPGA芯片由6個部分組成,其中Slice資源是可編程邏輯單元的基本邏輯單元,RAM資源是FPGA常用的硬核模塊,兩種資源都是FPGA內(nèi)部廣泛分布且應(yīng)用較多的資源。所以基于IP核的FFT敏感性實驗所針對的資源就是Slice和RAM。
Slice資源內(nèi)部主要的配置關(guān)系是邏輯關(guān)系,即“+”、“~”、“*”關(guān)系;RAM資源內(nèi)部主要的配置關(guān)系是數(shù)值關(guān)系,即0、1數(shù)值關(guān)系。所以針對這兩種資源的故障注入將分別圍繞這兩種配置關(guān)系進行修改。利用FPGA_Editor查看網(wǎng)表文件,并對其進行修改,生成差異比特文件,即模擬故障源。在FFT模塊正常運行后通過測試電腦經(jīng)模擬星地鏈路,反復(fù)將故障源注入到FFT模塊中,通過chipscope抓取結(jié)果,根據(jù)結(jié)果得出結(jié)論。
2.2 基于軟件實現(xiàn)的FFT敏感性實驗設(shè)計
為進一步驗證上述結(jié)論,在前述實驗的基礎(chǔ)上,設(shè)計了另一種顆粒度更高的實驗來加以證明。該實驗運用VHDL語言編程實現(xiàn)16點的FFT功能模塊,該模塊調(diào)用更多的FPGA資源,采用相同的星地聯(lián)合處理平臺,同樣針對Slice和RAM兩種資源進行故障注入實驗。
設(shè)16點數(shù)據(jù)為x(0)、x(1)…x(15)的16位的實數(shù)數(shù)據(jù),按時間抽取的基2 FFT算法原理可得該16點FFT的蝶形交織運算,如圖3所示,其結(jié)果即是X(0)~X(15)的16點FFT輸出。由圖可知,該FFT算法原理的核心是每一層的蝶形交織運算,因此整個16點FFT程序設(shè)計的關(guān)鍵是四層的蝶形交織運算。
設(shè)計程序分成五部分,即頂層的輸入輸出和4個蝶形交織層。最初輸入16點的16位實數(shù)數(shù)據(jù),然后通過每層的蝶形交織計算得到最終FFT的輸出。將結(jié)果與MATLAB仿真進行對比,驗證該FFT模塊是否編寫正確。確認(rèn)模塊功能正確后,同樣針對Slice和RAM進行修改;然后進行故障注入試驗,通過chipscope抓取結(jié)果;最后根據(jù)結(jié)果得出結(jié)論。
3 SEU敏感性實驗及分析
3.1 基于IP核的FFT敏感性實驗及分析
通過FPGA_Editor可得知IP核FFT模塊擁有1 227個Slice、17個RAM資源。將1 227個Slice資源中每連續(xù)的20個左右分為一組,共分為60組。對每一組資源中的每一個Slice都在數(shù)量為10處進行邏輯修改。將17個RAM資源劃為17組,對每一個RAM分別進行數(shù)量統(tǒng)一為10處的數(shù)值修改。最后得到60個Slice和17個RAM的差異比特文件,并對每一個差異比特文件進行100次的反復(fù)注入。
3.1.1 實驗結(jié)果
針對Slice資源的故障注入結(jié)果分為四個程度,分別如圖4~圖7所示。所有60組試驗中只有4組結(jié)果正確,其余組都出現(xiàn)各種錯誤。
針對RAM資源的故障注入結(jié)果分為三個程度,如圖4、圖8和圖9所示。所有試驗中只有4組出現(xiàn)錯誤。
3.1.2 實驗結(jié)論
(1)在Slice顆粒度約為20個一組、共60組的情況下,根據(jù)大量反復(fù)注入的試驗結(jié)果,利用統(tǒng)計數(shù)據(jù)可得針對Slice資源故障注入后模塊的故障率為:θ1=(56/60)×100%=93.3%;針對RAM資源故障注入后的故障率為:θ2=(4/7)×100%=23.5%。故在SEU效應(yīng)敏感度上,Slice強于RAM。
(2)試驗中每組故障注入的數(shù)量一致,但注入的位置各不相同。通過每組最后的結(jié)果對比可知,不同位置的故障注入將對模塊產(chǎn)生不同程度的影響。
(3)在77組故障注入試驗中,結(jié)果是邏輯修改引起的模塊故障率更高。故SEU造成邏輯上的故障對整個模塊影響要明顯強于數(shù)值故障造成的影響。
3.2 基于軟件實現(xiàn)的FFT敏感性實驗及分析
為了驗證該編寫的FFT模塊功能正確,首先在MATLAB中實現(xiàn)FFT算法,然后將其每層蝶形交織結(jié)果與VHDL程序的每一層蝶形交織結(jié)果進行對比。對比輸出結(jié)果如圖10所示,左側(cè)為MATLAB仿真結(jié)果,右側(cè)為VHDL程序運行結(jié)果。
由對比可知,VHDL程序運行結(jié)果與MATLAB仿真吻合,證明該程序具備正確的FFT功能,可作為本次實驗的模塊。通過FPGA_Editor可知,生成的FFT模塊擁有2 265個Slice、2個RAM資源。
與前述實驗類似,將該FFT中的2 265個Slice資源每連續(xù)的10個左右分為一組,共分為240組,對每個Slice進行數(shù)量為10處的故障注入;將2個RAM資源劃為2組,對每個RAM進行數(shù)量10處的數(shù)值修改。最后生成240個Slice和2個RAM差異比特文件,并對每個文件進行100次的反復(fù)注入。
3.2.1 實驗結(jié)果
針對Slice資源試驗,所有試驗中有32組結(jié)果正確,其余出現(xiàn)明顯錯誤,如圖11所示。針對RAM資源的試驗結(jié)果2組都正確,如圖12所示。
3.2.2 實驗結(jié)論
(1)本次實驗在前述實驗的基礎(chǔ)上將Slice測試顆粒度提高1倍,試驗組數(shù)提高4倍。由大量反復(fù)注入的試驗結(jié)果,利用統(tǒng)計數(shù)據(jù)可得針對Slice注入模塊故障率為:θ1=(208/240)×100%=86.7%;針對RAM資源故障注入后的FFT模塊故障率為:θ2=(0/2)×100%=0%。所以有θ1>θ2,故在SEU效應(yīng)敏感度上,Slice強于RAM。
(2)每組故障注入的數(shù)量相同,但位置不同。結(jié)果發(fā)現(xiàn)不同位置的注入對模塊產(chǎn)生不同程度的影響。
(3)該次實驗依然是針對Slice資源進行邏輯修改,針對RAM資源進行數(shù)值修改。從結(jié)果來看,依然是邏輯的錯誤對整個模塊的影響強于數(shù)值錯誤。
4 結(jié)論
本文重點分析芯片內(nèi)部不同硬件資源對于SEU效應(yīng)敏感性的問題。以SRAM型FPGA為研究對象,設(shè)計進行了兩種顆粒度不同的故障注入實驗。結(jié)果表明,在FPGA內(nèi)部資源中,Slice資源對于SEU效應(yīng)的敏感性很強,RAM相對較弱。SEU效應(yīng)引起的邏輯錯誤比數(shù)值錯誤更能誘發(fā)系統(tǒng)的功能紊亂。所以,可針對FPGA中占用Slice資源較多的模塊進行防護,重點針對邏輯錯誤進行防護。
參考文獻
[1] 裴志強,周剛.FPGA的空間容錯技術(shù)研究[J].微處理機,2011,32(6):18-20.
[2] 馮彥君,華更新,楊樺,等.國外星載容錯計算機技術(shù)及最新進展(綜述)[C].全國第十二屆空間及運動體控制技術(shù)學(xué)術(shù)會議論文集,2006.
[3] 徐斌,王貞松,陳冰冰,等.適用于空間環(huán)境下的FPGA容錯與重構(gòu)體系[J].計算機工程,2007,33(3):231-233.
[4] GAO Z,REVIRIEGO P,PAN W,et al.Efficient arithmetic residue-based SEU tolerant FIR filter design[J].Circuits & Systems II Express Briefs IEEE Transactions on,2013,60(8):497-501.
[5] REVIRIEGO P,BLEAKLEY C J,MAESTRO J A.A novel concurrent error detection technique for the fast Fourier transform[C].Signals and Systems Conference(ISSC 2012),IET Irish.IET,2012:1-5.
[6] 邢克飛.星載信號處理平臺單粒子效應(yīng)檢測與加固技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2007.
[7] REVIRIEGO P,MAESTRO J A,O′DONNELL A,et al.Soft error detection and correction for FFT based convolution using different block lengths[C].11th IEEE International OnLine Testing Symposium.IEEE,2009:138-143.
[8] 宋凝芳,朱明達,潘雄.SRAM型FPGA單粒子效應(yīng)試驗研究[J].宇航學(xué)報,2012,33(6):836-842.
[9] 邢克飛,楊俊,王躍科.Xilinx SRAM型FPGA抗輻射設(shè)計技術(shù)研究[J].宇航學(xué)報,2007,2(1):123-129.
[10] REVIRIEGO P,BLEAKLEY C J,MAESTRO J A.Signal shaping dual modular redundancy for soft error tolerant finite impulse response filters[J].Electronics Letters,2011,47(23):1272-1273.
[11] YANG W,WANG L,ZHOU X.CRC circuit design for SRAM-based FPGA configuration bit correction[C].Solid-State and Integrated Circuit Technology(ICSICT),2010 10th IEEE International Conference on.IEEE,2010:1660-1664.