Microblaze是32位/64位 RISC軟核處理器,可以用作微處理器、實時處理器和應(yīng)用處理器(Linux+MMU)。Microblaze作為FPGA的軟核,搭建硬件系統(tǒng)時有豐富的IP資源,軟件開發(fā)則有配套的SDK軟件。 目前Microblaze在工業(yè)、醫(yī)療、汽車、消費以及通信市場有著廣泛的應(yīng)用。
Microblaze有這么多優(yōu)點,是否可以用在宇航市場上呢?空間環(huán)境中,F(xiàn)PGA會受到單粒子效應(yīng)影響,Microblaze是使用FPGA內(nèi)部的資源來實現(xiàn)的,可能會發(fā)生功能中斷或程序跑飛等情況,因此需要對Microblaze進(jìn)行軟件層面的加固來降低SEE的影響。
Microblaze最小系統(tǒng)的組成包括Clock Wizard,Processor System Reset,Microblaze IP,Data Local Memory Bus, Instruction Local Memory Bus,Data LMB BRAM Controller, Instruction LMB BRAM Controller和Block Memory。 今天貧道以Microblaze最小系統(tǒng)為例,簡單介紹一下PG268 Xilinx方案(Fault torelant和Fail safe),然后著重介紹高可靠加固方案、方案在TMR工具的實現(xiàn)和故障注入驗證結(jié)果,如圖1所示:
圖1 Microblaze最小系統(tǒng)
01
Xilinx 加固方案
Fault-tolerant Type是對原系統(tǒng)整體復(fù)制兩份,并在關(guān)鍵的Data LMB Controller和Instruction LMB Controller增加判決器,并對IO接口增加判決器。假如單路MB由于SEE發(fā)生軟錯誤,那么通過判決器能夠把軟錯誤屏蔽掉。Fault-tolerant Type優(yōu)點是實現(xiàn)簡單,只需要利用好TMR Manager的Run block Automation功能,就能一鍵實現(xiàn)加固。Fault-tolerant Type屬于粗粒度加固,因此缺點是可靠性提升有限。
圖2 Fault-tolerant默認(rèn)框圖
圖3 TMR Voter插入位置 值得一提的是Fault-tolerant Type默認(rèn)的方案是對BRAM做TMR,如果BRAM資源受限,那么可以更改設(shè)計對BRAM做ECC。
圖4 Fault-tolerant Type ECC實現(xiàn)
Fail-Safe Type加入了TMR Comparator,實時對三個sub block進(jìn)行比較。當(dāng)某一個sub block發(fā)生異常的時候,另外兩路正常的sub block進(jìn)入到lock step模式。Lock step模式下,一旦發(fā)現(xiàn)兩路sub block數(shù)據(jù)不一致,那么就會進(jìn)入到Fatal stop模式。
Fail-Safe Type的優(yōu)點是可以在lock step模式下,通過APP嘗試進(jìn)行恢復(fù),恢復(fù)成功后重新返回到fault torelant模式。Fail-Safe Type的優(yōu)點也是缺點,APP需要用戶自行開發(fā),設(shè)計比較復(fù)雜。此外如果軟錯誤比較嚴(yán)重,會進(jìn)入到Fatal stop模式,該模式?jīng)]法完成恢復(fù),只能重新加載來解決軟錯誤。
圖5 Fail-Safe Type框圖
圖6 Fail-Safe Type故障模式轉(zhuǎn)換流程
02
高可靠加固方案
高可靠加固方案是把Microblaze當(dāng)做一般的IP,在網(wǎng)表層面采用TMR工具進(jìn)行細(xì)粒度加固。同時考慮Microblaze的特點,對存儲器BRAM進(jìn)行TMR加固或者ECC加固。考慮到TMR或者ECC只能屏蔽錯誤,無法消除錯誤。因此為了更進(jìn)一步提高可靠性,對儲存器采用ECC+回寫刷新,這樣可以消除錯誤。本文只討論Local Memory應(yīng)用場景的加固方案和實現(xiàn),下面將對實現(xiàn)部分做簡要的介紹。
1.1存儲器BRAM ECC實現(xiàn)
Microblaze默認(rèn)的Local Memory結(jié)構(gòu)如下圖所示,需要做的是展開microblaze_0_local_memory。
圖7 MicroblazeLocal Memory
展開microblaze_0_local_memory,可以看到local_memory是由LMB Bus、LMB BRAM Controller和Block Memory組成。
圖8 LocalMemory結(jié)構(gòu)
需要做的是打開LBM BRAM Controller,勾選Error Correction Code。
圖9 LMB BRAM Controller設(shè)置
工具自動實現(xiàn)更改Block Memory屬性,使用Soft方式來實現(xiàn)BRAM的ECCH32-7編解碼。
圖10 Block Memroy ECC參數(shù)設(shè)置
2.1存儲器BRAMECC+自刷新邏輯
默認(rèn)的Local Memroy結(jié)構(gòu)里面,BRAM的兩個端口都被占用住,要想實現(xiàn)自刷新就得更改Local Memroy結(jié)構(gòu)。Microblaze支持復(fù)用DLMB和ILMB的控制器,這樣兩個控制器就共用一個BRAM端口,另一個端口用于自刷新,如下圖所示:
圖11 共享memory結(jié)構(gòu)
開發(fā)的自刷新模塊連接到Freeport上,對BRAM全地址循環(huán)遍歷,讀出數(shù)據(jù)(32bit)和校驗位(7bit)進(jìn)行1bit錯誤糾錯。如果解碼過程出現(xiàn)1bit錯誤,把糾錯后的數(shù)據(jù)回寫到BRAM中。
圖12 自刷新結(jié)構(gòu)
2.2MicroBlaze System TMR實現(xiàn)
TMR工具可以對任意資源設(shè)置屬性,Block Memroy采樣ECC方案,因此屬性設(shè)置為Converge。
圖13 TMR工具Custom模式下參數(shù)自定義設(shè)置 TMR工具可以統(tǒng)計出加固前的資源消耗,以及預(yù)估加固后的資源消耗,便于設(shè)計師進(jìn)行評估和迭代設(shè)計。
圖14TMR工具加固前資源統(tǒng)計和加固后資源預(yù)估
加固完成后,TMR工具可以統(tǒng)計出準(zhǔn)確的資源使用情況。
圖15TMR工具加固后資源統(tǒng)計
TMR工具自動創(chuàng)建加固后工程并自動添加約束文件。
圖16 TMR PSOT工程
執(zhí)行Implementation和Generate Bitstream。
圖17 POST工程完成IMPL和BITGEN
2.3故障注入驗證
Microblaze System采用TMR進(jìn)行加固可靠性得到提升,TMR加固推薦采用DTMR/GTMR加固方式。Microblaze System中存儲器部分選擇的是ECC加固,需要針對Block Memroy進(jìn)行故障注入驗證。
圖18 BRAM故障注入測試 故障注入驗證結(jié)果如下:
1)存儲區(qū)不加固,隨機(jī)注入70~100bit錯,系統(tǒng)異常
2)存儲區(qū)ECC糾錯,隨機(jī)注入700~800bit錯,系統(tǒng)異常
3)存儲區(qū)ECC糾錯+回寫,隨機(jī)注入10000bit錯,系統(tǒng)仍正常工作 Microblaze采樣高可靠方案進(jìn)行加固后可靠性得到提升,采用ECC糾錯+自刷新措施可靠性最高。軟核除了在FPGA內(nèi)部進(jìn)行軟加固外,還應(yīng)該采用外部Scrubber來消除CRAM的累積錯誤,這樣經(jīng)過多種加固措施后的軟核應(yīng)該能滿足大部分的空間應(yīng)用需求。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1645文章
22020瀏覽量
617070 -
sram
+關(guān)注
關(guān)注
6文章
784瀏覽量
115817 -
微處理器
+關(guān)注
關(guān)注
11文章
2378瀏覽量
84055 -
TMR
+關(guān)注
關(guān)注
5文章
95瀏覽量
19441 -
BRAM
+關(guān)注
關(guān)注
0文章
41瀏覽量
11277
原文標(biāo)題:論SRAM型FPGA軟核Microblaze抗單粒子加固
文章出處:【微信號:國產(chǎn)FPGA之家,微信公眾號:國產(chǎn)FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
單粒子翻轉(zhuǎn)引起SRAM型FPGA的故障機(jī)理闡述

軟錯誤防護(hù)技術(shù)在車規(guī)MCU中應(yīng)用
用SOI技術(shù)提高CMOSSRAM的抗單粒子翻轉(zhuǎn)能力
特征工藝尺寸對CMOS SRAM抗單粒子翻轉(zhuǎn)性能的影響
基于MicroBlaze 軟核的FPGA 片上系統(tǒng)設(shè)計
基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計
基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計

一種FPGA單粒子軟錯誤檢測電路設(shè)計
如何使用MicroBlaze軟核進(jìn)行FPGA片上系統(tǒng)設(shè)計

評論