《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于分區(qū)測試的翻轉(zhuǎn)故障注入方法研究
基于分區(qū)測試的翻轉(zhuǎn)故障注入方法研究
2017年電子技術(shù)應(yīng)用第8期
王 鵬1,張道陽1,,2,,蘆 浩1,薛茜男1
1.中國民航大學(xué) 天津市民用航空器適航與維修重點實驗室,,天津300300,; 2.中國民航大學(xué) 安全科學(xué)與工程學(xué)院,天津300300
摘要: 針對航空器中SRAM型FPGA的單粒子翻轉(zhuǎn)效應(yīng)故障注入研究越來越重要的趨勢,,提出基于分區(qū)測試的翻轉(zhuǎn)故障注入方法,。根據(jù)FPGA配置幀的結(jié)構(gòu)特點,對其進行分區(qū)測試,,分析配置存儲器中的敏感位,找到FPGA配置幀中最為敏感的區(qū)域,?;趧討B(tài)可重構(gòu)技術(shù)設(shè)計了故障注入測試系統(tǒng),并進行了試驗驗證,。測試結(jié)果表明,,該方法具有較好的準確率,且能夠大大提高翻轉(zhuǎn)故障注入測試的測試效率,。
中圖分類號: TN47
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170808
中文引用格式: 王鵬,,張道陽,,蘆浩,等. 基于分區(qū)測試的翻轉(zhuǎn)故障注入方法研究[J].電子技術(shù)應(yīng)用,,2017,,43(8):88-91.
英文引用格式: Wang Peng,Zhang Daoyang,,Lu Hao,,et al. The research of flip-flop fault injection method based on partition test[J].Application of Electronic Technique,2017,,43(8):88-91.
The research of flip-flop fault injection method based on partition test
Wang Peng1,,Zhang Daoyang1,2,,Lu Hao1,,Xue Qiannan1
1.Tianjin Key Laboratory for Civil Aircraft Airworthiness and Maintenance,Civil Aviation University of China,, Tianjin 300300,,China; 2.College of Safety Science & Engineering,,Civil Aviation University of China,,Tianjin 300300,China
Abstract: With the increasingly important trend on fault injection of single event upset for SRAM-based FPGAs in aircraft, a method of flip-flop fault injection based on partition test was proposed. According to the structural characteristics of the FPGA configuration frame, partition test is done, the sensitive bits of the configuration memory are analyzed,,and the most sensitive area of the FPGA configuration frame is found. This paper designs a test system of fault injection based on dynamic reconfiguration, and verifies it by experiments. The test results show that this method has good accuracy and can greatly improve the efficiency of the flip-flop fault injection test.
Key words : partition test,;fault injection;FPGA,;flip-flop fault

0 引言

    隨著航電技術(shù)不斷發(fā)展,,對信號處理能力、處理器及集成電路的要求越來越高,,由于SRAM型FPGA具有高性能,、可重復(fù)編程的特點,使得其在航空領(lǐng)域的應(yīng)用越來越廣泛[1],。航空器在飛行期間,,航空電子設(shè)備一直處于大氣層中的帶電粒子輻射環(huán)境中,隨著應(yīng)用在航空電子設(shè)備中芯片的集成度越來越高,,以前主要集中在航天領(lǐng)域的單粒子效應(yīng)問題,,在航空領(lǐng)域出現(xiàn)的幾率也越來越高,其中的SRAM型FPGA對大氣中帶電粒子更是十分敏感,,很容易產(chǎn)生單粒子翻轉(zhuǎn)效應(yīng)[2],。但是在航空領(lǐng)域?qū)瘟W有?yīng)的研究卻相對較少。歐美航空局方已明確提出[3],,應(yīng)考慮機載電子硬件的翻轉(zhuǎn)故障,,并采取相應(yīng)的措施,。因此,對于應(yīng)用在航空環(huán)境中的電子設(shè)備,,必須要對其進行單粒子翻轉(zhuǎn)效應(yīng)的測試,,確保其設(shè)計的可靠性滿足要求。

    目前,,國內(nèi)外對基于FPGA的單粒子翻轉(zhuǎn)故障注入測試方法展開了眾多研究,。國外YOSHIHIRO I等人提出了一種基于幀的局部可重構(gòu)方法[4],能夠快速地對SRAM型FPGA進行故障注入,。此外ELYAS A G等人提出一種故障注入框架設(shè)計[5],,評估FPGA設(shè)計的可靠性。國內(nèi)在該領(lǐng)域起步較晚,,但是也已經(jīng)有了很大的進展,。北京航空航天大學(xué)的宋凝芳等人設(shè)計一種逐位翻轉(zhuǎn)故障注入方法[6],按照逐位進行故障注入,,但是逐位翻轉(zhuǎn)會占用許多時間,。朱明達等人則提出對SRAM型FPGA進行單粒子翻轉(zhuǎn)的定位故障注入方法[7],但是未能對故障注入后的FPGA設(shè)計功能危害性進行評估,,因此實際的測試效果還需要進一步分析,。

    本文提出一種基于分區(qū)測試的翻轉(zhuǎn)故障注入方法,將被測FPGA程序的配置幀分成若干區(qū)域,,根據(jù)Xilinx Virtex的結(jié)構(gòu)特性,,采用動態(tài)重配置的配置方法,對劃分出來的每個區(qū)域中的配置幀進行翻轉(zhuǎn)故障注入測試,,分析其中每個區(qū)域?qū)PGA功能的影響,。

1 故障注入測試系統(tǒng)實現(xiàn)

    本文的故障注入測試系統(tǒng)是基于動態(tài)重配置方法實現(xiàn),總體結(jié)構(gòu)包含硬件部分和軟件部分,,系統(tǒng)結(jié)構(gòu)如圖1所示,。

ck5-t1.gif

    故障注入測試系統(tǒng)的硬件部分基于FPGA搭建,硬件平臺是整個測試系統(tǒng)的關(guān)鍵部分,,承載整個測試系統(tǒng)的運行,。故障注入測試系統(tǒng)的硬件設(shè)計包括:主控FPGA模塊、被測FPGA設(shè)計模塊,、配置數(shù)據(jù)存儲模塊,、被測設(shè)計存儲模塊。根據(jù)動態(tài)重配置方法,,采用兩片F(xiàn)PGA設(shè)計,一片F(xiàn)PGA用于控制整個測試系統(tǒng)的運行,,采用Altera FPGA Cyclone-III系列EP3C16,;另一片F(xiàn)PGA作為被測芯片,,采用Xilinx FPGA Virtex-II系列XC2V40。

    主控FPGA模塊是故障注入測試系統(tǒng)的核心,,該模塊用來對被測FPGA模塊進行翻轉(zhuǎn)故障注入以及記錄被測設(shè)計功能出錯的錯誤位,,同時與故障注入軟件控制模塊進行數(shù)據(jù)交互。被測FPGA設(shè)計模塊用于加載待測試的FPGA設(shè)計,,主控FPGA通過SelectMAP方式對被測FPGA進行故障注入,。配置數(shù)據(jù)存儲模塊,用于存放主控FPGA設(shè)計以及被測FPGA設(shè)計的prom格式配置文件,,上電自動配置對應(yīng)的FPGA,。被測設(shè)計存儲模塊用于存放被測FPGA的.mcs格式配置文件,主控FPGA會根據(jù)接收到初始配置數(shù)據(jù)提取指令,,提取該存儲模塊中的配置數(shù)據(jù)存放至片外SRAM中,。

    故障注入測試系統(tǒng)的軟件部分基于LabVIEW平臺開發(fā),作為故障注入工具,,用來實現(xiàn)故障注入功能,,同時也具有故障顯示以及數(shù)據(jù)分析功能,用于控制整個故障注入測試過程,,通過串口與主控FPGA相連接進行數(shù)據(jù)指令交互,。其主要功能包括:指令控制、數(shù)據(jù)分析,、測試結(jié)果保存,、故障顯示。

2 故障注入測試及結(jié)果分析

2.1 翻轉(zhuǎn)故障被測對象

    本文的被測芯片為Virtex-II XC2V40,。實驗對兩種電路進行單位翻轉(zhuǎn)故障注入測試分析,,并且還分別對兩種電路進行三模冗余(Triple Modular Redundancy,TMR)加固后重新測試,。測試內(nèi)容分為TMR加固效果測試和對XC2V40的配置存儲器進行分類測試,。

    采用的被測電路有4個,分別為:移位寄存器電路(Shift),、經(jīng)過三模冗余設(shè)計的移位寄存器電路(Shift_TMR),、FIFO電路(FIFO)和經(jīng)過三模冗余設(shè)計的FIFO電路(FIFO_TMR)。

2.2 翻轉(zhuǎn)故障注入實驗

    本次測試主要從3個方面進行考察:(1)被測電路敏感位信息,;(2)對FPGA配置幀進行分區(qū)測試,;(3)TMR加固效果。

    敏感位測試是本次測試的一個重要測試內(nèi)容,,敏感位也即錯誤位,,這些錯誤位直接導(dǎo)致FPGA程序的功能產(chǎn)生錯誤。FPGA在受到粒子輻照后,,這些內(nèi)部的能夠?qū)е翭PGA程序功能出錯的敏感位很有可能產(chǎn)生位翻轉(zhuǎn),,而一旦產(chǎn)生翻轉(zhuǎn)則必將對FPGA程序的功能產(chǎn)生影響,。因此對一個FPGA程序,其敏感位的確定對于抗輻射設(shè)計來說是尤為重要的信息,,如果能夠知道這些敏感位的準確位置,,便可以對這些敏感位所對應(yīng)的程序進行相關(guān)的防護措施,避免FPGA設(shè)計的功能產(chǎn)生故障,,保證其設(shè)計的可靠性,。測試程序Shift和shift_TMR的敏感幀地址信息分別如圖2和圖3所示。

ck5-t2+t3.gif

    通過本故障注入測試系統(tǒng)對Shift,、Shift_TMR,、FIFO和FIFO_TMR這幾個測試程序進行翻轉(zhuǎn)故障注入后,檢測到了被測程序的輸出與期望的輸出結(jié)果不一致,,這就表明這幾個被測程序在故障注入測試過程確實產(chǎn)生功能故障,。故障注入測試系統(tǒng)在檢測到故障產(chǎn)生的同一時間記錄了產(chǎn)生故障的配置位地址信息,表明本設(shè)計系統(tǒng)能夠?qū)收线M行相對應(yīng)的記錄,。圖2和圖3顯示了部分的敏感位地址信息,,通過幀地址和該幀中的錯誤位便可以查詢到具體的出錯地址。

2.2.1 被測電路的敏感位

    根據(jù)上述的測試流程對4個測試電路分別進行翻轉(zhuǎn)故障注入測試,,首先對4個測試電路進行全幀故障注入測試,,最終的測試結(jié)果統(tǒng)計如表1。

ck5-b1.gif

    根據(jù)測試得到的數(shù)據(jù)可以計算出系統(tǒng)的錯誤率Rerror以及功能失效率λ[7],,計算公式如式(1)和式(2):

ck5-gs1-2.gif

    從表1可以看出,,引起被測FPGA設(shè)計的錯誤位置分布在不同的區(qū)域中,在各個區(qū)域中所占的比例也有所不同,。

    (1)從表1中統(tǒng)計的錯誤信息可以看出,,經(jīng)過三模冗余加固的Shift和FIFO設(shè)計,其IOB和IOI部分的配置幀錯誤未能得到改善,,并且錯誤數(shù)目以及錯誤位置沒有改變,。

    (2)對Shift、Shift_TMR,、FIFO和FIFO_TMR這4個被測FPGA設(shè)計進行翻轉(zhuǎn)故障注入測試,,最終得到的大部分敏感位都在CLB中,GCLK,、IOB,、IOI、BRAM和BRAM Int這幾類幀中只存在少數(shù)錯誤位,,CLB中敏感位占全部敏感位的比例分別為93.35%,、88.68%、86.84%和70.59%,可見CLB對整個設(shè)計的影響是最主要的,。從資源的分配來看,,CLB所占的比例也是最大,,GCLK,、IOB和IOI所占的比例很少。結(jié)合得到的敏感位置,,就三模冗余加固而言,,可以忽略GCLK、IOB,、IOI,、BRAM和BRAM Int這幾類幀的影響,重點關(guān)注CLB,,主要考察該部分幀即可,。

    (3)經(jīng)過三模冗余加固的被測設(shè)計,其出錯的數(shù)目明顯少于未經(jīng)過三模冗余的被測設(shè)計,,被測shift設(shè)計和shift_TMR設(shè)計產(chǎn)生的錯誤分別為189個和53個,,其錯誤率分別為2.04%和0.57%;被測FIFO設(shè)計和FIFO_TMR設(shè)計產(chǎn)生的錯誤分別為38個和17個,,其錯誤率分別為0.41%和0.18%,;從這些數(shù)據(jù)可以說明三模的加固效果還是較好的,能夠?qū)挝环D(zhuǎn)起到一定的防護作用,。

2.2.2 分區(qū)測試結(jié)果

    分區(qū)測試是將FPGA中的配置存儲器分成若干的不同區(qū)域,,然后對這些不同的區(qū)域單獨進行故障注入測試。本測試將配置存儲器分為4個區(qū)域,,如表2所示,。通過對配置幀進行分區(qū)翻轉(zhuǎn)故障注入測試的測試結(jié)果如表3所示。

ck5-b2.gif

ck5-b3.gif

    被測Shift設(shè)計的CLB配置存儲器中錯誤位存在于CLB1中,,錯誤的數(shù)目為184個,;被測shift_TMR設(shè)計的CLB配置存儲器中錯誤位存在于CLB1中,其錯誤數(shù)目為47個,。

    被測FIFO設(shè)計的CLB配置存儲器中錯誤位存在于CLB1和CLB2中,,其錯誤數(shù)目分別為19個和14個;被測FIFO_TMR設(shè)計的CLB配置存儲器中錯誤位存在于CLB1中,,其錯誤位數(shù)為12個,。從測試結(jié)果可以看出,敏感位主要集中在幀地址范圍為30~117幀中,。

2.2.3 分區(qū)測試法結(jié)果分析

    本文提出的分區(qū)測試方法,,集中測試幀地址范圍為30~117幀的區(qū)域,并將測得的敏感位數(shù)進行擬合計算,擬合結(jié)果如式(3):

    ck5-gs3.gif

其中,,total1為采用分區(qū)測試法得到的敏感位,;NCLB1為CLB1中測得的敏感位;NGBI為GBI這幾類幀測得的敏感位,。

    最終用分區(qū)測試法得到的結(jié)果total1與總的測試結(jié)果total進行比較,,如表4所示。

ck5-b4.gif

    表4表明,,分區(qū)測試法得到的結(jié)果與沒有進行分區(qū)測試法得到的結(jié)果非常接近,。根據(jù)分區(qū)測試法,被測Shift設(shè)計根據(jù)分區(qū)測試法得到的結(jié)果準確度為100%,;被測Shift_TMR設(shè)計根據(jù)分區(qū)測試法得到的結(jié)果準確度為98%,;被測FIFO設(shè)計根據(jù)分區(qū)測試法得到的結(jié)果準確度為63%;被測FIFO_TMR設(shè)計根據(jù)分區(qū)測試法得到的結(jié)果準確度為100%,??梢钥闯觯捎梅謪^(qū)測試法得到的結(jié)果能夠準確地表示出整個測試結(jié)果,。

2.3 可靠度曲線

    本文采用常規(guī)的TMR來作為防輻射設(shè)計,。根據(jù)式(1)和式(2),通過軟件計算得到錯誤率和失效率,。根據(jù)得到的失效率計算電路的可靠度R(t),,如式(4):

    ck5-gs4.gif

其中,t為時間,,R(t)為系統(tǒng)可靠度,。

    通過式(4)繪制出被測Shift電路和被測Shift_TMR電路的可靠度曲線,如圖4所示,。

ck5-t4.gif

    從表1中得知被測Shift設(shè)計和Shift_TMR設(shè)計的失效率分別為8.32×10-5和2.33×10-5,;被測FIFO設(shè)計和FIFO_TMR設(shè)計的失效率分別為1.67×10-5和7.48×10-6;通過分區(qū)測試法計算得到幾個測試程序的失效率如表4,,被測shift設(shè)計和shift_TMR設(shè)計的失效率分別為8.32×10-5和2.32×10-5,;被測FIFO設(shè)計和FIFO_TMR設(shè)計的失效率分別為1.07×10-5和7.48×10-6??梢钥闯霾捎萌H哂嗉庸淘O(shè)計后的程序其失效率要比未采用三模冗余設(shè)計程序的失效率低很多,,系統(tǒng)出錯的可能性也就低了許多。通過圖4看出,,分區(qū)測試法得到的結(jié)果與未經(jīng)過分區(qū)測試法的測得的結(jié)果很接近,,表明本文提出的分區(qū)測試法有著較好的準確性。從可靠度曲線也可以看出,,采用三模冗余的FPGA設(shè)計的可靠度要高出許多,,系統(tǒng)的可靠性更好。

3 結(jié)語

    本文基于FPGA動態(tài)重配置方法,針對FPGA內(nèi)部配置幀提出了一種分區(qū)測試方法,,該方法旨在定位FPGA配置數(shù)據(jù)中的敏感位,,能夠幫助程序設(shè)計人員更加便捷有效地進行翻轉(zhuǎn)故障注入測試。本文提出的基于分區(qū)測試的翻轉(zhuǎn)故障注入方法,,能夠?qū)PGA的配置幀劃分不同區(qū)域進行翻轉(zhuǎn)故障注入測試,,發(fā)現(xiàn)在不同的FPGA電路設(shè)計中其配置數(shù)據(jù)的分布也是不盡相同。測試結(jié)果發(fā)現(xiàn)配置幀中GCLK,、IOB和IOI這幾類幀中的錯誤位相對較少,,也不容易變化,可能與所分配FPGA的管腳有關(guān),。在所有的配置幀中,CLB這類幀產(chǎn)生的敏感位最多,,通過對CLB分區(qū)測試發(fā)現(xiàn)敏感位主要集中在CLB1幀中,,且GBI中的敏感位數(shù)較固定。因此對于本次使用的測試FPGA程序只需對幀地址范圍為30~117幀進行翻轉(zhuǎn)故障測試,,再進行擬合計算,,即可得到被測設(shè)計的翻轉(zhuǎn)失效率。該方法既能節(jié)約測試時間,,也能保證測試結(jié)果的準確性,。在對兩個測試程序進行TMR加固設(shè)計后發(fā)現(xiàn),其CLB幀中的敏感位大大減少,,錯誤率和失效率降低許多,,程序的可靠性明顯提高,說明TMR對CLB幀中的加固有一定作用,。

參考文獻

[1] BANERJEE P,,SANGTANI M,SUR-KOLAY S.Floor planning for partially reconfigurable FPGAs[J].Computer-Aided Design of Integrated Circuits and Systems,,IEEE Transactions on,,2011,30(1):8-17.

[2] 鄧先坤,,肖立伊,,李家強.SRAM型FPGA的SEU故障注入系統(tǒng)設(shè)計[J].微電子學(xué)與計算機,2014,,31(3):134-137.

[3] RTCA/DO-254.Design assurance guidance for airborne electronic hardware[S].2010.

[4] YOSHIHIRO I,,KOHEI T,MOTOKI A.Accelerated evaluation of SEU failure-in-time using frame-based partial reconfiguration[C].Field-Programmable Technology,,2012 International Conference on,,2013:220-223.

[5] ELYAS A G,ZANA G,SEYED G M.A non-intrusive portable fault injection framework to assess reliability of FPGA-based designs[C].Field-Programmable Technology,,2013 International Conference on,,2014:398-401.

[6] 宋凝芳,秦姣梅,,江云天,,等.SRAM型FPGA單粒子效應(yīng)逐位翻轉(zhuǎn)故障注入方法[J].北京航空航天大學(xué)學(xué)報,2012,,38(10):1285-1289.

[7] 朱明達.SRAM型FPGA單粒子翻轉(zhuǎn)故障定位注入研究[J].電光與控制,,2016,23(11):134-137.

[8] YUI C,,SWIFT C,,CARMICHAEL C.Singel event upset susceptibility testing of the Xilinx Virtex Ⅱ FPGA[C].Military and Aerospace Applications of Programmable Devices and Technologies Conference(MAPLD),2002:212-217.



作者信息:

王  鵬1,,張道陽1,,2,蘆  浩1,,薛茜男1

(1.中國民航大學(xué) 天津市民用航空器適航與維修重點實驗室,,天津300300;

2.中國民航大學(xué) 安全科學(xué)與工程學(xué)院,,天津300300)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。