一種fpga單粒子翻轉(zhuǎn)防護方法
【專利摘要】一種FPGA單粒子翻轉(zhuǎn)防護方法,采用狀態(tài)機的方式對FPGA的邏輯狀態(tài)進行控制,所述的狀態(tài)機包括一個空閑狀態(tài)和N個邏輯狀態(tài),所述的N個邏輯狀態(tài)依次轉(zhuǎn)換,每一個邏輯狀態(tài)都對應(yīng)FPGA中設(shè)定的一個邏輯狀態(tài);FPGA上電或者復位完成后,狀態(tài)機初始處于空閑狀態(tài);當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件不滿足時,狀態(tài)機控制FPGA保持當前的邏輯狀態(tài),當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件滿足時,狀態(tài)機控制FPGA進入對應(yīng)的邏輯狀態(tài);當發(fā)生單粒子故障導致FPGA跳轉(zhuǎn)至無效狀態(tài)或者非設(shè)定的下一個邏輯狀態(tài)時,狀態(tài)機控制FPGA復位并返回初始狀態(tài),等待對下一次觸發(fā)條件進行判斷并對FPGA的邏輯狀態(tài)進行控制。
【專利說明】—種FPGA單粒子翻轉(zhuǎn)防護方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種FPGA單粒子翻轉(zhuǎn)防護方法。
【背景技術(shù)】
[0002]目前,在星載電子產(chǎn)品中大量采用了FPGA設(shè)計。由于FPGA會受到空間輻射環(huán)境影響引起單粒子翻轉(zhuǎn)(SEU),導致邏輯錯誤,造成產(chǎn)品功能失效。因此,在選擇空間應(yīng)用的FPGA時,需要采用抗輻射加固的FPGA芯片。但由于國外對我國的抗輻射加固FPGA芯片實施禁運,在星載電子產(chǎn)品設(shè)計中需要采取相應(yīng)的抗輻射加固設(shè)計措施來提高FPGA的抗單粒子翻轉(zhuǎn)能力。
[0003]現(xiàn)有的設(shè)計往往通過FPGA內(nèi)部邏輯的三模冗余和動態(tài)刷新重配置技術(shù)提高FPGA的抗單粒子翻轉(zhuǎn)能力,由此帶來FPGA規(guī)模的大幅度增加和硬件設(shè)計復雜度的大幅提高,功耗、重量、成本等也相應(yīng)的大幅提聞。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供了一種FPGA單粒子翻轉(zhuǎn)防護方法,通過狀態(tài)機的復位接口設(shè)計,增強了 FPGA空間應(yīng)用的抗輻射能力,提高了星載電子產(chǎn)品中FPGA空間應(yīng)用的可靠性,可以很好地克服單粒子翻轉(zhuǎn)對星載電子產(chǎn)品的影響問題。
[0005]本發(fā)明的技術(shù)解決方案是:一種FPGA單粒子翻轉(zhuǎn)防護方法,采用狀態(tài)機的方式對FPGA的邏輯狀態(tài)進行控制,所述的狀態(tài)機包括一個空閑狀態(tài)和N個邏輯狀態(tài),所述的N個邏輯狀態(tài)依次轉(zhuǎn)換,每一個邏輯狀態(tài)都對應(yīng)FPGA中設(shè)定的一個邏輯狀態(tài);FPGA上電或者復位完成后,狀態(tài)機初始處于空閑狀態(tài);當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件不滿足時,狀態(tài)機控制FPGA保持當前的邏輯狀態(tài),當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件滿足時,狀態(tài)機控制FPGA進入對應(yīng)的邏輯狀態(tài);當發(fā)生單粒子故障導致FPGA跳轉(zhuǎn)至無效狀態(tài)或者非設(shè)定的下一個邏輯狀態(tài)時,通過狀態(tài)機復位接口使FPGA返回初始狀態(tài),等待對下一次觸發(fā)條件進行判斷并對FPGA的邏輯狀態(tài)進行控制。
[0006]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
[0007](I)本發(fā)明方法無需采用FPGA寄存器的三模冗余設(shè)計,減少了同等復雜度邏輯設(shè)計的FPGA資源使用量,能夠優(yōu)化FPGA布局布線結(jié)果,提高了 FPGA的評估頻率;
[0008](2)本發(fā)明方法配合FPGA內(nèi)部的狀態(tài)機復位接口,主動定期對FPGA內(nèi)部的狀態(tài)機進行復位初始化,將SEU引起的狀態(tài)機混亂恢復至初始態(tài),保證FPGA的邏輯功能;
[0009](3)本發(fā)明方法能夠在FPGA不重新上電或者重新復位的情況下,恢復由SEU單粒子翻轉(zhuǎn)引起的FPGA狀態(tài)機邏輯轉(zhuǎn)換錯誤,而FPGA其他邏輯功能不受影響;
[0010](4)本發(fā)明方法部分彌補了 FPGA元器件抗SEU指標不足情況下的衛(wèi)星應(yīng)用。
【專利附圖】
【附圖說明】[0011]圖1為本發(fā)明方法的流程圖;
[0012]圖2為本發(fā)明無SEU情況下的狀態(tài)機切換流程圖;
[0013]圖3為本發(fā)明發(fā)生SEU情況下的狀態(tài)機切換流程圖。
【具體實施方式】
[0014]本發(fā)明方法主要從以下三個方面進行設(shè)計:
[0015](I) FPGA代碼設(shè)計時采用安全狀態(tài)機的防護設(shè)計;
[0016](2) FPGA設(shè)計時增加狀態(tài)機復位接口設(shè)計;
[0017](3)配合FPGA邏輯設(shè)計,每次FPGA設(shè)計邏輯啟動前,操作狀態(tài)機復位接口重新初始化狀態(tài)機;
[0018]狀態(tài)機包括一個空閑狀態(tài)和N個邏輯狀態(tài)。空閑狀態(tài)主要負責完成FPGA內(nèi)部邏輯的初始狀態(tài)設(shè)置;其他N個邏輯狀態(tài)和FPGA實現(xiàn)的邏輯功能以及硬件電路的設(shè)計相關(guān),每一個邏輯狀態(tài)都對應(yīng)FPGA中設(shè)定的一個邏輯狀態(tài),F(xiàn)PGA在該狀態(tài)下需要進行的不同操作,如FPGA對外輸出一個脈沖信號或者啟動一個定時器工作等;這N個邏輯狀態(tài)與FPGA具體應(yīng)用相關(guān)。
[0019]具體工作過程為:FPGA復位完成后,狀態(tài)機處于初始空閑(IDLE)狀態(tài);當狀態(tài)機轉(zhuǎn)換條件滿足時,轉(zhuǎn)入某一個狀態(tài)等待下一個觸發(fā)條件;當狀態(tài)機轉(zhuǎn)換條件滿足時,依次進行FPGA的狀態(tài)轉(zhuǎn)換,按照FPGA設(shè)計邏輯完成預定功能后回到初始空閑(IDLE)狀態(tài),完成一次完整的FPGA邏輯功能,等待FPGA啟動下一次工作時序。當狀態(tài)機的轉(zhuǎn)換受到SEU影響造成狀態(tài)機死鎖,則將FPGA內(nèi)部的狀態(tài)機邏輯恢復至初始狀態(tài)(例如通過軟件復位的方式),等待FPGA啟動下一次工作時序。
[0020]如圖1所示,本發(fā)明方法的完整工作過程如下:
[0021](I) FPGA上電或者復位完成后,狀態(tài)機處于初始空閑(IDLE)狀態(tài);
[0022](2) FPGA停留在初始狀態(tài)等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件,當狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯轉(zhuǎn)入狀態(tài)I ;當SEU故障導致狀態(tài)機非預期跳轉(zhuǎn)至無效狀態(tài)時,通過安全狀態(tài)機設(shè)計安全返回至初始狀態(tài);當SEU故障導致狀態(tài)機非預期跳轉(zhuǎn)至狀態(tài)M時,狀態(tài)機依靠復位安全返回至初始狀態(tài);
[0023](3)根據(jù)外部狀態(tài)機轉(zhuǎn)換觸發(fā)條件,依次進行FPGA的狀態(tài)轉(zhuǎn)換后,狀態(tài)機進入狀態(tài)M;
[0024](4)FPGA停留在邏輯狀態(tài)M,等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件;當狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯轉(zhuǎn)入狀態(tài)N ;當SEU故障導致狀態(tài)機非預期跳轉(zhuǎn)至無效狀態(tài)時,通過安全狀態(tài)機設(shè)計安全返回至初始狀態(tài);
[0025](5)FPGA停留在邏輯狀態(tài)N,等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件;當狀態(tài)N的狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯正?;氐匠跏紶顟B(tài),完成一次完整的狀態(tài)轉(zhuǎn)換;當SEU故障導致狀態(tài)機非預期跳轉(zhuǎn)至無效狀態(tài)時,通過安全狀態(tài)機設(shè)計安全返回至初始狀態(tài);
[0026](6) FPGA等待啟動下一次工作時序,并重復上述過程。
[0027]如圖2所示,本發(fā)明中狀態(tài)機在未發(fā)生SEU單粒子翻轉(zhuǎn)情況下的工作過程如下:
[0028](I) FPGA上電或者復位完成后,狀態(tài)機處于初始空閑(IDLE)狀態(tài);
[0029](2)啟動FPGA邏輯工作前,通過復位將FPGA進行初始化操作;[0030](3) FPGA停留在初始狀態(tài)等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件;當狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯轉(zhuǎn)入狀態(tài)I ;
[0031](4)FPGA停留在邏輯狀態(tài)I,等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件;當狀態(tài)I的狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯轉(zhuǎn)入狀態(tài)2 ;
[0032](5)根據(jù)外部狀態(tài)機轉(zhuǎn)換觸發(fā)條件,依次進行FPGA的狀態(tài)轉(zhuǎn)換,按照FPGA設(shè)計邏輯完成預定功能后回到初始空閑IDLE狀態(tài),完成一次完整的FPGA邏輯功能;
[0033](6) FPGA等待啟動下一次工作時序,并重復上述過程。
[0034]如圖3所示,本發(fā)明中狀態(tài)機在發(fā)生SEU單粒子翻轉(zhuǎn)情況下的工作過程如下:
[0035](I) FPGA上電或者復位完成后,狀態(tài)機處于初始空閑(IDLE)狀態(tài);
[0036](2) FPGA停留在初始狀態(tài)等待外部輸入的狀態(tài)機轉(zhuǎn)換觸發(fā)條件;當狀態(tài)機轉(zhuǎn)換條件滿足時,F(xiàn)PGA邏輯轉(zhuǎn)入狀態(tài)I ;
[0037](3)當發(fā)生SEU單粒子翻轉(zhuǎn)時,F(xiàn)PGA狀態(tài)機編碼翻轉(zhuǎn)成一種無效編碼狀態(tài)時,通過安全狀態(tài)機編碼設(shè)計,將FPGA狀態(tài)直接返回至初始IDLE狀態(tài),結(jié)束本次FPGA邏輯操作,等待啟動下一次FPGA邏輯操作;
[0038](4)當從FPGA上電或者復位后,F(xiàn)PGA之前都未發(fā)生異常的情況下,F(xiàn)PGA的狀態(tài)機已經(jīng)運轉(zhuǎn)并停留在邏輯狀態(tài)1,并等待外部觸發(fā)條件時,發(fā)生了 SEU單粒子翻轉(zhuǎn),F(xiàn)PGA在無外部觸發(fā)條件的情況下,F(xiàn)PGA錯誤地進入了狀態(tài)3 ;
[0039](5)由于FPGA內(nèi)部狀態(tài)機的轉(zhuǎn)換受到SEU影響造成狀態(tài)機邏輯混亂,使得FPGA跳過了狀態(tài)2而直接進入了狀態(tài)3,因此會造成FPGA狀態(tài)機3的轉(zhuǎn)換條件永遠無法滿足,引起FPGA的狀態(tài)機死鎖,再也無法繼續(xù)進行FPGA的狀態(tài)轉(zhuǎn)換,造成FPGA功能失效;只有通過FPGA重新上電或者復位的方法才能恢復;
[0040](6)通過復位將FPGA狀態(tài)機恢復至初始狀態(tài),等待啟動下一次狀態(tài)機正常轉(zhuǎn)換工作時序,F(xiàn)PGA其他邏輯功能不受影響。
[0041]本發(fā)明說明書中未作詳細描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種FPGA單粒子翻轉(zhuǎn)防護方法,其特征在于:采用狀態(tài)機的方式對FPGA的邏輯狀態(tài)進行控制,所述的狀態(tài)機包括一個空閑狀態(tài)和N個邏輯狀態(tài),所述的N個邏輯狀態(tài)依次轉(zhuǎn)換,每一個邏輯狀態(tài)都對應(yīng)FPGA中設(shè)定的一個邏輯狀態(tài);FPGA上電或者復位完成后,狀態(tài)機初始處于空閑狀態(tài);當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件不滿足時,狀態(tài)機控制FPGA保持當前的邏輯狀態(tài),當設(shè)定的FPGA所要跳轉(zhuǎn)的邏輯狀態(tài)的觸發(fā)條件滿足時,狀態(tài)機控制FPGA進入對應(yīng)的邏輯狀態(tài);當發(fā)生單粒子故障導致FPGA跳轉(zhuǎn)至無效狀態(tài)或者非設(shè)定的下一個邏輯狀態(tài)時,通過狀態(tài)機復位接口使FPGA返回初始狀態(tài),等待對下一次觸發(fā)條件進行判斷并對FPGA的邏輯狀態(tài)進行控制。
【文檔編號】G06F11/00GK103530196SQ201310439347
【公開日】2014年1月22日 申請日期:2013年9月24日 優(yōu)先權(quán)日:2013年9月24日
【發(fā)明者】胡洪凱, 施蕾, 田宇斌, 吳琨, 劉波, 任憲朝, 孫強, 程銘 申請人:北京控制工程研究所