• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SRAM型FPGA的多源自主重構(gòu)方法

      2022-04-07 12:34:08李璐芳周雙喜黑花閣喻琪超林長(zhǎng)青孫勝利
      關(guān)鍵詞:熔絲存儲(chǔ)器寄存器

      李璐芳, 周雙喜, 黑花閣, 喻琪超,林長(zhǎng)青, 孫勝利,*

      (1. 中國(guó)科學(xué)院上海技術(shù)物理研究所, 上海 200083; 2. 中國(guó)科學(xué)院智能紅外感知重點(diǎn)實(shí)驗(yàn)室,上海 200083; 3. 中國(guó)科學(xué)院大學(xué), 北京 100049)

      0 引 言

      紅外遙感相機(jī)在軌運(yùn)行時(shí),需要長(zhǎng)時(shí)間對(duì)目標(biāo)進(jìn)行觀測(cè)成像,國(guó)內(nèi)外對(duì)航天故障的統(tǒng)計(jì)顯示:約有40%的故障源自太空輻射,太空中的單粒子翻轉(zhuǎn)(single event upset, SEU)將對(duì)紅外遙感相機(jī)運(yùn)行狀態(tài)、圖像質(zhì)量產(chǎn)生影響。在紅外遙感相機(jī)中應(yīng)用最為廣泛的是Xilinx公司Virtex系列靜態(tài)隨機(jī)存儲(chǔ)器(static random-access memory,SRAM)型現(xiàn)場(chǎng)可編程邏輯門陣列(field programmable gate array, FPGA),SRAM工藝的FPGA受空間高能粒子影響較大,內(nèi)部配置存儲(chǔ)器的邏輯狀態(tài)常常受單粒子的影響,可能會(huì)影響整個(gè)系統(tǒng)的正常工作。航天高可靠性應(yīng)用的設(shè)計(jì)必須要考慮單粒子效應(yīng)對(duì)FPGA配置存儲(chǔ)器的影響。配置存儲(chǔ)器的打翻可能會(huì)導(dǎo)致器件的功能和性能發(fā)生變化,SRAM型FPGA除了配置存儲(chǔ)器易受到單粒子效應(yīng)的影響外,其內(nèi)部包含的鎖存器、觸發(fā)器、塊RAM存儲(chǔ)等用戶可用資源也易受單粒子效應(yīng)的影響,這些內(nèi)部資源受單粒子效應(yīng)影響可能導(dǎo)致器件應(yīng)用的功能發(fā)生中斷。由于FPGA所實(shí)現(xiàn)功能取決于存儲(chǔ)在器件中數(shù)百萬(wàn)個(gè)配置存儲(chǔ)單元中的數(shù)據(jù),所以配置存儲(chǔ)器陣列發(fā)生SEU可能會(huì)對(duì)預(yù)期的功能產(chǎn)生不利影響。

      雖然降低SEU影響的措施有很多種,比如可以通過三模冗余(triple modular redundancy, TMR)對(duì)內(nèi)部關(guān)鍵寄存器進(jìn)行三模冗余設(shè)計(jì),或者使用多片F(xiàn)PGA進(jìn)行備份,但是必須通過刷新糾正SEU所導(dǎo)致的錯(cuò)誤,否則錯(cuò)誤數(shù)會(huì)越來(lái)越多。雖然TMR能夠提高FPGA可靠性,但是也會(huì)降低經(jīng)過布局布線后的最大時(shí)鐘速度,增加FPGA的資源使用量,增大芯片功耗。如果FPGA邏輯設(shè)計(jì)本身就很復(fù)雜,則TMR設(shè)計(jì)后所帶來(lái)的資源和功耗往往是系統(tǒng)設(shè)計(jì)所無(wú)法容忍的。因此在具體設(shè)計(jì)時(shí),可針對(duì)部分關(guān)鍵邏輯和電路進(jìn)行TMR加固設(shè)計(jì)。國(guó)內(nèi)外多個(gè)研究機(jī)構(gòu)對(duì)該類型FPGA進(jìn)行了單粒子翻轉(zhuǎn)特性的試驗(yàn),其中某型號(hào)衛(wèi)星在軌數(shù)據(jù)表明,在未做抗單粒子加固措施的條件下,在軌測(cè)試期間(共73天),400萬(wàn)門FPGA共發(fā)生496次翻轉(zhuǎn)事件,60萬(wàn)門FPGA共發(fā)生74次翻轉(zhuǎn)事件,雖然小門數(shù)FPGA翻轉(zhuǎn)概率小,但是研究數(shù)據(jù)表明用多片小門數(shù)FPGA代替一片大門數(shù)FPGA的方法并不能降低SEU次數(shù),因此在軌應(yīng)用時(shí)需要采取一定的抗單粒子加固措施。

      SRAM型FPGA器件在實(shí)時(shí)回讀(功能不中斷的回讀)時(shí),SRAM cell易受噪聲影響,導(dǎo)致存儲(chǔ)值翻轉(zhuǎn),甚至導(dǎo)致系統(tǒng)功能錯(cuò)誤,航天應(yīng)用時(shí),需在保證系統(tǒng)功能不中斷的前提下,進(jìn)行抗SEU的加固。因此,不推薦在航天應(yīng)用時(shí),通過持續(xù)的回讀配置存儲(chǔ)值,判斷是否發(fā)生SEU,依據(jù)回讀比較結(jié)果再進(jìn)行SEU系統(tǒng)加固。SRAM cell在寫操作時(shí),不易受到噪聲影響,所以推薦在航天應(yīng)用時(shí),系統(tǒng)功能不中斷的情況下,通過對(duì)配置存儲(chǔ)器進(jìn)行刷新的方式,來(lái)恢復(fù)發(fā)生SEU翻轉(zhuǎn)的SRAM cell存儲(chǔ)值,消除SRAM cell發(fā)生SEU后的累計(jì)錯(cuò)誤位。經(jīng)研究數(shù)據(jù)表明,SRAM 型FPGA 對(duì)SEU敏感,同時(shí)存在單粒子功能中斷,對(duì)于紅外遙感相機(jī)圖像信息處理電路等關(guān)鍵部位,應(yīng)慎用SRAM 型FPGA,若使用則需要相應(yīng)的加固技術(shù)。通過重配置的方法可以有效地減緩SEU與單粒子功能中斷(single event function interrupt, SEFI)的影響,所以動(dòng)態(tài)重配置是防護(hù)SRAM 型FPGA SEU與SEFI的有效手段。

      國(guó)內(nèi)比較常用的加固技術(shù)采用TMR+scrubbing+reload的容錯(cuò)系統(tǒng),文獻(xiàn)[5]使用配置PROM作為外部配置存儲(chǔ)器,使用300萬(wàn)門大容量Virtex-2系列作為實(shí)現(xiàn)應(yīng)用設(shè)計(jì)的FPGA,用反熔絲FPGA對(duì)Virtex-2系列FPGA的配置數(shù)據(jù)進(jìn)行毫秒級(jí)周期刷新。文獻(xiàn)[19]綜述了幾種FPGA抗SEU的設(shè)計(jì)方法,FPGA的TMR設(shè)計(jì)、重配置、自動(dòng)刷新技術(shù)、回讀和刷新技術(shù)以及局部動(dòng)態(tài)可重構(gòu)技術(shù)等,通過采用以上一種或者多種容錯(cuò)設(shè)計(jì)方法,可以增強(qiáng)FPGA對(duì)于空間SEU的防護(hù)能力,有利于提高紅外遙感相機(jī)在軌工作的可靠性。文獻(xiàn)[20]對(duì)常規(guī)采用的配置刷新方式、回讀刷新和定時(shí)刷新進(jìn)行了對(duì)比,得出結(jié)論:定時(shí)刷新方法簡(jiǎn)單可靠,并且占用存儲(chǔ)空間小。文獻(xiàn)[21]提出了FPGA自主刷新+三模冗余的解決方案,在保證FPGA抗單粒子性能的基礎(chǔ)上提高了系統(tǒng)的資源利用率。文獻(xiàn)[22]提出了FPGA可重構(gòu)技術(shù)的分類以及動(dòng)態(tài)可重構(gòu)技術(shù)的原理,并在此基礎(chǔ)之上選取Virtex-4系列FPGA 給出一種動(dòng)態(tài)重構(gòu)的應(yīng)用以及具體實(shí)現(xiàn)。

      近幾年,國(guó)內(nèi)772所和復(fù)旦微電子等為了應(yīng)對(duì)SRAM型FPGA在軌SEU問題,推出了針對(duì)Xilinx公司Virtex系列以及國(guó)產(chǎn)相應(yīng)FPGA的刷新芯片,可以實(shí)現(xiàn)上電配置、定時(shí)刷新、回讀刷新、在軌重構(gòu)功能,但該刷新芯片僅支持特定型號(hào)的存儲(chǔ)器件和Xilinx公司一些主流的FPGA。

      1 基于SRAM型FPGA多源自主重構(gòu)的架構(gòu)

      綜上,對(duì)各種解決SEU的方法進(jìn)行對(duì)比,如表1所示,并得出以下結(jié)論。

      對(duì)于以上各種解決SEU的方法,總結(jié)出以下幾點(diǎn):

      (1) 抗SEU的加固技術(shù)主要采取如表1中的一種或者幾種組合措施。因此,只有根據(jù)實(shí)際需求情況,各種措施共同配合,才能達(dá)到較好的抗SEU效果。

      (2) 由于紅外遙感相機(jī)中不同規(guī)模探測(cè)器對(duì)圖像信息獲取以及處理能力不同,因此對(duì)FPGA的資源大小要求也不同。如果反熔絲FPGA的核心算法不兼容SRAM FPGA型號(hào),那么每當(dāng)使用不同資源類型大小的SRAM FPGA 都需要對(duì)反熔絲FPGA核心算法進(jìn)行升級(jí)。

      (3) 紅外遙感相機(jī)在軌運(yùn)行時(shí)由于壽命、故障等原因?qū)е绿綔y(cè)器性能衰減,造成圖像性能參數(shù)發(fā)生變化不滿足使用要求時(shí),需要在軌進(jìn)行調(diào)整,使圖像性能滿足使用要求。

      (4) 國(guó)產(chǎn)刷新芯片可滿足以上基本功能,但只支持特定型號(hào)的NOR FLASH或者SPI FLASH等存儲(chǔ)器件,選擇性有限。

      (5) 國(guó)產(chǎn)刷新芯片僅支持Xilinx公司主流FPGA以及國(guó)產(chǎn)相應(yīng)的FPGA,仍不能覆蓋所有相關(guān)FPGA型號(hào)的需求。

      表1 方案對(duì)比Table 1 Option comparison

      針對(duì)以上問題,結(jié)合實(shí)際工程應(yīng)用需求,設(shè)計(jì)了一種基于SRAM型FPGA的多源自主刷新重構(gòu)方法,不僅可以實(shí)時(shí)監(jiān)測(cè)SRAM型FPGA的健康狀況,在軌回讀SRAM型FPGA工作寄存器的狀態(tài),還可以對(duì)SRAM型FPGA進(jìn)行全部重配置和時(shí)間可設(shè)置的動(dòng)態(tài)部分配置,并且對(duì)SRAM型FPGA內(nèi)的關(guān)鍵寄存器進(jìn)行TMR設(shè)計(jì)。除此之外還有以下優(yōu)點(diǎn):

      (1) 可根據(jù)器件IDCODE自主識(shí)別所用SRAM型FPGA的型號(hào)。針對(duì)紅外遙感相機(jī)中不同規(guī)模的探測(cè)器對(duì)圖像信息獲取以及處理要求不同,對(duì)FPGA資源需求也不相同,如果采取一片反熔絲FPGA管理幾片不同類型的SRAM型FPGA,不僅增加了硬件資源,還增加了設(shè)計(jì)難度。因此為了更好提高本架構(gòu)的系統(tǒng)兼容性,本設(shè)計(jì)可以對(duì)多種型號(hào)的不同資源類型大小SRAM型FPGA(比如Virtex-2/4/5/7全系列等)的IDCODE進(jìn)行自主識(shí)別并對(duì)其進(jìn)行重構(gòu)和刷新,提高系統(tǒng)沿用性。

      (2) 可選擇多源外部程序存儲(chǔ)器進(jìn)行定時(shí)刷新以及重構(gòu),如果采用的多源存儲(chǔ)器都為PROM,那么程序燒寫完成后,不能根據(jù)在軌使用需求對(duì)SRAM型FPGA內(nèi)的程序進(jìn)行上注更新,因此選擇NOR FLASH對(duì)SRAM型FPGA內(nèi)的程序進(jìn)行上注存儲(chǔ),根據(jù)使用需求對(duì)上注的程序選擇自主重構(gòu)。當(dāng)NOR FLASH內(nèi)上注程序不滿足使用需求時(shí),又可切回PROM對(duì)SRAM型FPGA內(nèi)的程序進(jìn)行更新,并且兼容各種可上注NOR FLASH型號(hào)。因此該項(xiàng)功能可增加系統(tǒng)靈活性、提高系統(tǒng)可靠性。

      (3) 通過在軌監(jiān)測(cè)紅外遙感相機(jī)圖像性能參數(shù),當(dāng)發(fā)生變化不滿足使用需求時(shí),對(duì)上注程序進(jìn)行自主重構(gòu),使圖像性能參數(shù)滿足使用需求。

      以反熔絲FPGA為核心處理器件,系統(tǒng)框圖如圖1所示,有接口關(guān)系的器件有PROM、flash、NOR FLASH以及SRAM型FPGA。

      反熔絲FPGA左側(cè),與SRAM型FPGA的SelectMAP接口對(duì)程序數(shù)據(jù)進(jìn)行讀寫操作,SelectMAP 接口是一個(gè)8位的雙向數(shù)據(jù)端口,是定時(shí)刷新、配置和回讀的數(shù)據(jù)接口,可以通過它對(duì)Virtex FPGA進(jìn)行配置,也可以通過它讀回配置數(shù)據(jù),是Virtex FPGA 最快的配置方式。與SRAM型FPGA的控制接口控制SRAM型FPGA進(jìn)行不同程序源存儲(chǔ)器的定時(shí)刷新和重配置,以及控制切換選擇程序刷新重配置通道和上注程序通道。與SRAM型FPGA的上注/回讀程序通道接口主要完成在控制接口切換為上注程序通道時(shí),對(duì)NOR FLASH進(jìn)行程序上注和回讀對(duì)比。

      反熔絲FPGA右側(cè),與PROM、flash和NOR FLASH接口主要為刷新和重配置數(shù)據(jù)通道,還有上注程序數(shù)據(jù)以及控制線選擇通道。

      圖1 系統(tǒng)框圖Fig.1 System architecture

      2 基于SRAM型FPGA多源自主重構(gòu)的算法流程

      反熔絲型FPGA需要完成上電配置、全部重配置、定時(shí)動(dòng)態(tài)刷新(部分配置)控制以及配合SRAM型FPGA完成在軌上注程序的管理,整體算法流程如圖2所示。

      圖2 整體算法流程圖Fig.2 Overall algorithm flow chart

      (1) 在系統(tǒng)上電階段從外部存儲(chǔ)器加載SRAM型FPGA的配置數(shù)據(jù)或者發(fā)送指令全部重配置SRAM型FPGA配置區(qū),實(shí)現(xiàn)系統(tǒng)上電后SRAM型FPGA正常運(yùn)行和程序重配置。

      (2) 在刷新信號(hào)有效后,對(duì)SRAM型FPGA的配置區(qū)進(jìn)行周期性的刷新,實(shí)現(xiàn)在軌定時(shí)刷新。

      (3) 當(dāng)SRAM型FPGA進(jìn)行在軌上注預(yù)設(shè)程序時(shí),反熔絲FPGA與NOR FLASH存儲(chǔ)器的數(shù)據(jù)通道將自主切換至讀/寫通道,對(duì)參數(shù)或者程序進(jìn)行讀/寫工作,實(shí)現(xiàn)在軌程序上注以及回讀。當(dāng)監(jiān)測(cè)到相關(guān)圖像性能參數(shù)發(fā)生變化時(shí),可進(jìn)行自主程序重構(gòu)使圖像性能滿足系統(tǒng)要求。

      (4) 自主識(shí)別SRAM型FPGA的IDCODE,實(shí)現(xiàn)了系統(tǒng)兼容Xilinx Virtex全系列(Virtex-2,Virtex-4,Virtex-5,Virtex-7系列)。

      (5) 多源選擇外部存儲(chǔ)器,實(shí)現(xiàn)了從PROM,flash,NOR FLASH任意源切換的功能。

      (6) 在軌回讀SRAM型FPGA狀態(tài)寄存器狀態(tài),對(duì)SRAM型FPGA的健康情況進(jìn)行實(shí)時(shí)監(jiān)控。

      2.1 上電配置和全部重配置

      在系統(tǒng)上電階段從外部程序存儲(chǔ)器加載SRAM型FPGA的配置數(shù)據(jù),實(shí)現(xiàn)SRAM型FPGA的正常運(yùn)行,與上電配置的不同之處是重配置需要發(fā)送指令,反熔絲FPGA對(duì)接收到的重配置指令解析后,對(duì)SRAM型FPGA進(jìn)行全部重配置;上電配置是接收到外部復(fù)位信號(hào)后,先進(jìn)行上電復(fù)位,然后進(jìn)行全部配置,具體配置流程如下所示:

      (1) 上電復(fù)位結(jié)束后,將SRAM型FPGA的PROG信號(hào)置低至少300 ns后置高,清空FPGA配置存儲(chǔ)器。

      (2)檢測(cè)SRAM型FPGA的配置寄存器初始化信號(hào)(initialization, INIT),若其值為高,將SelectMAP接口的片選信號(hào)(ChipSelect, CS)、讀寫信號(hào)(ReadWrite, RDWR)置低,同時(shí)將程序存儲(chǔ)器PROM的使能信號(hào)(ChipEnable, CE)置低,輸出使能端(OutputEnable, OE)置高,使得數(shù)據(jù)從外部存儲(chǔ)器到SRAM型FPGA的數(shù)據(jù)通道開通。若INIT為低,則持續(xù)檢查INIT的值,直到其值為高,進(jìn)行配置。若此時(shí)收到全部重配置指令,則進(jìn)行全部重配置。

      (3) 檢測(cè)SRAM型FPGA的輸出配置結(jié)束信號(hào)DONE,若DONE值為高,說明配置成功,然后將CS置高使得數(shù)據(jù)總線呈高阻態(tài)等待后續(xù)操作;若DONE值為低,則對(duì)DONE值持續(xù)檢查,直到其值為高。

      2.2 周期定時(shí)自動(dòng)刷新

      FPGA應(yīng)該要被刷新以防止配置存儲(chǔ)器中的SEU錯(cuò)誤累加而影響系統(tǒng)的正常工作。配置幀是配置數(shù)據(jù)在Virtex FPGA配置存儲(chǔ)器中可以讀寫的最小單位,多組配置幀組成一個(gè)配置幀列,配置幀列分為可配置邏輯塊(configurable logic block, CLB)幀列、輸入/輸出緩沖器(input/output buffer, IOB)幀列、全局時(shí)鐘(global clock, GCLK)幀列、數(shù)字信號(hào)處理(digital signal processing, DSP)幀列、塊隨機(jī)存儲(chǔ)器(block random access memory, BRAM)內(nèi)連幀列、BRAM 幀列。一個(gè)完整的配置文件就是由所有配置位置的幀信息和一些必要的首尾控制字組成。在不影響當(dāng)前程序正常運(yùn)行條件下,其中CLB 幀列、IOB 幀列、GCLK 幀列、DSP 幀列、BRAM 內(nèi)連幀列為可在線重配置幀(在線重配置不影響FPGA 正常功能),BRAM 幀列為不可在線重配置幀(在線重配置會(huì)造成FPGA RAM 區(qū)數(shù)據(jù)錯(cuò)誤)。FPGA自動(dòng)刷新是指周期性地對(duì)配置信息進(jìn)行刷新,無(wú)論是否發(fā)生SEU,均對(duì)FPGA配置區(qū)進(jìn)行刷新操作。為了減少刷新中斷,本設(shè)計(jì)采用基于幀的刷新算法,這種算法把刷新最小單位限制在一幀范圍內(nèi),根據(jù)FPGA刷新配置區(qū)的寄存器命令序列對(duì)FPGA配置區(qū)進(jìn)行刷新,并且可以根據(jù)實(shí)際需求對(duì)刷新周期進(jìn)行參數(shù)設(shè)置(2 s,10 s,60 s等)。具體算法如下所示,定時(shí)刷新過程流程如圖3所示。

      圖3 定時(shí)刷新過程流程圖Fig.3 Timing refresh flow chart

      (1) 定時(shí)刷新使能信號(hào)為高時(shí)啟動(dòng)周期性刷新。接著置低SRAM型FPGA的片選CS信號(hào),開通數(shù)據(jù)通道。

      (2) 根據(jù)FPGA刷新配置區(qū)的寄存器命令序列對(duì)SRAM型FPGA的相關(guān)寄存器進(jìn)行設(shè)置,完成刷新起始地址FAR寄存器的設(shè)置。

      (3) 根據(jù)FPGA刷新配置區(qū)的寄存器命令序列完成對(duì)寫FDRI寄存器指令的設(shè)置后,開始寫配置數(shù)據(jù)量,指示刷新的第一步是從地址0開始寫入數(shù)量等同CLB幀塊的配置數(shù)據(jù);在設(shè)置完后的下一個(gè)時(shí)鐘,開始刷新從PROM來(lái)的CLB幀塊的第一幀配置數(shù)據(jù)。

      (4) 最后向數(shù)據(jù)總線寫入一幀空閑字節(jié)以配合流水邏輯,將最后一幀有效配置數(shù)據(jù)寫入FPGA內(nèi)部配置寄存器,完成對(duì)SRAM型FPGA內(nèi)部配置寄存器的刷新過程。

      (5) 狀態(tài)機(jī)回轉(zhuǎn),再次檢測(cè)刷新使能信號(hào)進(jìn)行周期性刷新。

      2.3 上注數(shù)據(jù)讀寫通道切換以及自主重構(gòu)

      在軌可通過衛(wèi)星總線通信指令對(duì)NOR FLASH存儲(chǔ)器進(jìn)行程序上注,并根據(jù)對(duì)相機(jī)圖像性能參數(shù)的監(jiān)測(cè)情況,對(duì)程序進(jìn)行自主重構(gòu)。本文以相機(jī)非均勻性校正后的殘余非均勻性為監(jiān)控參數(shù),通過上注預(yù)設(shè)了2套非均勻性算法程序,分別為定標(biāo)法和基于場(chǎng)景法校正算法。根據(jù)非均勻性的變化情況,在軌默認(rèn)選擇定標(biāo)法進(jìn)行自主重構(gòu),當(dāng)定標(biāo)法無(wú)法滿足系統(tǒng)要求時(shí),自主切換至另外一套基于場(chǎng)景法程序進(jìn)行重構(gòu),使紅外遙感相機(jī)的殘余非均勻性符合系統(tǒng)使用要求。當(dāng)紅外遙感相機(jī)在軌運(yùn)行監(jiān)測(cè)到系統(tǒng)性能參數(shù)發(fā)生變化需要上注程序時(shí),切換至NOR FLASH與反熔絲FPGA,反熔絲FPGA與SRAM型FPGA的8位數(shù)據(jù)通道以及NOR FLASH的控制線和地址線等,實(shí)現(xiàn)反熔絲FPGA作為NOR FLASH上注程序到SRAM型FPGA的通路選擇開關(guān),切換至上注數(shù)據(jù)讀寫模式時(shí),要確保停止刷新配置區(qū)。利用NOR FLASH存儲(chǔ)空間大的優(yōu)勢(shì),可以存儲(chǔ)多套參數(shù)或程序,并且上注完成后通過回讀與實(shí)際寫入的程序進(jìn)行對(duì)比,確保上注程序的有效性。按照上述流程可對(duì)NOR FLASH寫入多套參數(shù)和程序,并且可以對(duì)NOR FLASH內(nèi)的參數(shù)和程序進(jìn)行擦除重寫,成功實(shí)現(xiàn)了既可以在軌多套參數(shù)和程序上注、又可以對(duì)多套上注程序進(jìn)行定時(shí)刷新以及重配置,增加了SRAM型FPGA在軌運(yùn)行的可靠性,上注數(shù)據(jù)讀寫通道切換流程圖如圖4所示。具體算法如下所示:

      (1) 準(zhǔn)備開始上注程序,反熔絲FPGA收到來(lái)自SRAM型FPGA的SRAM型FPGA與NOR FLASH的上注程序通道信號(hào)S1、NOR FLASH的讀/寫程序通道信號(hào)S2和停止刷新不回讀標(biāo)志位同時(shí)有效,數(shù)據(jù)和控制主動(dòng)權(quán)在SRAM型FPGA,此時(shí)SRAM型FPGA對(duì)NOR FLASH執(zhí)行寫操作。

      (2) 當(dāng)SRAM型FPGA與NOR FLASH的上注程序通道信號(hào)S1有效停止刷新不回讀標(biāo)志位有效時(shí),數(shù)據(jù)和控制主動(dòng)權(quán)在SRAM型FPGA,此時(shí)SRAM型FPGA對(duì)NOR FLASH執(zhí)行讀操作。

      (3) 完成對(duì)NOR FLASH的讀寫操作后,也能當(dāng)系統(tǒng)性能指標(biāo)無(wú)法滿足系統(tǒng)要求時(shí),自主切換至另外一套程序進(jìn)行重構(gòu),滿足使用要求。也可發(fā)送指令從NOR FLASH定時(shí)刷新和重配置。

      圖4 上注數(shù)據(jù)讀寫通道切換流程圖Fig.4 Switching the inject data between read and write

      2.4 自主識(shí)別SRAM型FPGA

      自主識(shí)別SRAM型FPGA的IDCODE,實(shí)現(xiàn)了系統(tǒng)兼容Xilinx Virtex系列FPGA。每一款FPGA都有其固定的ID編碼,該編碼是一個(gè)固定的由供應(yīng)商來(lái)制定的值,用來(lái)鑒定識(shí)別該FPGA的制造商和型號(hào)。ID寄存器提供了一個(gè)很方便的方法來(lái)識(shí)別進(jìn)行測(cè)試或者編程的FPGA的ID編碼,通過配置寄存器內(nèi)發(fā)送的IDCODE指令,可以將所用的FPGA的ID編碼讀出來(lái)進(jìn)行檢查。通過對(duì)不同F(xiàn)PGA的ID進(jìn)行識(shí)別,能夠檢測(cè)并判斷目前正在運(yùn)行的FPGA屬于哪種系列。FPGA的ID可以通過Virtex-2/Virtex-4/Virtex-5/Virtex-7等系列的IDCODE編碼表進(jìn)行查找。

      具體算法流程如下所示:

      (1) 在執(zhí)行重配置指令時(shí),SRAM型FPGA進(jìn)行配置初始化,在器件進(jìn)行同步化后,在配置數(shù)據(jù)下載前必須先通過器件自身的ID檢查,FPGA會(huì)解同步,然后進(jìn)行配置數(shù)據(jù)的下載。

      (2) 在執(zhí)行定時(shí)刷新指令時(shí),首先回讀SRAM型FPGA的IDCODE,然后根據(jù)回讀的IDCODE,對(duì)不同類型的SRAM型FPGA的刷新配置區(qū)刷新序列代碼進(jìn)行調(diào)用,實(shí)現(xiàn)了對(duì)不同系列SRAM型FPGA刷新代碼的兼容。

      2.5 多源外部存儲(chǔ)器切換

      SRAM型FPGA可以從不同外部程序存儲(chǔ)器芯片中(PROM、flash和NOR FLASH)進(jìn)行程序動(dòng)態(tài)定時(shí)刷新以及全部重構(gòu)??梢酝ㄟ^指令對(duì)定時(shí)刷新以及程序重構(gòu)源進(jìn)行選擇,提高了SRAM型FPGA在軌使用的可靠性,多源外部存儲(chǔ)器切換流程如圖5所示。

      圖5 多源外部存儲(chǔ)器切換流程Fig.5 Switch of multi-source external memory

      多源選擇外部存儲(chǔ)器,實(shí)現(xiàn)了PROM,flash以及NOR FLASH內(nèi)多套程序任意源切換的功能。系統(tǒng)上電運(yùn)行正常后,刷新/重配置數(shù)據(jù)通道(SelectMAP接口)優(yōu)先級(jí)最高,此時(shí)可以發(fā)送從PROM刷新/重載,從flash刷新/重載以及從NOR FLASH刷新/重載指令,通過指令解析單元,分別對(duì)相應(yīng)的指令進(jìn)行解析并且對(duì)相應(yīng)的程序存儲(chǔ)器執(zhí)行對(duì)應(yīng)指令的操作。只有當(dāng)SRAM型FPGA與NOR FLASH的上注程序通道信號(hào)S1有效時(shí),把數(shù)據(jù)通道切換至NOR FLASH上注程序讀寫通道。

      2.6 在軌回讀FPGA工作狀態(tài)

      為了更好地實(shí)現(xiàn)SRAM型FPGA在軌工作的可靠性,可以在軌通過selectMAP接口回讀SRAM型FPGA狀態(tài)寄存器的關(guān)鍵狀態(tài)信息,狀態(tài)寄存器內(nèi)的信息發(fā)生變化,可以判斷FPGA在軌工作出現(xiàn)SEU,那么此時(shí)FPGA應(yīng)該要被完全重配置。因此能有效判斷SRAM型FPGA在軌工作狀態(tài),是否受單粒子等空間環(huán)境影響,能及時(shí)有效地提高其在軌運(yùn)行的可靠性。

      以Virtex-4 FPGA為例,其狀態(tài)寄存器共32 bits,如果bit5或者bit6返回“0”會(huì)有三態(tài)輸出或者不能對(duì)器件進(jìn)行同步更新;如果bit7翻轉(zhuǎn),FPGA會(huì)被打翻,喪失功能。因此通過回讀狀態(tài)寄存器內(nèi)的信息,判斷器件有無(wú)翻轉(zhuǎn),根據(jù)需要進(jìn)行重新配置或者定時(shí)刷新,以減輕SEU造成的影響,根據(jù)Virtex-4 FPGA狀態(tài)寄存器檢測(cè)命令,實(shí)現(xiàn)了對(duì)FPGA狀態(tài)寄存器的讀取操作。

      3 系統(tǒng)驗(yàn)證

      系統(tǒng)中的SRAM型FPGA以Xilinx公司 Virtex-4系列FPGA為例,反熔絲FPGA以Actel公司A54SX72A為例,驗(yàn)證周期性定時(shí)刷新、程序上注、數(shù)據(jù)源切換以及系統(tǒng)功能。

      3.1 定時(shí)刷新驗(yàn)證

      首先程序中設(shè)置刷新時(shí)間間隔為2 s,系統(tǒng)運(yùn)行時(shí),通過示波器觀察Virtex-4 FPGA的寫信號(hào)CS為“0”,此時(shí)開通數(shù)據(jù)通道,由于配置時(shí)鐘CCLK為4 MHz,2 s定時(shí)刷新部分配置數(shù)據(jù)有大約1 996 000個(gè)數(shù)據(jù)(8 bit并行數(shù)據(jù)),因此2 s定時(shí)刷新的部分配置數(shù)據(jù)長(zhǎng)度約為499 000 μs,約499 ms,如圖6所示。實(shí)測(cè)刷新時(shí)間間隔為2 s,如圖7所示。

      圖6 刷新數(shù)據(jù)時(shí)間 Fig.6 Data refresh time

      圖7 刷新時(shí)間間隔Fig.7 Refresh interval

      經(jīng)過查找.bit或者.rbt文件,找出第一個(gè)同步字FF FF FF FF在第一行配置數(shù)據(jù),到最后一個(gè)配置數(shù)據(jù)頭共有98個(gè)數(shù)(8 bit并行數(shù)據(jù)),配置時(shí)鐘CCLK為4 MHz,因此到后一個(gè)配置數(shù)據(jù)頭的時(shí)間為98×0.25 μs=24.5 μs。通過觀察示波器數(shù)據(jù)位的輸出,從配置數(shù)據(jù)頭的第一個(gè)FF到最后一個(gè)數(shù)據(jù)間隔時(shí)間為24.5 μs,如圖8所示。

      圖8 配置數(shù)據(jù)幀頭時(shí)間Fig.8 Time of the header of the configure data

      3.2 程序上注驗(yàn)證

      上注程序后,通過Xinlinx公司的集成軟件環(huán)境(integrated software environment, ISE)中的ChipScope工具插核回讀數(shù)據(jù)是否上注成功。從ChipScope工具插核回讀第一包與實(shí)際注數(shù)包比對(duì),上注數(shù)據(jù)正確,如圖9所示。

      從ChipScope插核回讀最后一包上注數(shù)據(jù)與實(shí)際注數(shù)包比對(duì),上注數(shù)據(jù)正確,如圖10所示。

      3.3 數(shù)據(jù)源切換驗(yàn)證

      對(duì)不同數(shù)據(jù)源用指令進(jìn)行切換,數(shù)據(jù)源切換后,通過示波器觀察刷新數(shù)據(jù)時(shí)間約為499 ms,刷新時(shí)間間隔為2 s,配置幀頭時(shí)間為24.5 μs,如圖6~圖8所示,每次通過刷新指令切換不同數(shù)據(jù)源均符合以上要求,說明對(duì)不同數(shù)據(jù)源用指令切換操作成功。

      圖9 回讀第一包上注數(shù)據(jù)示意圖Fig.9 Readback of the first injected data

      圖10 回讀最后一包注數(shù)包Fig.10 Readback of the last injected data

      3.4 系統(tǒng)功能驗(yàn)證

      該方法已在軌應(yīng)用于某型號(hào)紅外遙感相機(jī),并對(duì)關(guān)鍵測(cè)控信號(hào)進(jìn)行TMR。該型號(hào)紅外遙感相機(jī)圖像用SRAM型FPGA采集紅外圖像時(shí)發(fā)現(xiàn)閃點(diǎn)(高亮度孤立點(diǎn))增加的現(xiàn)象。經(jīng)過分析是由于SRAM型FPGA中控制圖像排列時(shí)序的寄存器單元受空間環(huán)境中單粒子影響發(fā)生了翻轉(zhuǎn),導(dǎo)致時(shí)序不匹配,數(shù)據(jù)讀寫的建立時(shí)間不滿足要求造成圖像散點(diǎn)增加,最終導(dǎo)致SRAM型FPGA的SEU故障發(fā)生。經(jīng)過在軌連續(xù)監(jiān)測(cè),該現(xiàn)象的SEU故障發(fā)生概率約為1.5年/次,沒有進(jìn)行該架構(gòu)設(shè)計(jì)的其他星上載荷監(jiān)測(cè)到SEU發(fā)生故障概率平均約1月/次,由此可見該架構(gòu)和算法能有效降低SEU的故障次數(shù),滿足工程實(shí)用性的需求。

      對(duì)紅外遙感相機(jī)圖像的非均勻性指標(biāo)進(jìn)行預(yù)設(shè),若其變化超過5%(可設(shè)置),則對(duì)圖像參數(shù)算法進(jìn)行程序自主重構(gòu),使圖像性能達(dá)到系統(tǒng)要求指標(biāo)范圍5%以內(nèi)。圖11為程序自主重構(gòu)前參數(shù)效果圖,圖12為程序自主重構(gòu)后參數(shù)調(diào)整效果圖。

      圖11 參數(shù)調(diào)整前圖像Fig.11 Image before parameter adjustment

      圖12 參數(shù)調(diào)整后圖像Fig.12 Image after parameter adjustment

      通過以上系統(tǒng)功能性驗(yàn)證表明,本設(shè)計(jì)實(shí)現(xiàn)了多源刷新重構(gòu),對(duì)于在軌遇到性能參數(shù)發(fā)生變化影響系統(tǒng)使用時(shí),可通過在軌程序自主重構(gòu)滿足系統(tǒng)在軌使用性能,并且在工程項(xiàng)目中得到很好的應(yīng)用。

      4 結(jié) 論

      本文提出了基于Xilinx Virtex系列SRAM型FPGA的自主多源重構(gòu)方法,針對(duì)不同Xilinx Virtex系列FPGA能夠自主識(shí)別,采用不同存儲(chǔ)器源頭,對(duì)SRAM型FPGA進(jìn)行靈活刷新、重構(gòu),不僅提供了可以通過在軌上注程序并且自主重構(gòu)滿足圖像性能的辦法,還有效減少了SRAM型FPGA在軌遇到單粒子問題的次數(shù),成功實(shí)現(xiàn)了在軌定時(shí)刷新+多源+自主的抗單粒子高可靠性方案。

      猜你喜歡
      熔絲存儲(chǔ)器寄存器
      熔絲制造的三維連續(xù)編織填充圖案
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      高效率并行熔絲方案的設(shè)計(jì)
      存儲(chǔ)器——安格爾(墨西哥)▲
      別克君威車散熱風(fēng)扇熔絲頻繁熔斷
      基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
      大庆市| 清水河县| 遂平县| 许昌县| 石河子市| 嵩明县| 广东省| 萨迦县| 绩溪县| 翁源县| 六枝特区| 泽库县| 玉田县| 土默特右旗| 河南省| 江永县| 南雄市| 舟山市| 扶绥县| 安化县| 凤冈县| 安泽县| 民和| 五莲县| 呼图壁县| 搜索| 东兴市| 辽中县| 保德县| 铅山县| 湖南省| 康乐县| 镇沅| 泗水县| 车致| 通化县| 鄂伦春自治旗| 陵川县| 新郑市| 泰来县| 博湖县|