<b id="nqvhe"><source id="nqvhe"><menu id="nqvhe"></menu></source></b>

    1. <source id="nqvhe"></source><xmp id="nqvhe"></xmp>
      1. <b id="nqvhe"></b>
        <u id="nqvhe"></u>
      2. <b id="nqvhe"><address id="nqvhe"><ol id="nqvhe"></ol></address></b>
      3. <source id="nqvhe"></source>
        <xmp id="nqvhe"><video id="nqvhe"></video></xmp>
          <b id="nqvhe"></b>
          <u id="nqvhe"></u>
        1. ABB 2608
          關注中國自動化產業發展的先行者!
          2026具身智能·邊緣計算賦能新質智造峰會
          人工智能+制造融合創新研討會
          2026中國自動化產業年會
          2025工業安全大會
          OICT公益講堂
          當前位置:首頁 >> 案例 >> 案例首頁

          案例頻道

          核電廠SRAM型FPGA單粒子翻轉仿真測試方法研究
          SRAM型FPGA在核級DCS系統中的應用日益廣泛,而核電廠環境中的高能粒子輻射會對FPGA產生單粒子翻轉(SEU)的負面影響。根據IEC62566標準要求,需要對SEU防范設計進行測試,而如何進行SEU故障注入成為測試的難點。本文提出了一種應用于核電廠FPGA器件的SEU測試方法,并基于ICAP(InternalConfigurationAccessPort)技術實現了一種SEU故障注入方法。相較于其他故障注入方法,該方法不需要增加額外設備,成本低,并具有高可控性和可觀測性,是一種經濟有效的故障注入仿真測試技術。

          ★北京廣利核系統工程有限公司高玉斌,武方杰

          關鍵詞:單粒子翻轉;FPGA;ICAP;故障注入;仿真

          1 引言

          目前應用于核電廠的FPGA器件日益增多,而隨著FPGA工藝技術的不斷發展,小尺寸、高密度及低電壓的FPGA芯片越來越多地應用于核電廠數字化儀控系統。根據不同工藝,FPGA芯片可分為SRAM型FPGA、Flash型FPGA和反熔絲FPGA。由于具有密度高、可配置性好、成本低等優勢,SRAM型FPGA被廣泛應用到核電廠、航天、通信等領域。

          在不同應用場景,尤其是核電廠應用場景下,SRAM型FPGA不可避免地會在高能粒子輻射環境下工作,高能量粒子會滲透到FPGA內部[1]。當高能粒子與存儲器PN節進行碰撞時,其運動路徑上形成瞬態電流,當電流值達到一定程度后會改變PN節的導通和截止狀態,引起邏輯狀態翻轉,產生單粒子翻轉,如圖1所示。

          image.png 

          圖1 單粒子翻轉示意圖

          SRAM型FPGA內部包含配置存儲區、查找表存儲區、塊存儲區和觸發器,如圖2所示。

          (1)配置存儲區(Configuration memory):用于配置FPGA芯片內部電路功能;

          (2)塊存儲區(Block memory):FPGA內部自帶的用于存儲數據的RAM塊;

          (3)分布式存儲區(Distributed memory):存在于配置邏輯塊(Configuration Logic Blocks,CLB)的LUT中,用于存儲LUT運行時的數據;

          (4)觸發器(Flip-Flop):存在于CLB的觸發器中。

          image.png 

          圖2 FPGA內部存儲區結構示意圖

          在四種存儲區類型中,配置存儲區通常占整個存儲區資源的90%以上,美國LosAlamos試驗室和Xilinx公司對FPGA的SEU事件中所占比重[2]。如表1所示,從比例上看四種存儲區對SEU最敏感的為配置存儲區。因而從SEU敏感性的角度考慮,對SEU的防范主要針對配置存儲區進行防范,SEU的故障注入也主要針對配置存儲區,對其進行SEU測試。

          表1 FPGA各個類型存儲器在SEU截面比重

          image.png

          本文分析了4種行業內常用的SEU故障注入方法,提出了一種通過XILINX公司提供的SEM核進行SEU故障軟注入的方法。該方法較其他方法具有成本低、可控性強、易觀測的特點,是一種適合核電廠SRAM型FPGA的經濟且有效的SEU故障注入方法。

          2 SEU故障注入方法分析

          模擬單粒子翻轉的故障,一般采用以下四種方式,如表2所示:

          (1)現場運行試驗:將產品放置到現場運行環境,在真實的環境中進行測試。該方法可真實全面體現SEU環境,能夠實現故障注入,覆蓋SEU故障檢測和處理功能。測試方法不會改變設計,對產品和系統功能沒有影響,但需要在現場進行長期的試驗,現場很難提供試驗條件,試驗成本很高,也無法控制一定出現SEU失效,不可執行。

          (2)模擬試驗:在專門的試驗室或試驗機構中模擬高能粒子轟擊試驗。該方法能夠覆蓋SEU故障檢測和處理功能,不會改變被測對象的設計,對產品和系統功能沒有影響,但需要獲取現場高能粒子數據,制定試驗指標,并且需要尋找具有資質和能力的試驗室,支付較高的試驗費用。因此,該方案技術指標難度大、成本高。

          (3)基于故障注入硬件平臺方法[3]:自開發一個硬件試驗平臺,將集成FPGA芯片放置到硬件平臺上的被測FPGA位置,用于控制整個故障注入過程的FPGA或MCU通過select-MAP接口將有單bit翻轉故障的下裝文件下載到被測FPGA內,模擬SEU故障。該方法能夠覆蓋SEU故障檢測和處理功能,但會改變FPGA芯片周邊的運行電路,需要設計模擬SEU故障的硬件平臺,并且通過select-MAP接口注入單bit翻轉故障的邏輯程序,因此較為復雜,成本高、難度大。故障注入硬件平臺示意圖如圖3所示。

          image.png 

          圖3 故障注入硬件平臺示意圖

          (4)基于IP核的故障注入仿真法:XILINX公司的SEM(Soft Error Mitigation)IP核,除了提供SEU故障檢測功能外,為便于測試,也提供了SEU故障注入接口,以保證當發生SEU故障時故障檢測和故障處理功能的合理性。該方法能夠實現SEU故障注入,覆蓋SEU故障檢測和處理功能的測試,并且成本低,可操作性強,但需要使能故障注入功能,同時需要增加測試代碼(電路)進行IP核的狀態轉換和故障注入。該方法雖然改變了被測對象的設計,但可以通過將測試電路固化到未使用的空白電路處,實現與被測對象的獨立。同時,測試電路僅增加了對正常運行時IP核不使用的故障注入接口,可保證對正常運行邏輯的功能和時序不產生影響。

          表2 SEU故障注入方法比較分析表

          image.png 

          通過對四種方法的比較分析可以看出,雖然基于IP核的故障注入仿真法是在仿真環境下進行測試,但由于SEU的失效機理明確,失效表現確定,故仿真環境與實際無差別。同時考慮到該方法易于觀測,可控性強,成本低,難度低,故本研究采用基于XILINX公司提供的SEM核的故障注入仿真法進行SEU的故障注入,執行SEU故障檢測和處理功能的測試。

          2 SEU故障注入仿真方法

          本文提出的SEU故障注入仿真方法,基于XILINX公司的SEM核實現如圖4所示。SEM核是針對配置存儲區發生SEU故障時進行故障檢測、故障注入、故障糾正和故障分類。四個功能除故障檢測外,其他三個功能均可選。SEM核通過ICAP接口不間斷地周期掃描FPGA的配置存儲區,檢測配置存儲單元內容和初始值是否一致,如果不一致進行SEU故障報警;如果使能故障注入功能,則會提供故障注入接口;如果使能故障糾錯,會針對單個bit的SEU故障進行修正;如果使能分類功能,會將在被用戶使用的電路發生SEU還是未被使用的空白電路發生SEU故障進行分類報警。本方法通過SEM核的故障注入接口,注入SEU故障,并通過故障檢測標志位顯示故障注入成功。

          image.png 

          圖4 故障注入仿真示意圖

          2.1 SEU故障注入設計架構

          基于SEM核的SEU故障注入方法主要包括:SEM控制內核模塊、ICAP配置接口模塊、RS232串口控制模塊、SEU故障注入控制模塊和狀態輸出模塊,如圖5所示。

          image.png 

          圖5 故障注入設計架構圖

          (1)SEM控制內核模塊:檢測和糾正因電離輻射導致FPGA內部配置存儲區的非預期狀態翻轉,共有六組接口:

          ·故障注入接口:通過該接口注入要翻轉FPGA內部的配置存儲區的任意配置位的地址信息。

          ·ICAP接口:通過該接口訪問FPGA內部的配置存儲區,修改配置存儲區相應的配置位,也通過該接口掃描配置存儲區,以使SEM控制內核進行是否翻轉的判定。

          ·FRAME_ECC接口:當SEM控制內核使能故障糾正功能時,作為接收故障糾正原語模塊FRAME_ECCE2輸出的故障狀態信息,本方法只使能SEM控制內核的SEU故障檢測和故障注入功能,故不使用該接口。

          ·fetch配置幀接口:主要是為SEM控制內核提供一個外部接口,在故障糾錯或故障分類時獲取外部FLASH或其他設備存儲的配置幀。本方法只使能SEM控制內核的SEU故障檢測和故障注入功能,故不使用該接口。

          ·監視接口:主要是提供監視和修改SEM控制內核狀態的接口,本方法使用該接口,在SEU故障注入過程中進行內核狀態的轉變。

          ·狀態顯示接口:主要是將SEM控制內核監測SEU故障的必要狀態信息通過該接口輸出,供用戶使用。

          (2)SEU故障注入控制模塊:將需要翻轉的配置存儲區的位置數據轉化為故障注入接口時序,實現SEU故障數據的注入。

          (3)ICAP配置接口模塊:讀取FPGA內部配置存儲區的配置數據,并轉化為ICAP接口傳遞給SEM控制內核,實現配置存儲區的掃描。

          (4)RS232串口控制模塊:實現RS232接口數據轉化為SEM控制內核的監視接口數據,對SEM控制內核的狀態轉化進行控制和監視。

          (5)SEU故障狀態顯示模塊:采集SEM控制內核產生的SEU故障狀態信息。

          通過RS232串口控制整個SEU故障注入的命令順序,以及SEU故障注入,實現故障注入和故障檢測的自動測試。

          2.2 SEM控制內核模塊設計

          SEM控制內核的設計通過調用XILINX提供的IP核實現,在VIVADO工具的PROJECT_MANAGER中的IPCatalog,選擇SoftError Mitigation的IP核進行配置。為了能夠控制注入SEU故障,需使能故障注入功能,這樣生成的SEM控制內核才會提供SEU故障注入接口。該IP核使用的時鐘頻率在8~100MHz之間,頻率越快完成SEU故障檢測的時間越短[4]。SEM控制內核配置示意圖如圖6所示。

          image.png 

          圖6 SEM控制內核配置示意圖

          2.3 ICAP配置接口模塊設計

          SEM控制內核無法直接掃描和監視FPGA內部配置存儲區。為了監視配置存儲區的配置位是否發生跳變,以及將需要注入的SEU故障數據設置到正確的配置位上,通過調用可訪問配置存儲區的ICAPE2原語實現對FPGA內部配置存儲區的訪問。

          ICAPE2#(

          .DEVICE_ID(32'hFFFFFFFF),

          .SIM_CFG_FILE_NAME("NONE"),

          .ICAP_WIDTH("X32")

          )

          example_icap(

          .O(icap_o),

          .CLK(icap_clk),

          .CSIB(icap_csib),

          .I(icap_i),

          .RDWRB(icap_rdwrb)

          );

          2.4 SEU故障狀態顯示模塊設計

          該模塊采集SEM控制內核監測出的故障信息進行顯示,包括:

          (1)心跳信號(status_heartbeat):表明SEM控制內核處在運行中還是停止運行。在SEU故障發生在SEM控制內核或時鐘資源上導致SEM控制內核無法工作的場景下,可通過該信號進行表征。

          (2)初始化狀態信號(status_initialization):表征SEM控制內核處在初始化狀態。

          (3)觀測狀態信號(status_observation):表征SEM控制內核處在觀察狀態(正常工作狀態)。

          (4)糾錯狀態信號(status_correction):表征SEM控制內核在故障糾正狀態。

          (5)故障分類信號(status_classification):表征SEM控制內核對識別的故障進行分類。

          (6)故障注入信號(status_injection):表征SEM控制內核在故障注入過程中。

          (7)基本位標志信號(status_essential):表征翻轉的配置位為基本位。

          (8)不可糾錯信號(status_uncorrectable):表征SEM控制內核不能糾錯成功的標志。

          2.5 SEU故障注入模塊設計

          故障注入接口包括一個選通使能信號inject_strobe和輸入數據總線inject_address[39:0],實現一個簡單的并行接口。該接口接收四種類型的命令:

          (1)進入空閑狀態命令;

          (2)進入觀察狀態命令;

          (3)在物理幀地址注入故障;

          (4)在線性地址幀注入故障。SEM核為了獲得所需的命令和故障地址,按圖7所示時序實現故障注入。

          image.png 

          圖7 故障注入接口時序圖

          SEU故障注入地址分為兩種:一種是物理幀地址,一種是線性地址。通過注入地址可翻轉相應位置的配置存儲區的配置數據,實現模擬SEU故障。兩種地址類型的格式如圖8和圖9所示。

          物理地址格式:

          image.png 

          圖8 物理地址格式

          其中:

          SS:FPGA內部的SS碼。

          TT:塊類型:00為分布式存儲區、01為塊存儲區、10為配置存儲區。

          H:半地址。

          RRRRR:行地址。

          CCCCCCCCCC:列地址。

          MMMMMMM:鏡像地址,列內幀地址。

          WWWWWWW:字地址。

          BBBBB:bit地址。

          線性地址格式如圖9所示。

          image.png 

          圖9 線性地址格式

          其中:

          SS:FPGA內部的SS碼。

          LLLLLLLLLLLLLLLLL:線性幀地址。

          WWWWWWW:字地址。

          BBBBB:bit地址。

          2.6 RS232串口控制模塊設計

          SEM核可通過監視接口進行內部狀態的轉化。為便于控制,本研究使用簡單的RS232接口實現SEM核內部狀態的跳轉,需要將RS232串行接口時序轉化為SEM核的監視接口時序,如圖10所示。

          image.png 

          圖10 RS232串口控制模塊功能模塊框圖

          3 SEU故障自動測試實現

          本研究通過在FPGA內部增加測試代碼,實現RS232串口控制整個SEU故障注入的命令順序,以及SEU故障注入,完成SEU故障注入和SEM核故障檢測的自動測試。測試代碼流程如圖11所示。

          image.png 

          圖11 SEU故障自動注入流程

          (1)注入I指令:在進行SEU故障注入前,SEM核需要進入IDLE狀態:通過RS232串口控制模塊,在需要注入SEU故障的時刻,在并行數據命令接口上寫入“I”指令對應的73數據,完成SEM核進入IDLE狀態的操作。

          (2)延時:為保證指令注入成功,在寫入指令后適當等待一段時間,比如6000個clk時鐘周期,以保證指令生效,SEM核進入相應狀態。

          (3)注入SEU故障:根據圖7時序,通過有效inject_strobe信號,啟動SEU故障注入模塊。inject_strobe模塊建議持續3個clk時鐘,基于物理幀地址格式寫入需翻轉的配置存儲區單個配置bit位,實現模擬單個配置位發生SEU故障;如果需要測試多個配置位翻轉的情況,則判定是否完成所有配置位的翻轉;如果完成,進入下一步流程,如果未完成,則循環執行其他bit的SEU故障注入。

          (4)注入O指令:為了驗證在注入SEU故障后,SEM核是否能檢測出該故障,需要在故障注入完成后,讓SEM核進入Observation觀察狀態:通過RS232串口控制模塊,在并行數據命令接口上寫入“O”指令對應的79數據,完成SEM核進入Observation觀察的操作。

          (5)狀態采集:SEM核通過ICAP配置接口模塊周期性掃描配置存儲區,一旦SEU故障注入成功,通過狀態顯示接口,將檢測到單粒子翻轉的結果通過有效基本位標志信號(status_essential)表征,并傳遞到SEU故障狀態顯示模塊進行檢測結果的采集;如果有效,表明SEM核檢測出配置存儲區發生了單粒子翻轉,否則該狀態信號無效。

          該方法通過上述過程自動實現某核安全級儀控系統FPGA設計的SEU故障注入和SEM核故障檢測功能的測試,識別出產品無法檢測部分功能SEU失效,經過分析發現對配置存儲區掃描的ICAP接口模塊時序錯誤。在正確修改接口時序后,該方法可檢測所有配置存儲區的SEU故障,保證了產品對SEU故障檢測設計的正確性,提升了產品可靠性。

          4 結論

          本文通過分析FPGA中的SEU失效機理和比較四種SEU故障注入方法,設計了一種基于SEM控制內核的自動注入SEU故障的測試方法,為核電廠SRAM型FPGA防范SEU故障的設計提供了一種簡單且可控性較強的測試方法。該方法可應用于核電廠SRAM型FPGA的SEU測試中,具有較高的參考價值。

          作者簡介:

          高玉斌(1977-),男,高級工程師,碩士,現就職于北京廣利核系統工程有限公司,主要從事核電廠數字化儀控系統FPGA測試與驗證技術研究工作。

          參考文獻:

          [1] 邱金娟, 徐宏杰, 潘雄, 等. SRAM型FPGA單粒子翻轉測試及加固技術研究[J]. 電光與控制, 2011, 18 (8) : 84 - 88.

          [2] GAFFREY P, CAFFREY M, ZIMMERMAN J. Consequences and Categories of SRAM FPGA Configuration SEUs[C]//Proceedings of Military and Aerospace Programmable Logic Devices International Conference. Washington DC, USA, 2003.

          [3] 王月玲, 薛海衛, 郭剛, 等. 一種用于評估抗輻射DSP單粒子翻轉的試驗方法[J]. 微電子學與計算機, 2018, 35 (10) : 53 - 57.

          [4] XILINX. Soft Error Mitigation Controller V4.1 logiCORE IP Product Guide[Z]. 2022.

          摘自《自動化博覽》2025年12月刊

          熱點新聞

          推薦產品

          x
          • 在線反饋
          1.我有以下需求:



          2.詳細的需求:
          姓名:
          單位:
          電話:
          郵件:

            <b id="nqvhe"><source id="nqvhe"><menu id="nqvhe"></menu></source></b>

            1. <source id="nqvhe"></source><xmp id="nqvhe"></xmp>
              1. <b id="nqvhe"></b>
                <u id="nqvhe"></u>
              2. <b id="nqvhe"><address id="nqvhe"><ol id="nqvhe"></ol></address></b>
              3. <source id="nqvhe"></source>
                <xmp id="nqvhe"><video id="nqvhe"></video></xmp>
                  <b id="nqvhe"></b>
                  <u id="nqvhe"></u>
                1. 国产精品高清视亚洲精品