中文字幕无码日韩视频无码三区

一種sram型fpga單粒子軟錯誤與電路失效率關系快速測定方法

文檔序號:10513548閱讀:510來源:國知局
一種sram型fpga單粒子軟錯誤與電路失效率關系快速測定方法
【專利摘要】本發明涉及一種SRAM型FPGA單粒子軟錯誤與電路失效率關系快速測定方法,步驟如下:(1)選定初始向配置區注入的翻轉位數N;(2)隨機選擇FPGA配置區N位進行故障注入,運行FPGA,記錄FPGA輸出是否出現錯誤;(3)重復第(2)k次,直到失效率在30%到70%;(4)根據實際條件,按照最終選定的N,進行盡量多次的故障注入,獲得較好的統計性,推薦注入以N位隨機翻轉的故障注入試驗次數不的小于30次;(5)最終得到注入N位隨機故障后電路失效率為λN,然后用1?(1?λN)M/N估計電路的失效率上限,得到電路設計的SEU數目M?電路失效率λM評估結果。采用本發明的方法通過次數很少的故障注入,即可對FPGA電路設計抗SEU性能作出有效評價,大大減少了實驗的次數和評估的周期。
【專利說明】
一種SRAM型FPGA單粒子軟錯誤與電路失效率關系快速測定 方法
技術領域
[0001 ]本發明涉及一種SRAM型FPGA單粒子軟錯誤與電路失效率關系的快速測定方法,屬 于FPGA設計領域。
【背景技術】
[0002] 衛星運行在空間輻射環境,星上的電子設備會受到空間質子、電子以及其它類型 的輻照,并產生輻照效應。單粒子翻轉(SEU)是由于空間質子、重離子引起的一種輻照效應, 發生SEU時,電子器件的存儲器的邏輯狀態會發生改變,進而引起程序執行錯誤,甚至電路 失效。目前,空間電子系統設計中一般選擇SEU閾值滿足設計需求的抗輻射加固的器件,并 采取諸如三模冗余等加固措施來緩解SEU問題。然而隨著衛星數據處理能力需求的增加、以 及來自低成本和快速研發進度的需求,經過抗輻射加固的電子器件的性能與成本已經開始 不能夠滿足航天領域的需求,而商用SRAM(靜態隨機存取存儲器)型的FPGA(現場可編程邏 輯門陣列)具有集成程度高、開發成本低、高性能、低功耗以及可在線重構等優點,已經被空 間領域關注、并逐步得到應用,但同時,SRAM型FPGA容易發生SEU,SEU會引起FPGA配置的電 路結構改變、失效。在空間領域應用SRAM型FPGA(現場可編程邏輯門陣列)時,需要進行SEU 防護設計,并驗證SEU防護設計的有效性。
[0003] 驗證SEU防護設計的有效性時,其中一項重要工作是考察電路設計的SEU敏感性, 即當發生FPGA內部已經發生SEU時,電路設計仍然能夠正常工作、不發生異常的能力。對于 電路結構已知的情況下,可以通過理論分析、仿真故障注入等方式來考察電路設計的SEU敏 感性;而當電路結構未知時(評估人員無法獲得電路設計源文件或者電路中應用了結構不 公開IP核),通過故障注入方式直接修改FPGA的配置區,模擬單粒子引起配置區的SEU,并通 過多次故障注入試驗統計獲得FPGA電路設計的敏感性。
[0004] 要獲取SRAM型FPGA的SEU敏感性,需要進行足夠多次的故障注入試驗。一般而言, 故障注入需要經歷生成故障序列、注入故障、配置FPGA、運行應用、分類并記錄故障等步驟, 而這些步驟并不總是能在較短時間內完成。以故障分類為例,假如應用電路的運行周期時 間較長,則僅當電路運行一個完整周期并且電路未出現故障時,才能判定該次故障注入試 驗不會引起電路錯誤或失效。由于故障分類需要時間較長,因此一次故障注入需要的時間 也相應較長。一次故障注入需要較長時間的情況,需要采取合理的故障注入方案,減少應用 電路SEU敏感性評估所需的故障注入次數。

【發明內容】

[0005] 本發明的目的在于優化故障注入策略,提供一種SRAM型FPGA單粒子軟錯誤與電路 失效率關系的快速測定方法,通過少的故障注入次數來考察FPGA的電路設計的單粒子效應 敏感性,獲得FPGA配置區翻轉數目與電路失效率的關系曲線。
[0006] 本發明目的通過如下技術方案予以實現:
[0007] (1)選定初始向FPGA配置區注入的翻轉位數為N位;
[0008] (2)隨機選擇FPGA配置區中的N位進行故障注入,運行FPGA,記錄FPGA輸出是否出 現錯誤;
[0009] (3)重復步驟(2)k次,計算FPGA的失效率λΝ;如果失效率λΝ小于30%,則增大翻轉位 數Ν,返回步驟(2);如果失效率λ Ν超過70%,則減小翻轉位數Ν,返回步驟(2);如果失效率λΝ 在30 %到70 %,則固定Ν值,進入步驟(4);
[0010] ⑷按照固定的Ν值,進行η次的故障注入,記錄FPGA輸出是否出現錯誤;
[0011] (5)計算注入N位隨機故障后電路失效率λΝ,然后用1-(1-λΝ) Μ/Ν估計翻轉位數M〈N時 電路的失效率λΜ的上限。
[0012] 優選的,步驟(1)中選定初始向FPGA配置區注入的翻轉位數為Ν位,N=l/a,a為 FPGA中資源占用率。
[0013] 優選的,步驟⑴中選定初始向FPGA配置區注入的翻轉位數為N位,N選擇大于100。
[0014]優選的,步驟(3)中還包括,如果失效率λΝ小于30 %或超過70%,則設定目標失效 率λ〇,30 % 70 %,利用公式λο = 1-( 1-λΝ)i/N,計算i值,作為下一次故障注入的Ν值。
[0015]優選的,所述步驟(3)中k的取值大于10。
[0016]優選的,所述步驟(4)中η的取值大于30。
[0017] 本發明與現有技術相比具有如下優點:
[0018] (1)采用本發明的評估方法進行電路設計的SEU敏感性評估,通過次數很少的故障 注入,即可獲得FPGA電路設計單粒子軟錯誤與電路失效率關系,對電路設計的SEU敏感性做 出有效評價,大大減少了實驗所需的故障注入的次數和單次評估的周期。
[0019] ⑵本發明的評估方法可以對翻轉位數小于N時FPGA電路設計的翻轉位數-失效率 關系進行偏保守的評估,而對于冗余結構較少的電路,該方法評估結果將更加準確。采用本 方法獲得現有FPGA設計的SEU敏感性評估結果,然后結合空間單粒子環境可以對電路設計 在空間任務中錯誤率進行預測,確定FPGA電路設計能夠適應空間環境。本方法對FPGA電路 的SEU容錯設計具有驗證作用。
[0020] (3)本發明的評估方法采用隨機故障注入的方法,無需了解具體的電路結構,僅需 要有電路設計的配置文件即可執行,實驗方法簡單有效。
【附圖說明】
[0021 ]圖1是本發明建立快速獲取FPGA單粒子敏感性方法的流程圖;
[0022]圖2是一非三模冗余FPGA電路故障注入結果與本方法預測的比較示意圖;
[0023]圖3是一典型三模冗余電路故障注入結果與本方法預測結果比較示意圖。
【具體實施方式】
[0024] 如果不采用動態刷新策略,在軌運行衛星電子系統中FPGA配置區的SEU位數會隨 著時間的推移逐步積累,從而導致FPGA中電路應用失效;如果采用了動態刷新策略,由于單 粒子效應的隨機性,在一個刷新周期內,FPGA配置區也有可能發生多次SEU。在評估單粒子 敏感性時,需要掌握不同翻轉位數Μ下應用電路的失效率λ Μ,獲得應用電路的翻轉位數M-失 效率Am關系曲線。
[0025] 對于運行在某種型號FPGA的一個應用電路,FPGA配置區的配置位數目一般可以達 到百萬至千萬量級,一般應用電路只利用了 FPGA的部分資源,也就是說,FPGA配置區的一部 分配置位并未被使用。這里所指的"未被應用"到意味著這些配置位無論別寫成〇或者1,電 路均可以正常工作;配置位被"用到"則意味著這些配置位發生改變,或者一些特定配置位 的組合發生改變時,應用電路會失效。這些被用到配置位中,一些配置位是電路中的冗余結 構,即其該配置位單獨發生翻轉并不會引起電路的失效,僅當該配置位與一些特定配置位 的同時發生翻轉時,電路才會失效;而另外一些配置位在電路中沒有冗余,即只要這些配置 位發生翻轉,電路就會失效。
[0026] 這里可以將FPGA中的配置位分為三類,形成三個集合R,UN,Ur :
[0027] R{配置位b |配置位b無論是0還是1,均不影響應用電路的狀態}
[0028] UN{配置位b|只要配置位b發生翻轉,應用電路就會失效}
[0029] UR{配置位b|配置位b單獨翻轉時并不引起電路失效,僅當其與本集合中其他一些 特定配置位{bd共同翻轉時,才能引起應用電路將失效}
[0030] 假設FPGA配置區三個集合R,UN,Ur中配置位的占總配置位比例分別為r,UN,UR,顯 然有r+u N+uR = 1。如果向FPGA的配置區隨機注入了 N位翻轉,則有以下三種可能性:
[0031] 1)這N位翻轉均屬于集合R中,應用電路正常工作,出現該情況的概率為:丹=/(確 定正常工作)
[0032] 2)這N位翻轉至少有一位屬于集合UN中,應用電路失效,出現該情況的概率為:P2 = 卜(1~un)n= l-(r+UR)N(確定失效)
[0033] 3)這N位翻轉部分屬于集合Ur中,部分屬于集合R中,無法判定應用電路是否失效, 出現該情況的概率為:P3= l-Pi_P2 = (r+UR)N-rN(狀態不定)
[0034] 這里要評估Ur集合中的元素引起FPGA電路設計的失效率理論上較為復雜,同時, 本方法主要應用目標是對電路設計結構未知的情況下評估電路的SEU敏感性,所以P 3中有 多大比例電路正常工作,有多大比例電離失效,在評估中無法確切知道。但是在本模型中, P!(確定正常工作)與P2(確定失效)是確定的,但可以據此給出對FPGA失效率上限與下限的 估計。隨機注入N位翻轉之后,FPGA失效率至少為P 2,即至少有一位翻轉屬于集合UN的概率; 失效率至之多為P2+P 3,或者Ι-Pi,即屬于Ur集合中的翻轉位也均會引起失效:
[0035] P2= l-(r+uR)N < P(失效)< l_rN=P2+P3
[0036] 電路實際的失效率應該在P0ljP2+P3之間。當注入故障位數較少時,隨機選出并翻 轉的配置位組合正好是導致電路失效的特定配置位組合的概率較低,此時電路失效率接近 p2,也就是l-(r+UR)N,隨著故障注入位數的增加,隨機選出翻轉的配置位組合正好是導致電 路失效的配置位組合的概率開始不斷增加。
[0037]假設某配置位aQeUR,存在著(α〇,α?),·…,( a〇,ak)等k個配置位兩兩組合,當(α〇, ai)同時發生翻轉時,會導致應用電路失效。如果在故障注入中并未抽中a〇, .. .ak的任意一 位,則接下來只抽到a〇,...ak中的任意一位是不會引起電路失效的;如果在故障注入試驗 時,a Q被抽中并翻轉后,在接下來只要ai,.. .ak中任意一位,電路將會失效。換而言之,在a〇 euR被在故障注入中抽中后,接下來隨機選取一位翻轉并引起電路失效的概率提高了。 [0038] 假設目前已經向FPGA的配置區注入了 M-1位翻轉,此時電路尚未失效,將FPGA剩余 的配置位分成兩部分,形成兩個集合Rm與UM:
[0039] Rm{配置位b I在注入M-1個特定翻轉位后,配置位b無論是0或1,電路均不失效}
[0040] UM{配置位b I在注入M-ι個特定翻轉位后,配置狀態改變時,應用電路失效}
[0041] 根據上面的定義,某配置位如果屬于集合R,那么它必然屬于集合Rm;某配置位如 果屬于集合Un,那么它必然屬于集合Um;某配置位如果屬于集合Ur,則其可能屬于Rm,也可能 屬于U M。當Μ的值較小時,Ur中的大部分元素屬于Rm,而隨著Μ的增加,Ur中的元素會逐步轉移 到UM中。不妨設r M為Rm元素在剩余配置位中所占的比例,隨著Μ的增加,rM的期望將單調遞 減,向配置區注入Μ個翻轉后,電路失效率λ Μ為:
[0043]
,是n,i = l,. . .,Μ的幾何平均數,由于ri是單調遞減,故 隨著Μ的增加也是單調遞減的。向配置區寫入Μ個翻轉,^]反應了平均每個翻轉位不 引起電路失效的概率。計算向FPGA隨機注入Μ位翻轉時,計算電路失效率λΜ可以用公式
[0046]由于r(Μ)是單調遞減的,如果向配置區分別注入Μ位翻轉與Ν位翻轉(Μ〈Ν ),有 。當已經知道注入Ν位翻轉后,應用電路失效率可以預測,當FPGA的配置區發生 Μ位翻轉之后λΝ,可以估計注入Μ位故障時電路失效率λΜ:
[0048] 上式中小于等于號處是因為當Μ〈Ν,有r(M) > r(iV)。實際上,可以通過1 _預 測到了 FPGA的配置區發生M(M〈N)位翻轉后電路失效率的上限。
[0049] 根據上述結論,通過故障注入來評估電路設計的SEU敏感性時,并不一定需要注入 不同位數的故障,來獲取一條完整的翻轉位數M-失效率λ Μ關系曲線,可以僅按照N位翻轉進 行故障注入試驗并獲得電路失效率λΝ,然后當配置區翻轉位數為Μ(Μ〈Ν)時,電路設計的失 效率用本方法給出的上限來估計:
[0051]注入故障位數Ν的選擇是一個關鍵問題:出于減少故障注入次數的目的,Ν不宜太 小或者太大,選擇的Ν應當使得電路失效率λΝ在〇. 3到0.7之間。
[0052]圖1為電路設計SEU評價的步驟,具體步驟如下:
[0053] (1)選定初始向配置區注入的翻轉位數Ν;
[0054]這里Ν的初始值選擇隨意,如果已經知道電路設計的在FPGA中資源占用率為a,那 么可以選擇N=l/a,如果對FPGA的電路設計完全處于黑盒狀態,那么選擇N=100或者其它 數值均可以。
[0055] (2)隨機選擇FPGA配置區N位進行故障注入,運行FPGA,記錄FPGA輸出是否出現錯 誤;
[0056] (3)重復第(2)K次(推薦不少于10次),如果發現在K次故障注入中,失效率小于 30 %,則適當增大一次注入的翻轉位數No,重復第(2)步;如果失效率超過70 %,則適當減小 一次注入的翻轉位數No,重復第(2)步;直到失效率在30%到70%,則進入第(4)步;
[0057] 這里可以利用來估計下一次故障注入的N,不妨假設我們期望注入Ν'位
翻轉后,電路失效率為50 %,前一次故障注入得到的失效率為An,
[0058] (4)根據實際條件,按照最終選定的N,進行盡量多次的故障注入,獲得較好的統計 性,推薦注入以N位隨機翻轉的故障注入試驗次數不的小于30次;
[0059] (5)最終得到注入N位隨機故障后電路失效率為λΝ,然后用1-(1-λ Ν)Μ/Ν估計M〈N時電 路的失效率上限,得到電路設計的單粒子敏感性評估結果。
[0060] 這里以兩個典型電路的故障注入試驗進行了驗證,其結果如圖2與圖3所示。圖2為 一個由一個計數器與一個移位寄存器組成,不包含冗余結構電路的故障注入結果;圖3為一 個由一個計數器與一個移位寄存器組成,并經過三模冗余加固的電路的故障注入結果。
[0061] 在無冗余電路故障注入中,經過(1)(2) (3)步的試驗,確定一次注入故障位數N = 3000,以3000位進行故障注入100次,其中58次電路失效,因此得至私3()()() = 〇. 58,同時,得到λΜ < 1-(1-0.58)μ/300° = 1-(1-0.000289)μ〇
[0062] 圖2中黑色的線條即為上述公式預測出的理論曲線,而點為實際故障注入試驗結 果,可以看出,本方法可通過少量故障注入試驗較為準確給出無冗余結果電路的翻轉位數 Μ-失效率λΜ關系,即使Μ大于3000,該方法也能給出準確的評估結果。
[0063] 對于有冗余的電路,經過(1)(2) (3)步的試驗,確定一次注入故障位數Ν = 300,以 300位進彳丁故障注入100次,其中44次電路失效,因此得到λ3〇〇 = 0.44,同時,得到
[0064]圖3中黑色的線條即為上述公式預測出的理論曲線,而點為實際故障注入試驗結 果,可以看出,本方法當Μ〈Ν時,本方法可以給出偏保守的估計,即本方法預測的失效率要大 于實際失效率,而當Μ>Ν時,本方法將給出偏樂觀的失效率估計,不再適合工程應用。而在Ν 的選取中,如果電路翻轉位數超過Ν,將意味著電路失效率已經超過30%,實際應用中,電路 失效率超過30%意味著電路無法穩定工作,可以斷定電路設計不適用工作在配置區翻轉超 過Ν的單粒子環境中,所以對于實際應用場合,無需了解Μ超過Ν時,無必要了解電路失準確 的效率。
[0065] 通過本方法,通過次數很少的故障注入。可以對翻轉位數小于Ν時FPGA電路設計的 翻轉位數Μ-失效率λΜ關系進行偏保守的評估,而對于冗余結構較少的電路,該方法評估結 果將更加準確。
[0066] 以上所述,僅為本發明最佳的【具體實施方式】,但本發明的保護范圍并不局限于此, 任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發明的保護范圍之內。
[0067] 本發明說明書中未作詳細描述的內容屬于本領域專業技術人員的公知技術。
【主權項】
1. 一種SRAM型FPGA單粒子軟錯誤與電路失效率關系快速測定方法,其特征在于包括如 下步驟: (1) 選定初始向FPGA配置區注入的翻轉位數為N位; (2) 隨機選擇FPGA配置區中的N位進行故障注入,運行FPGA,記錄FPGA輸出是否出現錯 誤; (3) 重復步驟(2)k次,計算FPGA的失效率λΝ;如果失效率λΝ小于30 %,則增大翻轉位數N, 返回步驟(2);如果失效率λΝ超過70%,則減小翻轉位數Ν,返回步驟(2);如果失效率λ N在 30 %到70 %,則固定Ν值,進入步驟(4); (4) 按照固定的Ν值,進行η次的故障注入,記錄FPGA輸出是否出現錯誤; (5) 計算注入N位隨機故障后電路失效率λΝ,然后計算1-(1-λΝ)Μ/Ν,作為翻轉位數Μ時電 路的失效率λ Μ的上限,其中Μ〈Ν。2. 根據權利要求1所述方法,其特征在于,步驟(1)中選定初始向FPGA配置區注入的翻 轉位數為N位,N = 1 /a,a為FPGA中資源占用率。3. 根據權利要求1所述方法,其特征在于,步驟(1)中選定初始向FPGA配置區注入的翻 轉位數為N位,N選擇大于100。4. 根據權利要求1所述方法,其特征在于,所述步驟(3)中如果失效率λΝ小于30 %或超過 70%,Ν值通過如下方法獲得:,設定目標失效率λ〇,30% < λ〇 < 70%,利用公式λ〇 = 1-(1-λΝ )1/Ν,計算i值,作為下一次故障注入的Ν值。5. 根據權利要求1所述方法,其特征在于,所述步驟(3)中k的取值大于10。6. 根據權利要求1所述方法,其特征在于,所述步驟(4)中η的取值大于30。
【文檔編號】G11C29/56GK105869679SQ201610183678
【公開日】2016年8月17日
【申請日】2016年3月28日
【發明人】于登云, 賈曉宇, 蔡震波, 張慶祥, 李衍存, 王穎, 秦珊珊, 鄭玉展
【申請人】北京空間飛行器總體設計部
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1