<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 抗SEU存儲器的設計的FPGA實(shí)現

抗SEU存儲器的設計的FPGA實(shí)現

作者: 時(shí)間:2010-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/151322.htm

  3.1 TMR模塊

  在TMR工作模式下可完成數據的寫(xiě)入操作和讀取操作中的冗余判決。如果在讀取過(guò)程中發(fā)現有一片RAM中的數據與其它三片不同,則對該片RAM進(jìn)行正確數據的回寫(xiě);如果發(fā)現三片RAM中的數據都不相同,則產(chǎn)生中斷信號。

  3.2 擴展漢明碼模塊

  在擴展漢明碼工作模式下,當寫(xiě)入數據時(shí),則對其進(jìn)行編碼;當讀取數據時(shí),則對其進(jìn)行相應的解碼,并判斷數據是否出錯。如果一位錯則自動(dòng)回寫(xiě)正確值,如果兩位以上的錯誤,則產(chǎn)生中斷信號。

  3.3 模式選擇模塊

  在該模塊內部設置有一個(gè)32位的模式配置寄存器。通過(guò)給模式配置寄存器的低18位進(jìn)行預先置數,可以設置檢錯糾錯電路的工作模式,同時(shí)也就設置了RAM的內存配置情況。根據CPU的不同應用要求,模式控制模塊可以讓檢錯糾錯電路在擴展漢明碼方式與TMR方式二者之間進(jìn)行靈活的切換。

  3.4 控制邏輯模塊

  該電路模塊可根據電路所處的檢錯糾錯模式來(lái)控制相應的讀寫(xiě)信號和內存片選信號,以便正確訪(fǎng)問(wèn)RAM內容。

  4 的編程與

  接下來(lái)對每個(gè)模塊在過(guò)程的具體考慮進(jìn)行重點(diǎn)介紹。

  4.1 TMR模塊

  對于TMR模塊的較為簡(jiǎn)單。需要特別指出的是,考慮到對電路有效性的驗證,在寫(xiě)通道上另外添加了錯誤注入模塊。圖4所示是其框圖,圖中,ctrl_err為錯誤注入控制信號,當ctrl_err為0時(shí),表示不注入錯誤;當ctrl_err為1時(shí),表示注入錯誤。這樣可以通過(guò)對ct-rl_err信號的控制來(lái)效應的模擬。add_err[7..0]為注錯數據信號。將add_err的低四位用0000~1111表示,可用于表示給數據添加錯誤的位置,它的高四位甩XX01~XX11表示,則可分別表示要給RAM組中的某個(gè)RAM添加錯誤。

  

  4.2 擴展漢明碼模塊

  擴展漢明碼模塊的設計主要包括編碼模塊、伴隨式生成模塊以及差錯校驗模塊等。編碼模塊可使用式(1)進(jìn)行編碼,可生成r個(gè)校驗位。并將它們依次添加到碼元序列的第2i-1(其中i=0,…,r-1)個(gè)位置上。伴隨式生成模塊使用式(2)進(jìn)行解碼,可對應生成校驗子S。差錯控制模塊可根據生成的校驗子S來(lái)判斷數據是否出錯,以及出錯的位數,并用sef與def表示。如果數據沒(méi)有出現錯誤,則直接送出;如果數據中有一位出現錯誤,則對其進(jìn)行回寫(xiě),同時(shí)將修正的數據送出;如果兩位出現錯誤,則輸出中斷信號int。

  需要注意的是,擴展漢明碼模式下的地址信號需要進(jìn)行額外的處理。由于本設計采用了128K×16bit的SRAM芯片,它有17位地址信號。但是,正如上面提到過(guò)的,SRAM芯片組中將有4KB的存儲空間工作于TMR模式,還有248KB的存儲空間將工作于擴展漢明碼模式,而248KB的空間需要18位地址信號,這就要求有一個(gè)對地址信號進(jìn)行變換的模塊。當地址小于4KB 時(shí),電路工作于TMR模式下而無(wú)需對地址進(jìn)行變換;當地址大于等于4 KB同時(shí)小于128 KB時(shí),電路工作于擴展漢明碼模式,地址信號會(huì )選中第一個(gè)124 Kx(16+8)bit的空間,此時(shí)也無(wú)需地址變換;而當地址大于等于128 KB,電路也工作于擴展漢明碼模式下,此時(shí)地址信號應選中第二個(gè)124 Kx(16+81bit的空間,此時(shí)則應將地址值加上4KB,然后取新的地址的低17位加到第二個(gè)124 Kx (16+8) bit的存儲空間上即可。

  在上述TMR和擴展漢明碼模塊的設計中,對出錯數據的回寫(xiě)是設計中的重點(diǎn)和難點(diǎn),主要應考慮是否回寫(xiě)和何時(shí)回寫(xiě)兩個(gè)問(wèn)題。這兩個(gè)問(wèn)題可由時(shí)序控制模塊來(lái)解決。它主要根據CPU的控制信號,適時(shí)的發(fā)出錯誤標示輸出使能信號flag_oe,從而改變CPU對RAM的讀寫(xiě)狀態(tài),完成

  修正數據的正確回寫(xiě)。

  另外,電路中的錯誤標示信號對整體設計的穩定性至關(guān)重要。為了保證錯誤標示信號的穩定,可在雙向傳輸門(mén)B的讀入端加一個(gè)鎖存器,鎖存器的鎖存使能端也可由時(shí)序控制模塊的flag_latch來(lái)控制。

  4.3 模式選擇模塊

  模式選擇模塊用于接收來(lái)自CPU的配置信號config和片選信號cs_fpga,以便將32位的配置數據寫(xiě)入配置寄存器。該寄存器的低18位數據為模式配置數據,地址信號通過(guò)與該數據進(jìn)行比較,可使小于該地址的空間工作于TMR模式,大于該地址的存儲空間工作于擴展漢明碼模式。

  本電路采用軟件故障注入法來(lái)進(jìn)行電路的有效性驗證,所以,在電路設計中,可將模式配置寄存器的其余14位用于注入外部干擾數據,并將其連接到ctrl_err與add_err信號,以用來(lái)進(jìn)行軟件故障的注入,模擬對電路的影響。

  4.4 控制邏輯模塊

  該模塊可接收模式選擇模塊的模式信號mode,以對TMR模塊和擴展漢明碼模塊輸出的讀寫(xiě)信號和片選信號進(jìn)行選擇,然后輸出到RAM芯片的引腳上去,從而CPU對RAM的正確訪(fǎng)問(wèn)。尤其是當電路工作于擴展漢明碼模式時(shí),還需根據地址信號判斷當前對哪個(gè)124 Kx (16+8)bit的存儲空間片選有效。其具體電路如圖5所示。

  



關(guān)鍵詞: 實(shí)現 FPGA 設計 存儲器 SEU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>