新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種FPGA單粒子軟錯(cuò)誤檢測電路設(shè)計(jì)

一種FPGA單粒子軟錯(cuò)誤檢測電路設(shè)計(jì)

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

摘要:分析了器件發(fā)生,設(shè)計(jì)并實(shí)現(xiàn)了一種面向單粒子。將該電路放置在FPCA待的附近,利用的空間特性,則可以根據(jù)檢測模塊的狀態(tài)變化,獲得待發(fā)生單粒子的情況。仿真實(shí)驗(yàn)表明,該電路是可行、有效的檢測電路,具有很小的資源和性能損失。

本文引用地址:http://www.butianyuan.cn/article/201609/303528.htm

航天技術(shù)大大加速了經(jīng)濟(jì)建設(shè)、國防建設(shè)、科學(xué)文化和社會生活各領(lǐng)域的現(xiàn)代化進(jìn)程。隨著空間技術(shù)的發(fā)展,、DSP等超大規(guī)模集成電路越來越多的被應(yīng)用于星載平臺上。與之相伴的,則是宇宙空間輻照環(huán)境下,F(xiàn)PGA等微電子器件及其大規(guī)模集成電路無時(shí)不刻發(fā)生著對航天器通訊、測控和導(dǎo)航都有嚴(yán)重影響的,而且集成度越高,單粒子效應(yīng)的影響就越顯著。各種航天器在宇宙空間運(yùn)行會受到各種高能粒子和射線的輻射,可能造成星內(nèi)電子系統(tǒng)的損傷,甚至使整個(gè)航天器失效。有關(guān)資料顯示,由輻射引發(fā)的衛(wèi)星等航天器微電子器件單粒子效應(yīng)是航天器主要的異常和故障之一。

降低或避免輻射導(dǎo)致的單粒子失效故障的影響是航天工作所必須面對的問題。防錯(cuò)技術(shù)和容錯(cuò)技術(shù)是提高系統(tǒng)可靠性的兩種主要途徑。防錯(cuò)技術(shù)注重于降低故障發(fā)生的可能

性,而容錯(cuò)技術(shù)則注重于在錯(cuò)誤存在的情況下仍能保持系統(tǒng)的可操作性。故障檢測/恢復(fù)技術(shù)是一種常用而有效的容錯(cuò)技術(shù),它的關(guān)鍵是選擇合理的檢測點(diǎn),采用有效的檢測方法獲取信息,準(zhǔn)確判斷發(fā)生的故障。

一般來講,F(xiàn)PGA的重要功能模塊影響FPGA局部功能運(yùn)行,如果該模塊發(fā)生功能錯(cuò)誤,將對FPGA某區(qū)域的功能造成較長時(shí)間的故障。對這類功能模塊以檢錯(cuò)為主以預(yù)防錯(cuò)誤的保持和積累。而對于FPGA的關(guān)鍵功能模塊,由于其對整個(gè)系統(tǒng)正常運(yùn)行起決定作用,如果該模塊功能錯(cuò)誤將造成整個(gè)系統(tǒng)的狀態(tài)異常甚至癱瘓。因此,這類功能系統(tǒng)往往需要共同應(yīng)用防錯(cuò)技術(shù)和容錯(cuò)技術(shù)來保證系統(tǒng)的高可靠性。如采用局部TMR、TTMR或DMR等容錯(cuò)功能冗余設(shè)計(jì),以及故障檢測糾錯(cuò)技術(shù)等,以自動糾正功能模塊的錯(cuò)誤,確保功能的正確性。但是,空間儀器中FPGA的資源使用和速度是一個(gè)重要的方面,過多的資源開銷和過大的速度下降將限制儀器的功能和性能。TMR、TTMR或DMR使得目標(biāo)設(shè)計(jì)的資源增加1~2倍,速度性能(即最大工作頻率)下降15%左右。

論文基于此,分析了FPGA器件發(fā)生單粒子效應(yīng)的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一種基于FPGA的檢測電路,并仿真驗(yàn)證了其有效性。

1 FPGA單粒子效應(yīng)故障機(jī)理分析

FPGA的單粒子效應(yīng)故障具有存儲器和處理器故障的雙重特征。SRAM型FPGA的主要組成為配置存儲器(Configurable Memory)、可編程邏輯單元(CLB)可編程輸入輸出口(Progra mmable IOB)、塊存儲器(Block RAM)、布線資源(Routing Resource)、乘法器(Multiplier)、數(shù)字時(shí)鐘管理模塊(DCM,Digital Clock Manager)、配置狀態(tài)機(jī)(Configuration state Machine)、上電復(fù)位狀態(tài)機(jī)(POR,Power—on Reset)等。

FPGA的單粒子效應(yīng)故障模式可以由配置存儲器、用戶存儲器/觸發(fā)器發(fā)生單粒子翻轉(zhuǎn)引起的故障,以及由上電復(fù)位狀態(tài)機(jī)、配置狀態(tài)機(jī)、硬件乘法器等發(fā)生單粒子功能中斷和單粒子瞬態(tài)脈沖引起的故障兩大類。FPGA組成模塊的單粒子翻轉(zhuǎn)故障、單粒子功能中斷故障和單粒子瞬態(tài)脈沖故障的表現(xiàn)形式及可訪問性如表1所示。

a.jpg

2 FPGA單粒子效應(yīng)的

邏輯功能復(fù)雜的深亞微米FPGA,依靠復(fù)雜的時(shí)序邏輯關(guān)系完成各種各樣的功能,各個(gè)基本電路單元之間除了物理上的連接關(guān)系之外,經(jīng)過后期的邏輯功能設(shè)計(jì),相互之間還產(chǎn)生了新的邏輯連接和時(shí)序關(guān)系。某個(gè)基本電路單元的單粒子效應(yīng)故障可以通過這些新生的關(guān)系,擴(kuò)大到更大的作用區(qū)域,并且持續(xù)更長的作用時(shí)間。也就是說,短暫的、小面積的單個(gè)晶體管的單粒子效應(yīng)能夠通過時(shí)序電路的邏輯功能傳播到相鄰的區(qū)域,并導(dǎo)致該區(qū)域邏輯功能的伴隨故障,這類現(xiàn)象為單粒子效應(yīng)的伴隨現(xiàn)象。伴隨現(xiàn)象在FPGA功能模塊中表現(xiàn)出的故障藕合與傳遞特性被稱為伴隨特性。

伴隨特性產(chǎn)生的原因是,由于單個(gè)高能粒子由于質(zhì)量、能量、入射角以及所帶電荷的不同,在不同結(jié)構(gòu)和材料的PN結(jié)中造成能量沉積的分布特性也不相同,形成的等離子體體積也不相同,但是一般都認(rèn)為,高能粒子入射到硅材料后絕大部分能量沉積在一個(gè)以入射點(diǎn)為靶心圓形狀區(qū)域內(nèi)。這樣的空間分布特性,在應(yīng)用層次上向功能模塊層面擴(kuò)充,表現(xiàn)出“伴隨特性”的單粒子效應(yīng)故障的可測形式。

由此,根據(jù)單粒子效應(yīng)的空間分布特性,單粒子效應(yīng)故障的傳遞過程可描述為:電路單元的單粒子效應(yīng)造成其自身所在的功能模塊的故障,以及其一定物理相鄰區(qū)域內(nèi)功能電路的故障。即高能粒子的影響通過單粒子效應(yīng)的空間分布特性產(chǎn)生了傳遞,并被記錄在其他功能模塊中。

因此,單粒子效應(yīng)故障的檢測可以考慮在待檢測電路附近,合理放置狀態(tài)已知的檢測電路。通過其狀態(tài)的變化,推斷待檢測電路是否發(fā)生單粒子故障。這樣的方法,除了可以準(zhǔn)確檢測、定位故障電路,還能以降低故障檢測帶來的資源或者性能損失。

3 FPGA單粒子檢測電路設(shè)計(jì)

FPGA單粒子軟錯(cuò)誤的檢測和診斷的關(guān)鍵是尋找已知狀態(tài)點(diǎn)進(jìn)行比較。因此,F(xiàn)PGA檢測點(diǎn)的選擇需篩選出本身狀態(tài)已知的點(diǎn),或設(shè)計(jì)已知狀態(tài)點(diǎn),以實(shí)現(xiàn)狀態(tài)的對比分析。即若篩選出的待檢測點(diǎn)狀態(tài)已知,則該點(diǎn)選擇為檢測點(diǎn);若篩選出的待檢測點(diǎn)狀態(tài)未知,則選擇與該檢測點(diǎn)耦合關(guān)系最緊密的狀態(tài)已知點(diǎn)為檢測點(diǎn)。

由第2節(jié)的分析可知,當(dāng)一束高能粒子轟擊到FPGA的某一區(qū)域時(shí),發(fā)生單粒子軟錯(cuò)誤的區(qū)域是以該被轟擊區(qū)域?yàn)橹行?、直徑遠(yuǎn)大于該轟擊區(qū)域直徑的一圓形區(qū)域。因此,當(dāng)某一待檢測點(diǎn)發(fā)生了單粒子軟錯(cuò)誤,基于空間上的分布特性,其相鄰區(qū)域內(nèi)的電路也將發(fā)生單粒子軟錯(cuò)誤。由此,基于單粒子效應(yīng)的空間分布特性,本文設(shè)計(jì)了如圖1所示的狀態(tài)已知的檢測電路,用于檢測狀態(tài)未知的功能電路的狀態(tài)。同時(shí),該檢測電路對狀態(tài)已知功能電路同樣可用。

此時(shí),無論待檢測點(diǎn)狀態(tài)是否已知,均可在其周圍放置圖1所示的原理電路,完成FPGA單粒子軟錯(cuò)誤的檢測。其中,檢測電路的設(shè)計(jì)可采用觸發(fā)器沿敏感復(fù)位或采用鎖存器電平敏感復(fù)位兩種設(shè)計(jì),分別如圖2、圖3所示。

b.jpg

圖2、圖3所示檢測電路中。每個(gè)檢測電路存儲一個(gè)已知的初始值(0、1均可)。初始狀態(tài)、復(fù)位之后以及當(dāng)前值與初始值相同時(shí),Q端向外輸出低電平;當(dāng)檢測點(diǎn)的當(dāng)前值與初始值不同時(shí)(即將當(dāng)前值與初始值進(jìn)行異或操作),認(rèn)為發(fā)生了SEU翻轉(zhuǎn),Q端向外輸出高電平并保持,直到rst信號有效,檢測點(diǎn)恢復(fù)到初始狀態(tài)(rst上跳沿或下跳沿復(fù)位可采用圖2所示電路;rst高電平或低電平復(fù)位可采用圖3所示電路。設(shè)計(jì)中選用一種即可)。檢測電路的真值表如表2所示。

d.jpg

e.jpg

由此,每個(gè)檢測點(diǎn)可以由多級、多個(gè)檢測電路組成,每級可以有多個(gè)檢測電路,如在圖1中,檢測點(diǎn)0由兩級檢測電路組成,第一級包含1個(gè)檢測電路,第二級包含2個(gè)檢測電路。同級之間的多個(gè)檢測電路之間、多級之間,產(chǎn)生的輸出信號通過或門,產(chǎn)生新的輸出,最終,每個(gè)檢測點(diǎn)輸出1跟SEU信號,送往SEU狀態(tài)寄存器。

SEU狀態(tài)寄存器的個(gè)數(shù)、每個(gè)寄存器的位數(shù),可以根據(jù)自己的實(shí)際情況確定,只需“寄存器個(gè)數(shù)×寄存器位數(shù)=檢測點(diǎn)數(shù)量”即可。

狀態(tài)讀取模塊根據(jù)用戶實(shí)際情況進(jìn)行設(shè)計(jì),可使用用戶芯片中原有的數(shù)據(jù)讀取通路。圖1的示例中,使用并行接口對SEU狀態(tài)寄存器進(jìn)行讀取,數(shù)據(jù)線、地址線的位數(shù)可根據(jù)實(shí)際情況進(jìn)行設(shè)定。

SEU狀態(tài)讀取完畢后,通過該接口,設(shè)置復(fù)位寄存器的值,產(chǎn)生rst信號,對所有檢測點(diǎn)中的檢測電路進(jìn)行復(fù)位,將其恢復(fù)到初始狀態(tài)。

當(dāng)完成一次檢測后,由SEU狀態(tài)寄存器記錄當(dāng)次檢測結(jié)果,該結(jié)果可以由狀態(tài)讀取模塊根據(jù)需求讀出。同時(shí),根據(jù)檢測結(jié)果,驅(qū)動FPGA完成局部電路刷新,以恢復(fù)期正常狀態(tài)。

顯然,該檢測電路可以推廣到所有FPGA組成模塊的檢測,只需將其放置在待檢測電路的附近,利用單粒子效應(yīng)的空問特性,均可根據(jù)檢測模塊的狀態(tài)變化,獲得待檢測電路發(fā)生單粒子軟錯(cuò)誤的情況。

4 仿真驗(yàn)證

本文利用圖1所示的檢測電路,并在Modelsim下進(jìn)行了仿真測試,結(jié)果如圖4所示。

e.jpg

圖4中,通過tb向第31和第2個(gè)SEU檢測點(diǎn),即SEU31、SEU2注入了SEU故障??梢钥吹?,SEU內(nèi)部狀態(tài)寄存器的值已經(jīng)改變,通過狀態(tài)讀取模塊,可以將SEU狀態(tài)讀出(讀出的結(jié)果為seu_status_readout)。仿真結(jié)果證明了本文設(shè)計(jì)的檢測電路的可用性和有效性。

5 結(jié)論

本文分析了FPGA器件發(fā)生單粒子效應(yīng)的空間分布特性,設(shè)計(jì)并實(shí)現(xiàn)了一種檢測電路。將該電路放置在FPGA待檢測電路的附近,利用單粒子效應(yīng)的空間特性,均可根據(jù)檢測模塊的狀態(tài)變化,獲得待檢測電路發(fā)生單粒子軟錯(cuò)誤的情況。仿真實(shí)驗(yàn)表明,該電路是可行、有效的檢測電路,具有很小的資源或者性能損失,具有很好地應(yīng)用價(jià)值。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉