董會(huì)娟 黃振
(中國(guó)電子科技集團(tuán)公司第三十八研究所 安徽省合肥市 230088)
FPGA 是集成電路中的一種半定制電路,具有體積小、容量大、性能強(qiáng)等優(yōu)點(diǎn),其中的SRAM 型FPGA 更是因?yàn)榭梢远啻尉幊?、資源豐富、器件密度高等特點(diǎn)被廣泛應(yīng)用于航空、航天領(lǐng)域[1]。但是,太空環(huán)境中存在著大量的高能粒子,而SRAM 型FPGA 斷電后數(shù)據(jù)就會(huì)丟失,對(duì)空間輻射比較敏感,抗單粒子翻轉(zhuǎn)的能力比較差,影響星載產(chǎn)品在軌工作的可靠性[2]。因此,提升基于SRAM 型FPGA 系統(tǒng)電路的抗單粒子翻轉(zhuǎn)性能一直是研究熱點(diǎn)。
在目前的空間應(yīng)用中,提高SRAM 型FPGA 在軌可靠性的方法主要有,硬件備份、三模冗余和配置存儲(chǔ)器刷新技術(shù)等,都有各自的缺點(diǎn)[3]。硬件備份增加星載單機(jī)的體積和重量,軟件冗余會(huì)增加FPGA 所需的內(nèi)部資源,并且無(wú)法修復(fù)單粒子事件引發(fā)的錯(cuò)誤。配置存儲(chǔ)器刷新技術(shù)主要面臨的難點(diǎn)是較復(fù)雜的系統(tǒng)軟硬件設(shè)計(jì),同時(shí)刷新電路本身對(duì)空間輻射敏感。
本文基于國(guó)產(chǎn)的新一代智能抗輻照芯片,提出了一套高可靠性的SRAM 型FPGA 刷新系統(tǒng)設(shè)計(jì)。該設(shè)計(jì)支持回讀、刷新、重載、在軌重構(gòu)等功能,不僅能有效降低單粒子效應(yīng)的影響,并且降低了軟硬件設(shè)計(jì)的復(fù)雜度的和難度。刷新電路自身還可以通過(guò)射隨信號(hào)復(fù)位,單機(jī)的抗輻照性能得到了極大的提高。
空間環(huán)境中的宇宙射線穿過(guò)物質(zhì)發(fā)生相互作用被稱為輻射效應(yīng)。星載產(chǎn)品處在不同軌道,受到的輻射強(qiáng)度、種類及輻射時(shí)間會(huì)有所不同,一般將輻射效應(yīng)分為總劑量效應(yīng)、單粒子效應(yīng)、位移效應(yīng)和劑量效應(yīng)等,其中對(duì)芯片威脅最大的是總劑量效應(yīng)和單粒子效應(yīng)[4,5]。隨著半導(dǎo)體技術(shù)的進(jìn)步,總劑量效應(yīng)的危害也逐漸減小,單粒子效應(yīng)成為影響星載產(chǎn)品可靠性的重要因素。
單粒子效應(yīng)是指空間中各種高能粒子:中子、質(zhì)子、γ射線等,進(jìn)入半導(dǎo)體器件,使器件性能下降或損傷。單粒子效應(yīng)產(chǎn)生的錯(cuò)誤可分為硬錯(cuò)誤和軟錯(cuò)誤。硬錯(cuò)誤是由于射入器件的粒子能量很高,產(chǎn)生了瞬時(shí)大電流,對(duì)器件造成了永久性損毀,是不可修復(fù)的,如單粒子閂鎖(SEL)、單粒子燒毀(SEB)等。軟錯(cuò)誤是指瞬態(tài)的單粒子只改變了單個(gè)邏輯狀態(tài),復(fù)位后芯片仍能正常工作,如單粒子翻轉(zhuǎn)(SEU)、單粒子瞬態(tài)(SET)、單粒子功能中斷(SEFI)等。通過(guò)提高元器件自身抗輻照性能可以減少硬錯(cuò)誤發(fā)生概率,而軟錯(cuò)誤需要利用抗輻照加固技術(shù)來(lái)避免或糾正。
提高SRAM型FPGA抗單粒子翻轉(zhuǎn)能力的刷新方式主要有兩種,一種是基于反熔絲FPGA,另一種是基于專用刷新芯片,都是在不中斷單機(jī)功能的前提下,定時(shí)完成SRAM型FPGA的動(dòng)態(tài)刷新,減少SEU事件對(duì)星載產(chǎn)品造成的影響。
本套方案主要由存儲(chǔ)芯片PROM、刷新控制FPGA(反熔絲FPGA)和主控FPGA 組成,總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。主控FPGA 芯片完成對(duì)星務(wù)系統(tǒng)下發(fā)的高速數(shù)字信號(hào)進(jìn)行處理、分發(fā),刷新FPGA 芯片完成對(duì)主控FPGA 的刷新、重載與配置,PROM 芯片對(duì)單粒子效應(yīng)不敏感,用于初始存儲(chǔ)配置程序。反熔絲FPGA 芯片本身抗單粒子翻轉(zhuǎn)能力比較強(qiáng),因此刷新控制FPGA 的抗SEU 措施可以簡(jiǎn)化,但其內(nèi)部使用的寄存器仍然會(huì)受到SEU 效應(yīng)的影響,因此需要有針對(duì)寄存器進(jìn)行的防范措施。
圖1:基于反熔絲FPGA 的SRAM 型FPGA 刷新設(shè)計(jì)方案
本套方案由專用智能刷新控制芯片、主控FPGA 芯片、存儲(chǔ)芯片PROM 和NOR 型FLASH 組成,其中NOR 型FLASH 芯片可反復(fù)擦寫(xiě)、編程,實(shí)現(xiàn)在軌重構(gòu),修正SEU事件造成的錯(cuò)誤,完善產(chǎn)品軟件功能,提升系統(tǒng)性能。完成在軌重構(gòu)后,刷新芯片可設(shè)置為從FLASH 中讀取配置文件定時(shí)刷新。PROM 芯片的抗單粒子能力高,用于存儲(chǔ)初始配置文件,總體結(jié)構(gòu)如圖2所示。通過(guò)外部管腳或者UART命令配置刷新芯片的功能寄存器,選擇芯片的基本工作模式,UART 命令配置的優(yōu)先級(jí)高于管腳配置。
圖2:基于專用芯片的SRAM 型FPGA 刷新設(shè)計(jì)方案
上文中兩種刷新方法的不同主要集中在完成刷新功能的芯片種類不同,第一種使用的反熔絲FPGA 多為ATEL 公司的A54SX32A,第二種使用的專用刷新芯片為復(fù)旦微電子的JFMS01RH,具體區(qū)別如下:
(1)功耗:A54SX32A 的最大功耗為4W,按照航天產(chǎn)品20%降額設(shè)計(jì)要求,額定功耗為3.2W,JFMS01RH 為低功耗芯片,額定功耗為0.5W;
(2)國(guó)產(chǎn)化:A54SX32A 為進(jìn)口器件,供貨周期長(zhǎng),技術(shù)支持無(wú)法保障;JFMS01RH 為國(guó)產(chǎn)化器件,供貨周期自主可控,技術(shù)支持專業(yè)及時(shí);
(3)通用性:A54SX32A 需要用戶自行編程,增加了軟件設(shè)計(jì)成本,JFMS01RH 為專用刷新芯片,僅需少量外圍支持電路;
(4)容錯(cuò)率:JFMS01RH 芯片具備實(shí)現(xiàn)在軌重構(gòu)的功能,提高了產(chǎn)品在軌運(yùn)行的容錯(cuò)率;A54SX32A 不支持此功能。
經(jīng)過(guò)對(duì)比,本文選用專用刷新芯片JFMS01RH,設(shè)計(jì)一款可提高SRAM型FPGA抗單粒子翻轉(zhuǎn)能力的刷新電路。
本文中使用的刷新芯片是上海復(fù)旦微電子的JFMS01RH。該芯片提供了多種FLASH 接口(NOR 型FLAH 和SPI 型FLASH)、PROM 接口、UART 接口、FPGA 接口以及硬件配置接口,并且支持Xilinx 公司以及復(fù)旦微電子各主流系列FPGA,降低了系統(tǒng)設(shè)計(jì)的復(fù)雜度。JFMS01RH 刷新芯片支持SelectMap 接口(聯(lián)合并行模式)或者Daisy Chain 接口(菊花鏈模式),在聯(lián)合并行模式下,刷新芯片可以對(duì)FPGA 進(jìn)行重載、回讀或者刷新,當(dāng)在菊花鏈模式下,刷新芯片不支持回讀,只能進(jìn)行重載和刷新。上電時(shí),首先清除主控FPGA 配置區(qū)中的內(nèi)容,完成主控FPGA 初始化,然后,刷新控制芯片從存儲(chǔ)器中讀取配置數(shù)據(jù),按照指定時(shí)序發(fā)送至主控芯片的SelectMap 接口上,并監(jiān)測(cè)其Done 信號(hào)是否加載成功,若信號(hào)長(zhǎng)時(shí)間未拉高,會(huì)對(duì)主控FPGA 進(jìn)行重載,若多次重載失敗,對(duì)主控FPGA 進(jìn)行自主復(fù)位。加載成功后,刷新芯片會(huì)讀取存儲(chǔ)器中的配置文件,通過(guò)SelectMap 接口對(duì)主控FPGA 的配置區(qū)域定時(shí)刷新,刷新頻率和存儲(chǔ)器種類的選擇均由外部管腳設(shè)置。同時(shí),刷新芯片對(duì)主控FPGA 中的FAR寄存器進(jìn)行SEFI監(jiān)測(cè),若發(fā)生SEU事件,則進(jìn)行重載,詳細(xì)的系統(tǒng)設(shè)計(jì)如圖3所示。
圖3:系統(tǒng)設(shè)計(jì)方案
本套方案主要由NOR 型FLASH、PROM、刷新芯片和VCV4SX55 組成。NOR 型FLASH 芯片選用的是復(fù)旦微電子的JFM29LV641RH,大小為64M,用于存儲(chǔ)FPGA 位流。通過(guò)UART 接口,對(duì)FLASH 芯片進(jìn)行編程、全芯片擦除、扇區(qū)擦除、數(shù)據(jù)校驗(yàn)等操作,完成在線重構(gòu)。PROM 芯片選用的是XQ17V16,其中存儲(chǔ)的位流在使用前通過(guò)JTAG接口進(jìn)行固化,之后無(wú)法更改。2 片XQ17V16 通過(guò)CE、CEO 信號(hào)完成級(jí)聯(lián)。刷新芯片雖然也具有一定的抗輻照特性,但仍然存在發(fā)生單粒子事件的概率,因而為刷新芯片也設(shè)計(jì)了射隨復(fù)位電路。星務(wù)平臺(tái)發(fā)出2.5V 復(fù)位信號(hào),首先利用B54AC164245 電平轉(zhuǎn)換為3.3V,經(jīng)過(guò)反向電路B54AC14RHF 轉(zhuǎn)換為低電平后直接連接到刷新芯片的復(fù)位端。
本設(shè)計(jì)采用主、備FLASH 冷隔離的冗余設(shè)計(jì)方案,兩片F(xiàn)LASH 中各存放一份相同的位流。工作過(guò)程中,刷新芯片首先讀取主機(jī)FLASH 中的配置文件,當(dāng)主機(jī)FLASH 中的位流數(shù)據(jù)發(fā)生了單粒子翻轉(zhuǎn)事件,導(dǎo)致重載失敗或者位流解析錯(cuò)誤,會(huì)自動(dòng)切換到備機(jī)。如果備機(jī)也因發(fā)生翻轉(zhuǎn)導(dǎo)致重載不成功或位流解析錯(cuò)誤,會(huì)自動(dòng)切換到PROM,切換時(shí)間小于1us。通過(guò)遙測(cè)查詢,可以定位到具體發(fā)生翻轉(zhuǎn)的存儲(chǔ)器,擦除芯片內(nèi)容后,重新編程。
除了刷新功能,芯片還支持重載、回讀、在線重構(gòu)等功能,均可提高星載產(chǎn)品在軌運(yùn)行的可靠性。刷新芯片會(huì)產(chǎn)生回讀位流,并將回讀位流下載到FPGA 中。FPGA 計(jì)算配置區(qū)數(shù)據(jù)的CRC 校驗(yàn)值,通過(guò)SelectMap 接口送出回讀數(shù)據(jù)校驗(yàn)值,刷新芯片會(huì)將該結(jié)果與存儲(chǔ)器中的原始配置數(shù)據(jù)幀的CRC 校驗(yàn)值進(jìn)行對(duì)比。若發(fā)現(xiàn)有不匹配,則記錄出錯(cuò)的個(gè)數(shù),若出錯(cuò)的個(gè)數(shù)累加到了設(shè)定的重載閾值,則自動(dòng)啟動(dòng)重載操作。除此之外,重載功能還有兩種啟動(dòng)方式,一是系統(tǒng)上電時(shí)自動(dòng)進(jìn)行,二是UART 指令、OC 指令或WDT指令啟動(dòng)。FPGA 重載的次數(shù)可以通過(guò)訪問(wèn)遙測(cè)量獲得。JFMS01RH 首先會(huì)發(fā)送1us 低脈沖復(fù)位信號(hào)給FPGA,等待FPGA 的INIT_B 拉高,接著從PROM 或者FLASH 中依次取出數(shù)據(jù),按照SelectMap 接口或者Daisy Chain 模式給FPGA 提供控制信號(hào)和數(shù)據(jù)。但是重載操作會(huì)中斷當(dāng)前功能,然后重置FPGA 的所有數(shù)據(jù)。在軌重構(gòu)功能是對(duì)FLASH 中存儲(chǔ)的代碼進(jìn)行擦除和編寫(xiě),完成系統(tǒng)維護(hù)與更新升級(jí)。在線重構(gòu)的優(yōu)先級(jí)比重載、回讀、刷新優(yōu)先級(jí)高。如果在線重構(gòu)和重載、回讀、刷新功能共同使用同一總線的器件。則會(huì)等待該次重載、回讀、刷新結(jié)束,才能進(jìn)行在線重構(gòu)操作。在線重構(gòu)和重載、回讀、刷新功能沒(méi)有使用同一總線的器件,那么在線重構(gòu)和重載、回讀、刷新操作可以同時(shí)進(jìn)行。
JFMS01RH 芯片的工作流程如圖4所示。上電后,芯片首先分析寄存器的功能,然后根據(jù)寄存器的配置結(jié)果對(duì)主控FPGA 進(jìn)行加載。如果主控FPGA 加載成功,進(jìn)行后續(xù)步驟,如果不成功則需要重新上電復(fù)位。當(dāng)主控FPGA 加載成功后,檢測(cè)芯片是否接收到在線重構(gòu)命令,如果需要在線重構(gòu),則對(duì)FLASH 進(jìn)行在線重構(gòu),若無(wú),則直接對(duì)主控FPGA 的聯(lián)接模式進(jìn)行判斷。在回讀或刷新前都要對(duì)JFMS01RH 進(jìn)行SEFI 檢測(cè),如果發(fā)生了回讀或者刷新SEFI 錯(cuò)誤,回讀或者刷新將不會(huì)繼續(xù)進(jìn)行。如果sel_auto_reload 寄存器值配置成‘1’,那么退出回讀或者刷新模式后,將對(duì)主控FPGA 進(jìn)行重載。如果sel_auto_reload 寄存器值配置成‘0’,那么退出回讀或者刷新后不會(huì)進(jìn)行其他操作,直到下次的回讀或者刷新繼續(xù)檢測(cè)芯片是否發(fā)生SEFI。
圖4:JFMS01RH 刷新芯片的工作流程
空間輻射對(duì)航天器在軌可靠性有著極其重要的影響,SEU 和SET 造成的影響更是會(huì)對(duì)航天電子系統(tǒng)造成不可修復(fù)的。本文對(duì)比了兩種常見(jiàn)的星載產(chǎn)品刷新設(shè)計(jì)方案,最后基于國(guó)產(chǎn)刷新控制芯片,提出了一套完整的抗單粒子翻轉(zhuǎn)及衛(wèi)星在軌重構(gòu)的系統(tǒng)設(shè)計(jì)方案,有效提高了SRAM 型FPGA對(duì)單粒子效應(yīng)故障的容錯(cuò)能力,為航天電子系統(tǒng)的可靠性設(shè)計(jì)提供了參考。