專利名稱:一種針對(duì)sram型fpga的隨機(jī)翻轉(zhuǎn)故障注入方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,屬于FPGA空間可靠性技術(shù)領(lǐng)域。
背景技術(shù):
FPGA發(fā)生單粒子翻轉(zhuǎn)后,其故障表現(xiàn)為FPGA中存儲(chǔ)單元的內(nèi)容改變,而這些存儲(chǔ)單元的內(nèi)容是由配置文件中的比特位決定的。目前,在地面上模擬空間中的單粒子翻轉(zhuǎn)主要采用輻射模擬,即采用重離子或高能質(zhì)子等模擬源來輻照器件,測試其輻射敏感參數(shù),為器件的選型和預(yù)估實(shí)際輻射環(huán)境中單粒子翻轉(zhuǎn)率提供依據(jù)。
如果采用輻射模擬的方法,首先,被輻照過的器件不能再被使用,從而提高了試驗(yàn)的成本;其次,國內(nèi)的高能加速資源器資源相對(duì)較少,預(yù)約困難;再次,這種方法對(duì)于調(diào)整粒子種類和能量的操作較為復(fù)雜,難以控制注入位置;最后,經(jīng)過原子序號(hào)小的粒子輻射后會(huì)發(fā)生二次核子反應(yīng),造成輻射污染,具有較高危險(xiǎn)性。
與此相比,模擬單粒子翻轉(zhuǎn)的第二種方式-故障注入的方法則彌補(bǔ)了上述缺點(diǎn), 成為地面模擬單粒子翻轉(zhuǎn)的重要手段。尤其是利用SRAM型FPGA重配置特性進(jìn)行的故障注入方法得到了極大的關(guān)注。但是也沒有解決實(shí)際應(yīng)用中用戶無法確定配置存儲(chǔ)單元刷新周期的問題。發(fā)明內(nèi)容
本發(fā)明的目的是為了解決上述問題,針對(duì)采用SRAM型FPGA實(shí)現(xiàn)的電路,利用其動(dòng)態(tài)重配置的優(yōu)點(diǎn),通過翻轉(zhuǎn)比特位即可人為的在FPGA中引入與單粒子翻轉(zhuǎn)同等效力的故障,一方面對(duì)設(shè)計(jì)電路配置存儲(chǔ)單元執(zhí)行多位隨機(jī)故障注入,替代輻射模擬,從而對(duì)電路設(shè)計(jì)防護(hù)手段的有效性進(jìn)行評(píng)測;另一方面通過單位隨機(jī)故障注入,累積翻轉(zhuǎn)直到出現(xiàn)功能性錯(cuò)誤,從而得到配置存儲(chǔ)單元的刷新周期。
一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,針對(duì)多位隨機(jī)翻轉(zhuǎn)方式,包括以下幾個(gè)步驟
步驟一初始配置;
測試開始后,首先控制器對(duì)被測芯片進(jìn)行初始化配置;
步驟二 設(shè)定模擬輻射劑量和模擬輻射時(shí)間;
用戶設(shè)定模擬輻射劑量和模擬輻射時(shí)間;
步驟三確定翻轉(zhuǎn)比特位,并且,隨機(jī)翻轉(zhuǎn)M位比特位;
上位機(jī)根據(jù)用戶設(shè)定的模擬輻射劑量和模擬輻射時(shí)間,確定翻轉(zhuǎn)比特位的數(shù)量為 M,選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令,控制器根據(jù)指令對(duì)被測芯片配置數(shù)據(jù)進(jìn)行M位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置;
步驟四得到被測芯片輸出結(jié)果;
動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,對(duì)被測芯片進(jìn)行評(píng)測。
一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,針對(duì)單位隨機(jī)翻轉(zhuǎn)方式,包括以下幾個(gè)步驟
步驟一初始配置;
測試開始后,首先控制器對(duì)被測芯片進(jìn)行初始化配置;
步驟二 進(jìn)行一位隨機(jī)翻轉(zhuǎn);
選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令,控制器根據(jù)指令對(duì)被測芯片配置數(shù)據(jù)進(jìn)行一位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置,翻轉(zhuǎn)數(shù)初始為1,以后每執(zhí)行一次步驟二,翻轉(zhuǎn)數(shù) N = N+1 ;
步驟三判斷是否產(chǎn)生錯(cuò)誤;
動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,若沒有引起結(jié)果錯(cuò)誤,則返回步驟二重復(fù)翻轉(zhuǎn)和重配置過程,若檢測發(fā)現(xiàn)結(jié)果錯(cuò)誤,則將翻轉(zhuǎn)數(shù)N上傳至上位機(jī);
步驟四獲取刷新周期;
上位機(jī)根據(jù)被測芯片發(fā)生單粒子效應(yīng)的翻轉(zhuǎn)率來獲得配置存儲(chǔ)單元的刷新周期, 具體為
翻轉(zhuǎn)數(shù)N即為刷新閾值,根據(jù)(1)式獲取電路設(shè)計(jì)的刷新周期
P = N/λ(1)
其中,N為通過單位隨機(jī)故障注入累積獲得的刷新閾值,單位為bit ; λ為被測芯片的單粒子效應(yīng)翻轉(zhuǎn)率,單位為bit/day ;最終獲得用戶電路設(shè)計(jì)的刷新周期P,單位為 day ο
本發(fā)明的優(yōu)點(diǎn)在于
(1)試驗(yàn)花費(fèi)時(shí)間較少;
(2)可以通過隨機(jī)故障注入,真實(shí)模擬空間中單粒子效應(yīng);
(3)可以較準(zhǔn)確得到配置存儲(chǔ)單元的刷新周期;
(4)根據(jù)用戶需求,自定義模擬輻射參數(shù),對(duì)FPGA單粒子效應(yīng)防護(hù)手段進(jìn)行評(píng)測。
圖1是本發(fā)明的針對(duì)多位隨機(jī)翻轉(zhuǎn)方式方法流程圖2是本發(fā)明的針對(duì)單位隨機(jī)翻轉(zhuǎn)方式方法流程圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明是一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,包括多位隨機(jī)翻轉(zhuǎn)和單位隨機(jī)翻轉(zhuǎn)兩種方式。
針對(duì)多位隨機(jī)翻轉(zhuǎn)方式,本發(fā)明的一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,流程如圖1所示,包括以下幾個(gè)步驟
步驟一初始配置;
測試開始后,首先控制器對(duì)被測芯片進(jìn)行初始化配置;
步驟二 設(shè)定模擬輻射劑量和模擬輻射時(shí)間;
用戶設(shè)定模擬輻射劑量和模擬輻射時(shí)間;
步驟三確定翻轉(zhuǎn)比特位,并且,隨機(jī)翻轉(zhuǎn)M位比特位;
上位機(jī)根據(jù)用戶設(shè)定的模擬輻射劑量和模擬輻射時(shí)間,確定翻轉(zhuǎn)比特位的數(shù)量為 M,選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令,控制器根據(jù)指令對(duì)被測芯片(FPGA)配置數(shù)據(jù)進(jìn)行M位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置;
步驟四得到被測芯片輸出結(jié)果;
動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,從而對(duì)電路設(shè)計(jì)防護(hù)手段的有效性進(jìn)行評(píng)測。
針對(duì)單位隨機(jī)翻轉(zhuǎn)方式,本發(fā)明的一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,流程如圖2所示,包括以下幾個(gè)步驟
步驟一初始配置;
測試開始后,首先控制器對(duì)被測芯片(FPGA)進(jìn)行初始化配置;
步驟二 進(jìn)行一位隨機(jī)翻轉(zhuǎn);
選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令,控制器根據(jù)指令對(duì)被測芯片(FPGA)配置數(shù)據(jù)進(jìn)行一位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置,翻轉(zhuǎn)數(shù)初始為1,以后每執(zhí)行一次步驟二, 翻轉(zhuǎn)數(shù)N = N+1 ;
步驟三判斷是否產(chǎn)生錯(cuò)誤;
動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,若沒有引起結(jié)果錯(cuò)誤,則返回步驟二重復(fù)翻轉(zhuǎn)和重配置過程,若檢測發(fā)現(xiàn)結(jié)果錯(cuò)誤,則將翻轉(zhuǎn)數(shù)N上傳至上位機(jī);
步驟四獲取刷新周期;
上位機(jī)根據(jù)被測芯片發(fā)生單粒子效應(yīng)的翻轉(zhuǎn)率來獲得配置存儲(chǔ)單元的刷新周期, 具體為
翻轉(zhuǎn)數(shù)N即為刷新閾值,根據(jù)(1)式獲取電路設(shè)計(jì)的刷新周期
P = N/λ(1)
其中,N為通過單位隨機(jī)故障注入累積獲得的刷新閾值,單位為bit。λ為被測芯片的單粒子效應(yīng)翻轉(zhuǎn)率,單位為bit/day。最終獲得用戶電路設(shè)計(jì)的刷新周期P,單位為 day ο
經(jīng)過多次測試,獲取多個(gè)刷新周期P,取P的平均值,最終獲得平均刷新周期。
本發(fā)明利用FPGA的部分動(dòng)態(tài)重配置技術(shù),提出隨機(jī)翻轉(zhuǎn)故障注入試驗(yàn)方法。隨機(jī)翻轉(zhuǎn)故障注入即對(duì)具體電路設(shè)計(jì)生成的配置位進(jìn)行隨機(jī)位置翻轉(zhuǎn),再重配置到FPGA中,檢測翻轉(zhuǎn)位對(duì)設(shè)計(jì)輸出的影響。
本發(fā)明的多位隨機(jī)翻轉(zhuǎn)方式,根據(jù)輻照試驗(yàn)獲得的輻照時(shí)間、輻照劑量等對(duì)應(yīng)的翻轉(zhuǎn)位總數(shù),通過隨機(jī)翻轉(zhuǎn)相同的數(shù)量,替代輻射模擬的方法,對(duì)電路設(shè)計(jì)防護(hù)手段的有效性進(jìn)行評(píng)測;單位隨機(jī)翻轉(zhuǎn)方式重復(fù)單位隨機(jī)故障注入過程,直到發(fā)生功能性錯(cuò)誤,最終計(jì)算得到配置存儲(chǔ)單元的刷新周期。
綜上所述,本發(fā)明針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,既可以通過單位隨機(jī)翻轉(zhuǎn)的累積來最終獲得刷新周期,也可以通過多位隨機(jī)翻轉(zhuǎn)模擬輻射注入方法為電路設(shè)計(jì)的防護(hù)有效性進(jìn)行評(píng)測。隨機(jī)故障注入方法將實(shí)際的時(shí)間、空間二維故障模型進(jìn)行了簡化,壓縮了時(shí)間維度,以空間的隨機(jī)實(shí)現(xiàn)了模擬實(shí)際二維故障的功能。
權(quán)利要求
1.一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,其特征在于,針對(duì)多位隨機(jī)翻轉(zhuǎn)方式,包括以下幾個(gè)步驟步驟一初始配置;測試開始后,首先控制器對(duì)被測芯片進(jìn)行初始化配置; 步驟二 設(shè)定模擬輻射劑量和模擬輻射時(shí)間; 用戶設(shè)定模擬輻射劑量和模擬輻射時(shí)間; 步驟三確定翻轉(zhuǎn)比特位,并且,隨機(jī)翻轉(zhuǎn)M位比特位;上位機(jī)根據(jù)用戶設(shè)定的模擬輻射劑量和模擬輻射時(shí)間,確定翻轉(zhuǎn)比特位的數(shù)量為M,選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令, 控制器根據(jù)指令對(duì)被測芯片配置數(shù)據(jù)進(jìn)行M位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置;步驟四得到被測芯片輸出結(jié)果;動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,對(duì)被測芯片進(jìn)行評(píng)測。
2.根據(jù)權(quán)利要求1所述的一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,其特征在于,被測芯片為FPGA。
3.一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,針對(duì)單位隨機(jī)翻轉(zhuǎn)方式,其特征在于,包括以下幾個(gè)步驟步驟一初始配置;測試開始后,首先控制器對(duì)被測芯片進(jìn)行初始化配置; 步驟二 進(jìn)行一位隨機(jī)翻轉(zhuǎn);選擇以當(dāng)前系統(tǒng)時(shí)間為種子的隨機(jī)函數(shù),確定翻轉(zhuǎn)位的隨機(jī)位置,上位機(jī)發(fā)送隨機(jī)翻轉(zhuǎn)指令,控制器根據(jù)指令對(duì)被測芯片配置數(shù)據(jù)進(jìn)行一位隨機(jī)翻轉(zhuǎn),再將翻轉(zhuǎn)位所在數(shù)據(jù)幀重配置到被測芯片,完成動(dòng)態(tài)重配置,翻轉(zhuǎn)數(shù)初始為1,以后每執(zhí)行一次步驟二,翻轉(zhuǎn)數(shù)N = N+1 ;步驟三判斷是否產(chǎn)生錯(cuò)誤;動(dòng)態(tài)重配置完成后,比較被測芯片輸出結(jié)果和預(yù)知的正確結(jié)果,若沒有引起結(jié)果錯(cuò)誤, 則返回步驟二重復(fù)翻轉(zhuǎn)和重配置過程,若檢測發(fā)現(xiàn)結(jié)果錯(cuò)誤,則將翻轉(zhuǎn)數(shù)N上傳至上位機(jī); 步驟四獲取刷新周期;上位機(jī)根據(jù)被測芯片發(fā)生單粒子效應(yīng)的翻轉(zhuǎn)率來獲得配置存儲(chǔ)單元的刷新周期,具體為翻轉(zhuǎn)數(shù)N即為刷新閾值,根據(jù)(1)式獲取電路設(shè)計(jì)的刷新周期 P = N/λ(1)其中,N為通過單位隨機(jī)故障注入累積獲得的刷新閾值,單位為bit; λ為被測芯片的單粒子效應(yīng)翻轉(zhuǎn)率,單位為bit/day ;最終獲得用戶電路設(shè)計(jì)的刷新周期P,單位為day。
4.根據(jù)權(quán)利要求3所述的一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,其特征在于,被測芯片為FPGA。
5.根據(jù)權(quán)利要求3所述的一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,其特征在于,重復(fù)步驟一至步驟四,經(jīng)過多次測試,獲取多個(gè)刷新周期P,取P的平均值,最終獲得平均刷新周期。
全文摘要
本發(fā)明公開了一種針對(duì)SRAM型FPGA的隨機(jī)翻轉(zhuǎn)故障注入方法,針對(duì)采用SRAM型FPGA實(shí)現(xiàn)的電路,利用其動(dòng)態(tài)重配置的優(yōu)點(diǎn),通過翻轉(zhuǎn)比特位即可人為的在FPGA中引入與單粒子翻轉(zhuǎn)同等效力的故障,一方面對(duì)設(shè)計(jì)電路配置存儲(chǔ)單元執(zhí)行多位隨機(jī)故障注入,替代輻射模擬,從而對(duì)電路設(shè)計(jì)防護(hù)手段的有效性進(jìn)行評(píng)測;另一方面通過單位隨機(jī)故障注入,累積翻轉(zhuǎn)直到出現(xiàn)功能性錯(cuò)誤,從而得到配置存儲(chǔ)單元的刷新周期。
文檔編號(hào)G01R31/3185GK102540062SQ20111045196
公開日2012年7月4日 申請日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者宋鏡明, 張家銘, 張忠鋼, 朱明達(dá), 李安琪, 潘雄, 金靖 申請人:北京航空航天大學(xué)