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

講解一下SRAM型FPGA在軌會(huì)遇到的問題及其影響

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

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

SRAM型FPGA的抗輻照加固設(shè)計(jì)

評(píng)論