本發(fā)明涉及FPGA空間可靠性
技術領域:
,特別是涉及一種SRAM型FPGA的故障注入方法和裝置。
背景技術:
:SRAM(StaticRandomAccessMemory,即靜態(tài)隨機存取存儲器)型FPGA(Field-ProgrammableGateArray,即現(xiàn)場可編程門陣列)由于其可重復配置、靈活性高、資源豐富等優(yōu)點,被廣泛應用于航天領域。SRAM型FPGA的內(nèi)部資源由SRAM型的存儲單元實現(xiàn),而SRAM型的存儲單元對空間輻射十分敏感,空間重離子和質(zhì)子在其中產(chǎn)生的單粒子翻轉(zhuǎn)嚴重威脅其正常運行,成為行業(yè)研究和工程應用的重點和焦點。單粒子翻轉(zhuǎn)(SingleEventUpset,SEU):指由于單粒子輻射引起電路的邏輯狀態(tài)發(fā)生變化,即邏輯“1”變成邏輯“0”,或邏輯“0”變成邏輯“1”,造成電路邏輯功能混亂。單粒子翻轉(zhuǎn)是單粒子效應(SingleEventEffects,SEE)中的一種,故障注入方法是評估FPGA單粒子效應敏感性的常用方法,其原理是使用硬件、軟件、仿真等技術向器件或系統(tǒng)中注入故障,評估故障對器件性能或系統(tǒng)運行的影響。目前行業(yè)內(nèi)常用的SRAM型FPGA故障注入方法使用故障隨機注入或逐位注入來實現(xiàn)器件抗輻射性能的評價。但單粒子翻轉(zhuǎn)在SRAM型FPGA的產(chǎn)生位置是隨機的,若采用隨機注入或逐位注入方式對FPGA的全部位置進行故障注入,將花費大量的時間才能確定故障位置,因此,現(xiàn)有的SRAM型FPGA故障注入方法效率低,無法快速地評價故障對FPGA功能是否產(chǎn)生影響。技術實現(xiàn)要素:基于此,有必要提供一種能夠提高故障注入效率的SRAM型FPGA的故障注入方法和裝置。一種SRAM型FPGA的故障注入方法,包括以下步驟:獲取待測FPGA的初始配置文件;獲取所述初始配置文件中的使用中邏輯資源,并確定所述使用中邏輯資源對應可配置存儲單元的配置文件位置;確定故障注入位置,所述故障注入位置與所述可配置存儲單元的配置文件位置對應;翻轉(zhuǎn)所述故障注入位置的配置比特位得到故障注入配置文件;將所述故障注入配置文件下載到所述待測FPGA中。在一個實施例中,所述翻轉(zhuǎn)所述故障注入位置的配置比特位得到故障注入配置文件的步驟包括:翻轉(zhuǎn)所述故障注入位置中一種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在一個實施例中,所述翻轉(zhuǎn)所述故障注入位置的配置比特位得到故障注入配置文件的步驟包括:分別翻轉(zhuǎn)所述故障注入位置中多種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在一個實施例中,在將所述故障注入配置文件下載到所述待測FPGA中的步驟之后,還包括:運行所述FPGA以驗證所述FPGA是否失效并得到驗證結(jié)果;當所述故障注入位置對應的配置比特位未全部被翻轉(zhuǎn)時,返回翻轉(zhuǎn)所述故障注入位置的配置比特位得到故障注入配置文件的步驟;當所述故障注入位置對應的配置比特位全部被翻轉(zhuǎn)時,根據(jù)所述驗證結(jié)果、所述故障注入位置和所述故障注入位置對應的可配置存儲單元的類型確定失效模式。在一個實施例中,所述獲取所述初始配置文件中的使用中邏輯資源,并確定所述使用中邏輯資源對應可配置存儲單元的配置文件位置的步驟包括:確定所述初始配置文件中的用戶邏輯資源;區(qū)分所述用戶邏輯資源中的未使用邏輯資源和使用中邏輯資源;確定所述使用中邏輯資源對應可配置存儲單元的配置文件位置。一種SRAM型FPGA的故障注入裝置,包括:初始配置獲取模塊,用于獲取待測FPGA的初始配置文件;分析模塊,用于獲取所述初始配置文件中的使用中邏輯資源,并確定所述使用中邏輯資源對應可配置存儲單元的配置文件位置;故障位置確定模塊,用于確定故障注入位置,所述故障注入位置與所述可配置存儲單元的配置文件位置對應;翻轉(zhuǎn)模塊,用于翻轉(zhuǎn)所述故障注入位置的配置比特位得到故障注入配置文件;故障注入模塊,用于將所述故障注入配置文件下載到所述待測FPGA中。在一個實施例中,所述翻轉(zhuǎn)模塊,用于翻轉(zhuǎn)所述故障注入位置中一種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在一個實施例中,所述翻轉(zhuǎn)模塊,用于分別翻轉(zhuǎn)所述故障注入位置中多種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在一個實施例中,驗證模塊,用于運行所述FPGA以驗證所述FPGA是否失效并得到驗證結(jié)果;失效分析模塊,用于當所述故障注入位置對應的配置比特位全部被翻轉(zhuǎn)時,根據(jù)所述驗證結(jié)果、所述故障注入位置和所述故障注入位置對應的可配置存儲單元的類型確定失效模式;所述翻轉(zhuǎn)模塊,還用于當所述故障注入位置對應的配置比特位未全部被翻轉(zhuǎn)時,翻轉(zhuǎn)下一所述故障注入位置的配置比特位得到故障注入配置文件。在一個實施例中,所述分析模塊,包括:用戶獲取資源獲取模塊,用于確定所述初始配置文件中的用戶邏輯資源;區(qū)分模塊,用于區(qū)分所述用戶邏輯資源中的未使用邏輯資源和使用中邏輯資源;存儲單元獲取模塊,用于確定所述使用中邏輯資源對應可配置存儲單元的配置文件位置。該SRAM型FPGA的故障注入方法,通過對FPGA的初始配置文件中進行分析得到使用中邏輯資源,且僅對使用中的邏輯資源進行故障注入。單粒子翻轉(zhuǎn)只有發(fā)生在使用中的邏輯資源上時,才可能對FPGA正常運行產(chǎn)生影響。該SRAM型FPGA的故障注入方法,無需對FPGA的全部位置進行故障注入,通過僅對使用中的邏輯資源進行故障注入,能夠提高SRAM型FPGA的故障注入效率,并且,測試人員根據(jù)故障注入的反饋能夠快速地評價故障對FPGA功能是否有影響。附圖說明圖1為一個實施例的SRAM型FPGA的故障注入方法的流程圖;圖2為一種實施方式的一故障注入位置對應的可配置存儲單元的配置比特位;圖3為將如圖2所示的配置比特位翻轉(zhuǎn)得到的故障注入配置文件;圖4為另一種實施例的SRAM型FPGA的故障注入方法的流程圖;圖5為一個實施例的SRAM型FPGA的故障注入裝置的功能模塊示意圖;圖6為另一個實施例的SRAM型FPGA的故障注入裝置的功能模塊示意圖。具體實施方式為了使本發(fā)明的目的、技術方案以及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。在一個實施例中,如圖1所示,提供了一種SRAM型FPGA的故障注入方法,本實施例以該方法應用于計算機為例進行說明,該計算機上運行有一種應用程序,通過該程序來該實現(xiàn)SRAM型FPGA的故障注入方法。該方法包括以下步驟:S102:獲取待測FPGA的初始配置文件。FPGA,即現(xiàn)場可編程門陣列,用戶可根據(jù)現(xiàn)場的實際情況,在與FPGA連接的輸入裝置上輸入用戶設計電路的需求,F(xiàn)PGA自動根據(jù)用戶需求設計電路,并生成改設計電路對應的初始配置文件。S104:獲取初始配置文件中的使用中邏輯資源,并確定使用中邏輯資源對應可配置存儲單元的配置文件位置。FPGA中所含的資源非常豐富,包括基本的邏輯單元,DSP資源和塊RAM等。使用中邏輯資源是指根據(jù)用戶需求設計的電路中所使用到的FPGA中的邏輯資源。可配置存儲單元包括BRAM(BlockRandomAccessMemory塊隨機存取存儲器)、LUT(Look-Up-Table,查找表)和觸發(fā)器等中的至少一種。在具體的實施方式中,用戶通過參考用戶手冊,對初配置文件內(nèi)容格式進行分析,分析出初始配置文件中的使用中邏輯資源,以及使用中邏輯資源對應可配置存儲單元的配置文件位置并輸入到運行有應用程序的計算機中,從而計算機獲取到初始配置文件中的使用中邏輯資源,并確定使用中邏輯資源對應可配置存儲單元的配置文件位置。S106:確定故障注入位置,故障注入位置與可配置存儲單元的配置文件位置對應。本實施方式中,將可配置存儲單元的配置文件位置作為故障注入位置。在具體的實施方式中,可將一種類型的可配置存儲單元作為故障注入對象,用于模擬單位翻轉(zhuǎn)故障?;蛘邔⒍喾N類型的可配置存儲單元作為故障注入對象,用于模擬多位翻轉(zhuǎn)故障。S108:翻轉(zhuǎn)故障注入位置的配置比特位得到故障注入配置文件。具體的,根據(jù)與故障注入位置對應的可配置存儲單元,查找獲取可配置存儲單元的配置比特位,得到故障注入位置對應的配置比特位。一種實施方式中,某一故障注入位置對應的可配置存儲單元的配置比特位如圖2所示。將如圖2所示的配置比特位翻轉(zhuǎn)得到的故障配置文件如圖3所示。S110:將故障注入配置文件下載到待測FPGA中。具體的,將故障配置文件通過JTAG(JointTestActionGroup;聯(lián)合測試工作組)下載到SARM型FPGA中。該實施方式的SRAM型FPGA的故障注入方法,通過對FPGA的初始配置文件中進行分析得到使用中邏輯資源,且僅對使用中的邏輯資源進行故障注入。單粒子翻轉(zhuǎn)只有發(fā)生在使用中的邏輯資源上時,才可能對FPGA正常運行產(chǎn)生影響。該SRAM型FPGA的故障注入方法,無需對FPGA的全部位置進行故障注入,通過僅對使用中的邏輯資源進行故障注入,能夠提高SRAM型FPGA的故障注入效率,并且,測試人員根據(jù)故障注入的反饋能夠快速地評價故障對FPGA功能是否有影響。在其中一個實施例中,步驟S108包括:翻轉(zhuǎn)故障注入位置中一種類型的可配置存儲單元的配置比特位得到故障注入配置文件??膳渲么鎯卧ǘ喾N類型,例如,BRAM(BlockRandomAccessMemory塊隨機存取存儲器)、LUT(Look-Up-Table,查找表)和觸發(fā)器等。通過翻轉(zhuǎn)一種類型的可配置存儲單元的配置比特位,能夠模擬SARM型FPGA的單位翻轉(zhuǎn)故障。在其中一個實施例中,步驟S108包括:分別翻轉(zhuǎn)故障注入位置中多種類型的可配置存儲單元的配置比特位得到故障注入配置文件。通過翻轉(zhuǎn)多種類型的可配置存儲單元的配置比特位,能夠模擬SARM型FPGA的多位翻轉(zhuǎn)故障。在其中一個實施例中,如圖4所示,在步驟S110之后,還包括:S112:運行FPGA以驗證FPGA是否失效并得到驗證結(jié)果。通過運行注入了故障注入配置文件的FPGA以驗證配置的注入的故障是否引起FPGA失效。具體的,驗證結(jié)果包括失效和未失效以及具體的失效模式。不同的故障注入位置以及不同故障注入位置對應的可配置存儲單元的類型得到的失效模式可能相同。S114:判斷故障注入位置對應的配置比特位是否全部被翻轉(zhuǎn)。若是,則執(zhí)行步驟S116;若否,則返回步驟S108。在本實施方式中,確定的故障注入位置有多個。每次翻轉(zhuǎn)一個或一組故障注入位置對應的可配置存儲單元的配置比特位。在每次運行注入了故障配置文件的待測FPGA后,判斷與故障注入位置對應的配置比特位是否全部被翻轉(zhuǎn)。當判斷為否時,返回步驟S108以逐一翻轉(zhuǎn)故障注入位置的配置比特位并得到對應的故障注入配置文件。S116:根據(jù)驗證結(jié)果、故障注入位置和故障注入位置對應的可配置存儲單元的類型確定失效模式。具體的,單位翻轉(zhuǎn)注入和多位翻轉(zhuǎn)注入確定失效模式的方法不同。以單位翻轉(zhuǎn)注入為例,假設用戶使用的內(nèi)部邏輯資源的容量為l,共有m個可配置存儲單元類型,產(chǎn)生n種失效模式,根據(jù)單位翻轉(zhuǎn)注入位置、故障注入位置對應的可配置存儲單元的類型以及故障注入引導起的失效模式進行總結(jié),得到的結(jié)果如表1所示。表1單位翻轉(zhuǎn)故障定位注入結(jié)果單位翻轉(zhuǎn)注入位置可配置存儲單元的類型是否有影響失效模式單位翻轉(zhuǎn)1類型1是/否失效模式1單位翻轉(zhuǎn)2類型2是/否失效模式2…………單位翻轉(zhuǎn)l類型m是/否失效模式n根據(jù)表1,可以計算得到各種失效模式(FailureModei,F(xiàn)Mi,1≤i≤n)對應的內(nèi)部邏輯資源數(shù)量,NFMi。進一步計算得到FMi在用戶邏輯資源中的比例因子,即失效因子αFMi:αFMi=NFMi/Ntotal其中,Ntotal為內(nèi)部邏輯資源的總?cè)萘?。以多位翻轉(zhuǎn)為例,依據(jù)用戶需求,確定多位翻轉(zhuǎn)故障注入組合,假設其數(shù)量為x,對應的可配置存儲單元類型組合為y,產(chǎn)生z種失效模式。依據(jù)多位翻轉(zhuǎn)注入位置、翻轉(zhuǎn)位置所在可配置存儲單元的類型(BRAM、LUT、觸發(fā)器等及其組合)、故障注入引導起的失效模式進行總結(jié),如表2所示。表2多位翻轉(zhuǎn)故障定位注入結(jié)果多位翻轉(zhuǎn)注入位置可配置存儲單元的類型是否有影響失效模式多位翻轉(zhuǎn)組合1類型組合1是/否失效模式1多位翻轉(zhuǎn)組合2類型組合2是/否失效模式2…………多位翻轉(zhuǎn)組合x類型組合y是/否失效模式z上述的SRAM型FPGA的故障注入方法,能夠全面評價SRAM型FPGA的抗單粒子翻轉(zhuǎn)性能,全面揭示失效模式,發(fā)現(xiàn)抗單粒子翻轉(zhuǎn)薄弱環(huán)節(jié)。也可使用該方法獲得的定位失效地點以便對器件進行針對性加固。在另一種實施方式中,步驟S104包括:確定初始配置文件中的用戶邏輯資源;區(qū)分用戶邏輯資源中的未使用邏輯資源和使用中邏輯資源;確定使用中邏輯資源對應可配置存儲單元的配置文件位置。該方法通過區(qū)分用戶使用的邏輯資源和未使用的內(nèi)部邏輯資源,精準定位用戶使用的邏輯資源,并用用戶邏輯資源中未使用邏輯資源和使用中邏輯資源進行區(qū)分,從而精準地定位使用中邏輯資源中可配置存儲單元以及可配置存儲單元的位置,然后針對性地在可配置存儲單元中進行故障注入,能夠提高SRAM型FPGA的故障注入效率。本發(fā)明還提供一種SRAM型FPGA的故障注入裝置,如圖5所示包括:初始配置獲取模塊102,用于獲取待測FPGA的初始配置文件。分析模塊104,用于獲取初始配置文件中的使用中邏輯資源,并確定使用中邏輯資源對應可配置存儲單元的配置文件位置。故障位置確定模塊106,用于確定故障注入位置,故障注入位置與可配置存儲單元的配置文件位置對應。翻轉(zhuǎn)模塊108用于翻轉(zhuǎn)故障注入位置的配置比特位得到故障注入配置文件。故障注入模塊110,用于將故障注入配置文件下載到待測FPGA中。該實施方式的SRAM型FPGA的故障注入裝置,通過對FPGA的初始配置文件中進行分析得到使用中邏輯資源,且僅對使用中的邏輯資源進行故障注入。單粒子翻轉(zhuǎn)只有發(fā)生在使用中的邏輯資源上時,才可能對FPGA正常運行產(chǎn)生影響。該SRAM型FPGA的故障注入裝置,無需對FPGA的全部位置進行故障注入,通過僅對使用中的邏輯資源進行故障注入,能夠提高SRAM型FPGA的故障注入效率,并且,測試人員根據(jù)故障注入的反饋能夠快速地評價故障對FPGA功能是否有影響。在另一個實施例中,翻轉(zhuǎn)模塊108,用于翻轉(zhuǎn)故障注入位置中一種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在另一個實施例中,翻轉(zhuǎn)模塊,用于分別翻轉(zhuǎn)故障注入位置中多種類型的可配置存儲單元的配置比特位得到故障注入配置文件。在另一個實施例中,如圖6所示,還包括驗證模塊112、判斷模塊114和失效分析模塊116,驗證模塊112,用于運行FPGA以驗證FPGA是否失效并得到驗證結(jié)果。判斷模塊114,用于判斷與故障注入位置對應的配置比特位是否全部被翻轉(zhuǎn)。失效分析模塊116,用于當故障注入位置對應的配置比特位全部被翻轉(zhuǎn)時,根據(jù)驗證結(jié)果、故障注入位置和故障注入位置對應的可配置存儲單元的類型確定失效模式。翻轉(zhuǎn)模塊108,還用于當故障注入位置對應的配置比特位未全部被翻轉(zhuǎn)時,翻轉(zhuǎn)下一故障注入位置的配置比特位得到故障配置文件。在另一個實施例中,分析模塊,包括:用戶獲取資源獲取模塊1041、區(qū)分模塊1042和存儲單元獲取模塊1043。用戶獲取資源獲取模塊1041,用于確定初始配置文件中的用戶邏輯資源;區(qū)分模塊1042,用于區(qū)分用戶邏輯資源中的未使用邏輯資源和使用中邏輯資源。存儲單元獲取模塊1043,用于確定使用中邏輯資源對應可配置存儲單元的配置文件位置。該裝置通過區(qū)分用戶使用的邏輯資源和未使用的內(nèi)部邏輯資源,精準定位用戶使用的邏輯資源,并用用戶邏輯資源中未使用邏輯資源和使用中邏輯資源進行區(qū)分,從而精準地定位使用中邏輯資源中可配置存儲單元以及可配置存儲單元的位置,然后針對性地在可配置存儲單元中進行故障注入,能夠提高SRAM型FPGA的故障注入效率。以上實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。當前第1頁1 2 3