文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.015
中文引用格式: 馮興,王大鳴,張彥奎,等. 基于SRAM型FPGA的SEU敏感性研究[J].電子技術應用,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 引言
隨著星載信號處理平臺對于信號處理能力需求的不斷提升,宇航級芯片已越來越難以滿足需求,而商用芯片相對宇航級芯片擁有更強的處理能力和更多的處理資源。所以基于商用芯片構建星載處理平臺的商用現(xiàn)成技術(Commercial Off-The-Shelf,COTS)成為當前衛(wèi)星通信平臺設計領域的研究熱點。
由于商用芯片向著高密集度、低操作電壓的方向迅速發(fā)展,使得它們在空間輻射環(huán)境下的可靠性大大降低。其中軟故障是主要故障,它是由帶電粒子和PN結相互作用引起的一種暫態(tài)故障,可造成芯片嚴重的運行錯誤[1]。所以如何彌補商用芯片本身抗輻照能力的不足是需要解決的重要問題。
國內外研究機構對于星載信號處理平臺抗SEU方法目前主要分為兩類:一類是針對SEU的屏蔽,包括各種抗SEU加固結構設計、高性能抗SEU的CMOS(Complementary Metal Oxide Semiconductor)工藝等[2];另一類是針對SEU的修復,如動態(tài)可重構技術、編碼糾正[3]等方法。另外,由于星載平臺中包含大量的諸如FIR(Finite Impulse Response)濾波和FFT(Fast Fourier Transform)的處理過程,故近年來針對各種濾波器和信號處理算法本身抗SEU的方法研究特別廣泛,如文獻[4]、文獻[5]分別實現(xiàn)FIR濾波器和FFT算法的容錯技術。
相對于上述研究思路,本文則重點關注芯片內部各種不同硬件資源對于SEU事件的敏感性。以星載平臺上應用廣泛的SRAM型FPGA為研究對象,通過模擬星載平臺和故障注入的實驗,根據各種資源在故障源注入后誘發(fā)系統(tǒng)出現(xiàn)功能紊亂的概率總結出各種資源對于SEU敏感性高低的結論。
1 SEU敏感性研究模型
為驗證SRAM型FPGA不同資源對于SEU存在不同的敏感性,需要模擬星載信號處理平臺SRAM型FPGA在外部空間遭遇SEU效應的整個過程。即在地面上模擬采用SRAM型FPGA的星載信號處理平臺,模擬FPGA出現(xiàn)的SEU錯誤,以及將模擬的SEU錯誤注入到FPGA內部不同資源中。據此提出SEU敏感性研究的模型,如圖1所示。
根據研究模型,首先可以采用基于商用芯片的星地聯(lián)合處理平臺來模擬星載平臺,其硬件環(huán)境如圖2所示。其中CPCI(Compact Peripheral Component Interconnect)總線用來模擬星地鏈路,星載處理板模擬星載信號處理平臺,處理板采用了多片SRAM型FPGA芯片作為實驗的測試芯片。
為調用FPGA內部資源,采用兩種功能相同但實現(xiàn)方式不同的功能模塊,因此可以針對兩種模塊設計顆粒度不同的實驗A和實驗B來分別進行實驗?;诠δ苣K通過故障注入的方式生成模擬的SEU錯誤,在系統(tǒng)正常運行的情況下,將錯誤注入到平臺FPGA的功能模塊中,觀察注入前后的輸出狀態(tài),對比兩次實驗結果,得出SEU敏感性研究的結論。
2 SEU敏感性實驗設計
2.1 基于IP核的FFT敏感性實驗設計
通常星載平臺中擁有大量的FFT運算,而這些運算大都通過在FPGA中調用IP核來實現(xiàn)。因此以基于IP核的FFT來進行SEU敏感性實驗是合理的。SRAM型FPGA芯片由6個部分組成,其中Slice資源是可編程邏輯單元的基本邏輯單元,RAM資源是FPGA常用的硬核模塊,兩種資源都是FPGA內部廣泛分布且應用較多的資源。所以基于IP核的FFT敏感性實驗所針對的資源就是Slice和RAM。
Slice資源內部主要的配置關系是邏輯關系,即“+”、“~”、“*”關系;RAM資源內部主要的配置關系是數值關系,即0、1數值關系。所以針對這兩種資源的故障注入將分別圍繞這兩種配置關系進行修改。利用FPGA_Editor查看網表文件,并對其進行修改,生成差異比特文件,即模擬故障源。在FFT模塊正常運行后通過測試電腦經模擬星地鏈路,反復將故障源注入到FFT模塊中,通過chipscope抓取結果,根據結果得出結論。
2.2 基于軟件實現(xiàn)的FFT敏感性實驗設計
為進一步驗證上述結論,在前述實驗的基礎上,設計了另一種顆粒度更高的實驗來加以證明。該實驗運用VHDL語言編程實現(xiàn)16點的FFT功能模塊,該模塊調用更多的FPGA資源,采用相同的星地聯(lián)合處理平臺,同樣針對Slice和RAM兩種資源進行故障注入實驗。
設16點數據為x(0)、x(1)…x(15)的16位的實數數據,按時間抽取的基2 FFT算法原理可得該16點FFT的蝶形交織運算,如圖3所示,其結果即是X(0)~X(15)的16點FFT輸出。由圖可知,該FFT算法原理的核心是每一層的蝶形交織運算,因此整個16點FFT程序設計的關鍵是四層的蝶形交織運算。
設計程序分成五部分,即頂層的輸入輸出和4個蝶形交織層。最初輸入16點的16位實數數據,然后通過每層的蝶形交織計算得到最終FFT的輸出。將結果與MATLAB仿真進行對比,驗證該FFT模塊是否編寫正確。確認模塊功能正確后,同樣針對Slice和RAM進行修改;然后進行故障注入試驗,通過chipscope抓取結果;最后根據結果得出結論。
3 SEU敏感性實驗及分析
3.1 基于IP核的FFT敏感性實驗及分析
通過FPGA_Editor可得知IP核FFT模塊擁有1 227個Slice、17個RAM資源。將1 227個Slice資源中每連續(xù)的20個左右分為一組,共分為60組。對每一組資源中的每一個Slice都在數量為10處進行邏輯修改。將17個RAM資源劃為17組,對每一個RAM分別進行數量統(tǒng)一為10處的數值修改。最后得到60個Slice和17個RAM的差異比特文件,并對每一個差異比特文件進行100次的反復注入。
3.1.1 實驗結果
針對Slice資源的故障注入結果分為四個程度,分別如圖4~圖7所示。所有60組試驗中只有4組結果正確,其余組都出現(xiàn)各種錯誤。
針對RAM資源的故障注入結果分為三個程度,如圖4、圖8和圖9所示。所有試驗中只有4組出現(xiàn)錯誤。
3.1.2 實驗結論
(1)在Slice顆粒度約為20個一組、共60組的情況下,根據大量反復注入的試驗結果,利用統(tǒng)計數據可得針對Slice資源故障注入后模塊的故障率為:θ1=(56/60)×100%=93.3%;針對RAM資源故障注入后的故障率為:θ2=(4/7)×100%=23.5%。故在SEU效應敏感度上,Slice強于RAM。
(2)試驗中每組故障注入的數量一致,但注入的位置各不相同。通過每組最后的結果對比可知,不同位置的故障注入將對模塊產生不同程度的影響。
(3)在77組故障注入試驗中,結果是邏輯修改引起的模塊故障率更高。故SEU造成邏輯上的故障對整個模塊影響要明顯強于數值故障造成的影響。
3.2 基于軟件實現(xiàn)的FFT敏感性實驗及分析
為了驗證該編寫的FFT模塊功能正確,首先在MATLAB中實現(xiàn)FFT算法,然后將其每層蝶形交織結果與VHDL程序的每一層蝶形交織結果進行對比。對比輸出結果如圖10所示,左側為MATLAB仿真結果,右側為VHDL程序運行結果。
由對比可知,VHDL程序運行結果與MATLAB仿真吻合,證明該程序具備正確的FFT功能,可作為本次實驗的模塊。通過FPGA_Editor可知,生成的FFT模塊擁有2 265個Slice、2個RAM資源。
與前述實驗類似,將該FFT中的2 265個Slice資源每連續(xù)的10個左右分為一組,共分為240組,對每個Slice進行數量為10處的故障注入;將2個RAM資源劃為2組,對每個RAM進行數量10處的數值修改。最后生成240個Slice和2個RAM差異比特文件,并對每個文件進行100次的反復注入。
3.2.1 實驗結果
針對Slice資源試驗,所有試驗中有32組結果正確,其余出現(xiàn)明顯錯誤,如圖11所示。針對RAM資源的試驗結果2組都正確,如圖12所示。
3.2.2 實驗結論
(1)本次實驗在前述實驗的基礎上將Slice測試顆粒度提高1倍,試驗組數提高4倍。由大量反復注入的試驗結果,利用統(tǒng)計數據可得針對Slice注入模塊故障率為:θ1=(208/240)×100%=86.7%;針對RAM資源故障注入后的FFT模塊故障率為:θ2=(0/2)×100%=0%。所以有θ1>θ2,故在SEU效應敏感度上,Slice強于RAM。
(2)每組故障注入的數量相同,但位置不同。結果發(fā)現(xiàn)不同位置的注入對模塊產生不同程度的影響。
(3)該次實驗依然是針對Slice資源進行邏輯修改,針對RAM資源進行數值修改。從結果來看,依然是邏輯的錯誤對整個模塊的影響強于數值錯誤。
4 結論
本文重點分析芯片內部不同硬件資源對于SEU效應敏感性的問題。以SRAM型FPGA為研究對象,設計進行了兩種顆粒度不同的故障注入實驗。結果表明,在FPGA內部資源中,Slice資源對于SEU效應的敏感性很強,RAM相對較弱。SEU效應引起的邏輯錯誤比數值錯誤更能誘發(fā)系統(tǒng)的功能紊亂。所以,可針對FPGA中占用Slice資源較多的模塊進行防護,重點針對邏輯錯誤進行防護。
參考文獻
[1] 裴志強,周剛.FPGA的空間容錯技術研究[J].微處理機,2011,32(6):18-20.
[2] 馮彥君,華更新,楊樺,等.國外星載容錯計算機技術及最新進展(綜述)[C].全國第十二屆空間及運動體控制技術學術會議論文集,2006.
[3] 徐斌,王貞松,陳冰冰,等.適用于空間環(huán)境下的FPGA容錯與重構體系[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] 邢克飛.星載信號處理平臺單粒子效應檢測與加固技術研究[D].長沙:國防科學技術大學,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單粒子效應試驗研究[J].宇航學報,2012,33(6):836-842.
[9] 邢克飛,楊俊,王躍科.Xilinx SRAM型FPGA抗輻射設計技術研究[J].宇航學報,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.