• 
    

    
    

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

      基于FPGA的嵌入式加固系統(tǒng)設(shè)計(jì)

      2014-09-15 18:28:06王璐楊瑞強(qiáng)
      現(xiàn)代電子技術(shù) 2014年18期
      關(guān)鍵詞:狀態(tài)機(jī)配置文件時(shí)序

      王璐+楊瑞強(qiáng)

      摘 要: 針對(duì)空間輻照環(huán)境,設(shè)計(jì)了一款基于FPGA平臺(tái)抗輻照加固嵌入式系統(tǒng)。通過對(duì)存儲(chǔ)單元進(jìn)行三模冗余設(shè)計(jì)和(12,8)漢明碼EDAC編碼設(shè)計(jì)進(jìn)行加固。對(duì)MC8051 IP核、I2C IP核、判決器,EDAC編碼解碼器等模塊進(jìn)行部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)。使用ICAP接口進(jìn)行回讀對(duì)比和動(dòng)態(tài)可重構(gòu)操作。系統(tǒng)配置后,定時(shí)對(duì)其進(jìn)行回讀對(duì)比。當(dāng)檢測(cè)到FPGA發(fā)生單粒子翻轉(zhuǎn)時(shí),采用部分重配置消除單粒子影響,使系統(tǒng)恢復(fù)正常。

      關(guān)鍵字: 抗輻照; 三模冗余; EDCA; 動(dòng)態(tài)重構(gòu); ICAP

      中圖分類號(hào): TN91?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)18?0117?04

      Design of anti?radiation embedded hardened system based on FPGA

      WANG Lu, YANG Rui?qiang

      (Lanzhou Institution of Physics, Lanzhou 730000, China)

      Abstract: For the space radiation environment, an anti?radiation embedded hardened system based on FPGA is designed in this paper. The anti?radiation system is hardened by triple modular redundancy (TMR) design of memory units and Hamming Code(12,8)EDAC coding design. The partial dynamic reconfiguration design of MC8051 IP core, I2C IP core, decision device and EDAC codec modules was conducted. ICAP interface was used for readback contrast and dynamic reconfiguration operation. When SEU occurrence of FPGA is detected, partial reconfiguration is used to eliminate the single?particle impact, so as to make the system return to normal.

      Keywards: radiation resistence; triple modular redundancy; EDAC; dynamic reconfiguration; ICAP

      0 引 言

      航天器在外太空飛行,一直處于帶電粒子構(gòu)成的空間輻射環(huán)境中??臻g輻射環(huán)境中的高能質(zhì)子、中子、粒子、重離子等都能導(dǎo)致航天器電子系統(tǒng)中的半導(dǎo)體器件發(fā)生失效,錯(cuò)誤等故障,嚴(yán)重影響航天器的可靠性和壽命。據(jù)美國(guó)國(guó)家地球物理數(shù)據(jù)中心統(tǒng)計(jì),自1971—1986年間,美國(guó)發(fā)射的39顆同步衛(wèi)星,發(fā)生的故障共1 589次,其中由于各種輻射效應(yīng)引起的故障達(dá)1 129次,占故障總數(shù)的71%,單粒子效應(yīng)又占了輻照故障的55%。中國(guó)空間科學(xué)技術(shù)研究院的統(tǒng)計(jì)了我國(guó)6顆同步衛(wèi)星中的故障原因,空間輻射環(huán)境引起的故障在總故障中的比例[1]也達(dá)到了40%。這些數(shù)據(jù)表明輻射效應(yīng)是航天器發(fā)生故障的重要原因,是航天應(yīng)用集成電路中需要解決的主要問題。

      星載平臺(tái)為了提高處理速度和綜合性能,越來(lái)越多采用高密度SRAM型FPGA。SRAM型FPGA的配置存儲(chǔ)器單元及LUT存儲(chǔ)單元比較敏感,容易受單粒子效應(yīng)影響。當(dāng)配置存儲(chǔ)單元發(fā)生失效將導(dǎo)致FPGA功能持久失效(直到重新配置成功)。LUT存儲(chǔ)單元發(fā)生單粒子翻轉(zhuǎn)會(huì)使得FPGA邏輯功能出現(xiàn)變化,使得配置邏輯與用戶描述邏輯不一致。

      1 系統(tǒng)設(shè)計(jì)

      本文針對(duì)單粒子效應(yīng)對(duì)FPGA的影響,設(shè)計(jì)一款抗輻照加固的嵌入式系統(tǒng),系統(tǒng)框圖如圖1所示。

      圖1 系統(tǒng)框圖

      系統(tǒng)核心模塊是MC8051 IP CORE,是由Oregano Systems公司開發(fā)的一款開源8051 IP核,其具有全可綜合同步時(shí)鐘設(shè)計(jì),指令集完全兼容標(biāo)準(zhǔn)8051微控制器,優(yōu)化架構(gòu)使得操作碼達(dá)到每操作碼1~4個(gè)時(shí)鐘,外圍定時(shí)器、計(jì)數(shù)器及串口單元可根據(jù)需要定制等特點(diǎn)。在其外圍配置4 KB的ROM,4 KB的RAM,以及16 KB的RAMX。系統(tǒng)中選用的I2C IP Core 由Open Cores維護(hù),遵守Wishbone總線協(xié)議,編寫一個(gè)8051到Wishbone轉(zhuǎn)換接口將MC8051核與I2C核連接起來(lái)。因?yàn)橹恍枰B接一個(gè)I2C模塊,所有遵從Wishbone點(diǎn)到點(diǎn)連接模式,不需要另外設(shè)計(jì)仲裁器。構(gòu)成統(tǒng)一的嵌入式系統(tǒng)。系統(tǒng)配置后,定時(shí)對(duì)其進(jìn)行回讀對(duì)比。當(dāng)檢測(cè)到FPGA發(fā)生單粒子翻轉(zhuǎn)時(shí),采用部分重配置消除單粒子影響,使系統(tǒng)恢復(fù)正常。因?yàn)閷?duì)BRAM或SRL16回讀有可能導(dǎo)致FPGA鎖死,設(shè)計(jì)中不對(duì)存儲(chǔ)模塊進(jìn)行回讀對(duì)比,對(duì)RAMX做(12,8)漢明碼的EDAC設(shè)計(jì),對(duì)RAM做三模冗余設(shè)計(jì),為保證時(shí)序正確,未對(duì)ROM部分做加固設(shè)計(jì)。

      2 加固設(shè)計(jì)實(shí)現(xiàn)

      2.1 TMR設(shè)計(jì)

      三模冗余是指將目標(biāo)部件復(fù)制相成同的三個(gè)目標(biāo)部件來(lái)實(shí)現(xiàn)一個(gè)目標(biāo)部件的功能,三個(gè)目標(biāo)部件最終將通過一個(gè)判決器來(lái)判斷目標(biāo)部件的正確狀態(tài)。它利用的是相同一組部件同時(shí)出現(xiàn)錯(cuò)誤概率較小的原理來(lái)實(shí)現(xiàn)可靠性的提高。

      對(duì)片內(nèi)RAM做三倍冗余加固有助于提高抗輻照性能。具體實(shí)現(xiàn)如圖2,圖3所示,圖2為RAM三模冗余的頂層視圖,圖3為判決器門級(jí)視圖。

      圖2 RAM三模冗余

      2.2 EDAC漢明碼編碼設(shè)計(jì)

      錯(cuò)誤檢測(cè)糾正編碼是提高存儲(chǔ)系統(tǒng)的可靠性的一種常用技術(shù),將用于存儲(chǔ)器的糾錯(cuò)編碼技術(shù)引入芯片內(nèi)部,自動(dòng)檢測(cè)并糾正錯(cuò)誤。這種方案不需要芯片外部提供額外的測(cè)試和糾正錯(cuò)誤等環(huán)節(jié),對(duì)可靠性有明顯改進(jìn)。

      EDAC有多種編碼技術(shù),不同的編碼技術(shù)有不同的檢錯(cuò)和糾錯(cuò)能力。本文選擇使用[12,8]擴(kuò)展?jié)h明碼編碼來(lái)對(duì)RAMX模塊加固。即增加4位校驗(yàn)位,能夠?qū)崿F(xiàn)8位數(shù)據(jù)的2位查錯(cuò),1位糾錯(cuò)。

      圖3 TMR判決器

      設(shè)8位數(shù)據(jù)為D7~D0,4位校驗(yàn)位為C3~C0,伴隨向量為S3~S0。則C3~C0為:

      [C3=D7⊕D6⊕D5⊕D4C2=D7⊕D3⊕D2⊕D1C1=D6⊕D5⊕D3⊕D2⊕D0C0=D6⊕D4⊕D3⊕D1⊕D0]

      伴隨向量S3~S0為:

      [S3=D7⊕D6⊕D5⊕D4⊕C3S2=D7⊕D3⊕D2⊕D1⊕C2S1=D6⊕D5⊕D3⊕D2⊕D0⊕C1S0=D6⊕D4⊕D3⊕D1⊕D0⊕C0]

      其伴隨向量與出錯(cuò)位置的對(duì)應(yīng)關(guān)系如表1所列[2]。

      表1 對(duì)應(yīng)出錯(cuò)關(guān)系表

      設(shè)計(jì)狀態(tài)機(jī)完成EDAC編碼解碼功能。當(dāng)系統(tǒng)對(duì)RAMX進(jìn)行寫操作時(shí),EDAC模塊首先將地址鎖存,對(duì)數(shù)據(jù)進(jìn)行編碼處理,然后下一個(gè)時(shí)鐘沿到來(lái)將編碼后數(shù)據(jù)輸出給RAMX。當(dāng)系統(tǒng)讀取RAMX中數(shù)據(jù)時(shí),數(shù)據(jù)首先被讀取到EDAC模塊中并分別鎖存,進(jìn)而對(duì)數(shù)據(jù)進(jìn)行譯碼操作,如果無(wú)誤則將譯碼后數(shù)據(jù)輸出給系統(tǒng),如果有錯(cuò)過,EDAC模塊將對(duì)錯(cuò)誤進(jìn)行糾正,并分別將糾正后數(shù)據(jù)發(fā)送系統(tǒng)和RAMX。狀態(tài)機(jī)流程如圖4所示。

      為了滿足時(shí)序RAMX和EDAC模塊時(shí)鐘應(yīng)是主時(shí)鐘的5倍,對(duì)外部時(shí)鐘做5分頻,再分別對(duì)應(yīng)送入各個(gè)模塊。

      圖4 狀態(tài)機(jī)設(shè)計(jì)圖

      3 部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)

      動(dòng)態(tài)重構(gòu)時(shí)選擇性的對(duì)可編程邏輯器件上的部分資源進(jìn)行重配置,而不影響其器件上的其他資源。在重配置過程中芯片仍然工作,系統(tǒng)建立新的邏輯過程中,未被重配置部分的邏輯功能仍然正常,即系統(tǒng)的邏輯功能在時(shí)間上是動(dòng)態(tài)連續(xù)的。

      Xilinx Virtex系列 FPGA中內(nèi)部帶有內(nèi)部配置訪問接口ICAP, 能對(duì)FPGA進(jìn)行讀/寫操作,該類配置方式與Slave SelectMAP相似[3]。通過 ICAP 內(nèi)部訪問配置端口對(duì) FPGA 進(jìn)行高速的局部重配置,大大提高了可重構(gòu)系統(tǒng)的性能。通過一個(gè)簡(jiǎn)單的狀態(tài)機(jī)邏輯電路將部分比特流從FLASH中提取出來(lái),然后數(shù)據(jù)通過端口送到ICAP進(jìn)行比對(duì),重配置等功能。

      HWICAP 核是 Xilinx EDK 開發(fā)工具提供的一種將ICAP原語(yǔ)封裝的 IP核,HWICAP 核包括內(nèi)部訪問配置端口 (Internal Configuration Access Port,ICAP)、塊RAM(BlockRAM),以及相應(yīng)的配置控制器[4]。BRAM 相當(dāng)于配置存儲(chǔ)器的緩存,用于存儲(chǔ)從 FLASH中提取的局部重構(gòu)模塊的比特流文件或者從配置存儲(chǔ)器讀取的FPGA配置信息。

      4 局部重構(gòu)設(shè)計(jì)和實(shí)現(xiàn)流程

      4.1 模塊設(shè)計(jì)和綜合

      首先對(duì)整個(gè)設(shè)計(jì)進(jìn)行劃分,包含一個(gè)靜態(tài)任務(wù)子集和一個(gè)動(dòng)態(tài)任務(wù)子集,如圖5所示將MC8051 CORE,I2C core及判決器,編碼器部分做為動(dòng)態(tài)模塊,將HWICAP,存儲(chǔ)模塊,控制邏輯模塊等作為靜態(tài)模塊[5]。完成頂層模塊設(shè)計(jì)輸入和綜合,完成各個(gè)子模塊的設(shè)計(jì)輸入,綜合時(shí)子模塊禁止插入I/O。

      圖5 重配置框圖

      4.2 初始預(yù)算

      對(duì)設(shè)計(jì)進(jìn)行全局區(qū)域布局,劃分動(dòng)態(tài)可重構(gòu)區(qū)域及靜態(tài)區(qū)域。完成頂層模塊和各個(gè)子模塊的時(shí)序約束,完成各個(gè)模塊區(qū)域約束及輸入/輸出約束。

      4.3 模塊激活

      對(duì)每一個(gè)子模塊進(jìn)行激活實(shí)現(xiàn),將初始預(yù)算中作為“黑盒”處理的的子模塊用具體功能的網(wǎng)表文件替代完成設(shè)計(jì)[6]。對(duì)每個(gè)子模塊內(nèi)部邏輯進(jìn)行單獨(dú)約束。動(dòng)態(tài)可重構(gòu)模塊需要單獨(dú)被綜合實(shí)現(xiàn)。

      4.4 合并階段

      結(jié)合頂層模塊將各個(gè)子模塊合并,生成一個(gè)包含靜態(tài)模塊和動(dòng)態(tài)可重構(gòu)模塊的完整的設(shè)計(jì)。在這個(gè)階段,軟件會(huì)優(yōu)化掉模塊間沒有啟用的信號(hào),優(yōu)化整體系統(tǒng)性能。

      4.5 下載實(shí)現(xiàn)

      完成整體布局布線之后,分別生成整個(gè)設(shè)計(jì)的全局配置文件和局部動(dòng)態(tài)可重構(gòu)模塊的配置文件。使用XILINX 的iMPACT工具將配置文件下載到FPGA中實(shí)現(xiàn)設(shè)計(jì)。將局部動(dòng)態(tài)可重構(gòu)模塊配置文件拷貝到片外FLASH中,以完成后續(xù)動(dòng)態(tài)可重構(gòu)操作。

      5 容錯(cuò)處理流程

      系統(tǒng)上電后,開始正常工作,控制邏輯通過ICAP接口回讀比較FPGA中的配置位信息與FLASH中是否一致,如果一致,系統(tǒng)繼續(xù)工作,如果不一致,判斷為FPGA配置位發(fā)生單粒子翻轉(zhuǎn),通過ICAP讀取FLASH中部分動(dòng)態(tài)可重構(gòu)配置文件完成動(dòng)態(tài)重構(gòu)操作,消除單粒子效應(yīng)對(duì)系統(tǒng)的影響。容錯(cuò)處理流程見圖6。

      6 仿真驗(yàn)證

      對(duì)整個(gè)系統(tǒng)做仿真驗(yàn)證,驗(yàn)證加固后設(shè)計(jì)是否滿足時(shí)序要求,與初始設(shè)計(jì)時(shí)序是否一致。

      部分代碼如下:

      這是一條簡(jiǎn)單的匯編程序,首先清零RAM,然后對(duì)累加器A和R0分別賦值0,然后相加再寫入A,最后用A減去20,如果為零則跳轉(zhuǎn)到下一條程序,如果非0,則對(duì)P1賦值2,并跳出程序。以此類似,遍歷所有標(biāo)準(zhǔn)51指令集。

      MOV P1,#127 ; //All instructions passed

      圖6 容錯(cuò)處理流程

      當(dāng)所有程序都正常完成,對(duì)P1賦值127,結(jié)束程序。仿真結(jié)果如圖7示,驗(yàn)證無(wú)誤,與預(yù)期結(jié)果一致。

      7 結(jié) 語(yǔ)

      本文通過FPGA平臺(tái)設(shè)計(jì)一款抗輻照加固嵌入式系統(tǒng),通過對(duì)存儲(chǔ)單元進(jìn)行三模冗余設(shè)計(jì)和8位漢明碼EDAC編碼設(shè)計(jì)進(jìn)行加固。對(duì)MC8051 IP核,I2C IP核、判決器,EDAC編碼解碼器等模塊進(jìn)行部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)。通過加固設(shè)計(jì)后的系統(tǒng)在空間環(huán)境中的應(yīng)用范圍將大大擴(kuò)大。通過仿真的手段對(duì)系統(tǒng)功能和時(shí)序進(jìn)行了驗(yàn)證。但是對(duì)于加固的性能還沒有進(jìn)行論證,需要在進(jìn)一步的工作中完成抗輻照能力驗(yàn)證。

      圖7 仿真波形

      參考文獻(xiàn)

      [1] 劉必慰.集成電路單粒子效應(yīng)建模與加固方法研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2009.

      [2] 周盛雨,陳曉敏.一種糾錯(cuò)編碼器的實(shí)現(xiàn)[J].電子技術(shù),2003(3):10?12.

      [3] Xilinx Inc. Xilinx defense and aerospace presentation [EB/OL].[2011?10?06]. http://www.xilinx.com/publication/prod_mktg/MilAero.pdf.

      [4] Xilin x Inc. Virte x?II platform FPGA user guide [EB/OL]. [2007?11?05]. http//www.xilinx.com/support/documentation/user_guides/ug002.pdf.

      [5] 周秀娟,葉榮潤(rùn).Virtex?Ⅱ系列FPGA的回讀與部分重配置 [J].現(xiàn)代電子技術(shù),2012,35(13):159?161.

      [6] 馬寅.航天用SRAM型FPGA抗單粒子翻轉(zhuǎn)設(shè)計(jì)[J].航天器環(huán)境工程,2011(6):551?555.

      圖2 RAM三模冗余

      2.2 EDAC漢明碼編碼設(shè)計(jì)

      錯(cuò)誤檢測(cè)糾正編碼是提高存儲(chǔ)系統(tǒng)的可靠性的一種常用技術(shù),將用于存儲(chǔ)器的糾錯(cuò)編碼技術(shù)引入芯片內(nèi)部,自動(dòng)檢測(cè)并糾正錯(cuò)誤。這種方案不需要芯片外部提供額外的測(cè)試和糾正錯(cuò)誤等環(huán)節(jié),對(duì)可靠性有明顯改進(jìn)。

      EDAC有多種編碼技術(shù),不同的編碼技術(shù)有不同的檢錯(cuò)和糾錯(cuò)能力。本文選擇使用[12,8]擴(kuò)展?jié)h明碼編碼來(lái)對(duì)RAMX模塊加固。即增加4位校驗(yàn)位,能夠?qū)崿F(xiàn)8位數(shù)據(jù)的2位查錯(cuò),1位糾錯(cuò)。

      圖3 TMR判決器

      設(shè)8位數(shù)據(jù)為D7~D0,4位校驗(yàn)位為C3~C0,伴隨向量為S3~S0。則C3~C0為:

      [C3=D7⊕D6⊕D5⊕D4C2=D7⊕D3⊕D2⊕D1C1=D6⊕D5⊕D3⊕D2⊕D0C0=D6⊕D4⊕D3⊕D1⊕D0]

      伴隨向量S3~S0為:

      [S3=D7⊕D6⊕D5⊕D4⊕C3S2=D7⊕D3⊕D2⊕D1⊕C2S1=D6⊕D5⊕D3⊕D2⊕D0⊕C1S0=D6⊕D4⊕D3⊕D1⊕D0⊕C0]

      其伴隨向量與出錯(cuò)位置的對(duì)應(yīng)關(guān)系如表1所列[2]。

      表1 對(duì)應(yīng)出錯(cuò)關(guān)系表

      設(shè)計(jì)狀態(tài)機(jī)完成EDAC編碼解碼功能。當(dāng)系統(tǒng)對(duì)RAMX進(jìn)行寫操作時(shí),EDAC模塊首先將地址鎖存,對(duì)數(shù)據(jù)進(jìn)行編碼處理,然后下一個(gè)時(shí)鐘沿到來(lái)將編碼后數(shù)據(jù)輸出給RAMX。當(dāng)系統(tǒng)讀取RAMX中數(shù)據(jù)時(shí),數(shù)據(jù)首先被讀取到EDAC模塊中并分別鎖存,進(jìn)而對(duì)數(shù)據(jù)進(jìn)行譯碼操作,如果無(wú)誤則將譯碼后數(shù)據(jù)輸出給系統(tǒng),如果有錯(cuò)過,EDAC模塊將對(duì)錯(cuò)誤進(jìn)行糾正,并分別將糾正后數(shù)據(jù)發(fā)送系統(tǒng)和RAMX。狀態(tài)機(jī)流程如圖4所示。

      為了滿足時(shí)序RAMX和EDAC模塊時(shí)鐘應(yīng)是主時(shí)鐘的5倍,對(duì)外部時(shí)鐘做5分頻,再分別對(duì)應(yīng)送入各個(gè)模塊。

      圖4 狀態(tài)機(jī)設(shè)計(jì)圖

      3 部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)

      動(dòng)態(tài)重構(gòu)時(shí)選擇性的對(duì)可編程邏輯器件上的部分資源進(jìn)行重配置,而不影響其器件上的其他資源。在重配置過程中芯片仍然工作,系統(tǒng)建立新的邏輯過程中,未被重配置部分的邏輯功能仍然正常,即系統(tǒng)的邏輯功能在時(shí)間上是動(dòng)態(tài)連續(xù)的。

      Xilinx Virtex系列 FPGA中內(nèi)部帶有內(nèi)部配置訪問接口ICAP, 能對(duì)FPGA進(jìn)行讀/寫操作,該類配置方式與Slave SelectMAP相似[3]。通過 ICAP 內(nèi)部訪問配置端口對(duì) FPGA 進(jìn)行高速的局部重配置,大大提高了可重構(gòu)系統(tǒng)的性能。通過一個(gè)簡(jiǎn)單的狀態(tài)機(jī)邏輯電路將部分比特流從FLASH中提取出來(lái),然后數(shù)據(jù)通過端口送到ICAP進(jìn)行比對(duì),重配置等功能。

      HWICAP 核是 Xilinx EDK 開發(fā)工具提供的一種將ICAP原語(yǔ)封裝的 IP核,HWICAP 核包括內(nèi)部訪問配置端口 (Internal Configuration Access Port,ICAP)、塊RAM(BlockRAM),以及相應(yīng)的配置控制器[4]。BRAM 相當(dāng)于配置存儲(chǔ)器的緩存,用于存儲(chǔ)從 FLASH中提取的局部重構(gòu)模塊的比特流文件或者從配置存儲(chǔ)器讀取的FPGA配置信息。

      4 局部重構(gòu)設(shè)計(jì)和實(shí)現(xiàn)流程

      4.1 模塊設(shè)計(jì)和綜合

      首先對(duì)整個(gè)設(shè)計(jì)進(jìn)行劃分,包含一個(gè)靜態(tài)任務(wù)子集和一個(gè)動(dòng)態(tài)任務(wù)子集,如圖5所示將MC8051 CORE,I2C core及判決器,編碼器部分做為動(dòng)態(tài)模塊,將HWICAP,存儲(chǔ)模塊,控制邏輯模塊等作為靜態(tài)模塊[5]。完成頂層模塊設(shè)計(jì)輸入和綜合,完成各個(gè)子模塊的設(shè)計(jì)輸入,綜合時(shí)子模塊禁止插入I/O。

      圖5 重配置框圖

      4.2 初始預(yù)算

      對(duì)設(shè)計(jì)進(jìn)行全局區(qū)域布局,劃分動(dòng)態(tài)可重構(gòu)區(qū)域及靜態(tài)區(qū)域。完成頂層模塊和各個(gè)子模塊的時(shí)序約束,完成各個(gè)模塊區(qū)域約束及輸入/輸出約束。

      4.3 模塊激活

      對(duì)每一個(gè)子模塊進(jìn)行激活實(shí)現(xiàn),將初始預(yù)算中作為“黑盒”處理的的子模塊用具體功能的網(wǎng)表文件替代完成設(shè)計(jì)[6]。對(duì)每個(gè)子模塊內(nèi)部邏輯進(jìn)行單獨(dú)約束。動(dòng)態(tài)可重構(gòu)模塊需要單獨(dú)被綜合實(shí)現(xiàn)。

      4.4 合并階段

      結(jié)合頂層模塊將各個(gè)子模塊合并,生成一個(gè)包含靜態(tài)模塊和動(dòng)態(tài)可重構(gòu)模塊的完整的設(shè)計(jì)。在這個(gè)階段,軟件會(huì)優(yōu)化掉模塊間沒有啟用的信號(hào),優(yōu)化整體系統(tǒng)性能。

      4.5 下載實(shí)現(xiàn)

      完成整體布局布線之后,分別生成整個(gè)設(shè)計(jì)的全局配置文件和局部動(dòng)態(tài)可重構(gòu)模塊的配置文件。使用XILINX 的iMPACT工具將配置文件下載到FPGA中實(shí)現(xiàn)設(shè)計(jì)。將局部動(dòng)態(tài)可重構(gòu)模塊配置文件拷貝到片外FLASH中,以完成后續(xù)動(dòng)態(tài)可重構(gòu)操作。

      5 容錯(cuò)處理流程

      系統(tǒng)上電后,開始正常工作,控制邏輯通過ICAP接口回讀比較FPGA中的配置位信息與FLASH中是否一致,如果一致,系統(tǒng)繼續(xù)工作,如果不一致,判斷為FPGA配置位發(fā)生單粒子翻轉(zhuǎn),通過ICAP讀取FLASH中部分動(dòng)態(tài)可重構(gòu)配置文件完成動(dòng)態(tài)重構(gòu)操作,消除單粒子效應(yīng)對(duì)系統(tǒng)的影響。容錯(cuò)處理流程見圖6。

      6 仿真驗(yàn)證

      對(duì)整個(gè)系統(tǒng)做仿真驗(yàn)證,驗(yàn)證加固后設(shè)計(jì)是否滿足時(shí)序要求,與初始設(shè)計(jì)時(shí)序是否一致。

      部分代碼如下:

      這是一條簡(jiǎn)單的匯編程序,首先清零RAM,然后對(duì)累加器A和R0分別賦值0,然后相加再寫入A,最后用A減去20,如果為零則跳轉(zhuǎn)到下一條程序,如果非0,則對(duì)P1賦值2,并跳出程序。以此類似,遍歷所有標(biāo)準(zhǔn)51指令集。

      MOV P1,#127 ; //All instructions passed

      圖6 容錯(cuò)處理流程

      當(dāng)所有程序都正常完成,對(duì)P1賦值127,結(jié)束程序。仿真結(jié)果如圖7示,驗(yàn)證無(wú)誤,與預(yù)期結(jié)果一致。

      7 結(jié) 語(yǔ)

      本文通過FPGA平臺(tái)設(shè)計(jì)一款抗輻照加固嵌入式系統(tǒng),通過對(duì)存儲(chǔ)單元進(jìn)行三模冗余設(shè)計(jì)和8位漢明碼EDAC編碼設(shè)計(jì)進(jìn)行加固。對(duì)MC8051 IP核,I2C IP核、判決器,EDAC編碼解碼器等模塊進(jìn)行部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)。通過加固設(shè)計(jì)后的系統(tǒng)在空間環(huán)境中的應(yīng)用范圍將大大擴(kuò)大。通過仿真的手段對(duì)系統(tǒng)功能和時(shí)序進(jìn)行了驗(yàn)證。但是對(duì)于加固的性能還沒有進(jìn)行論證,需要在進(jìn)一步的工作中完成抗輻照能力驗(yàn)證。

      圖7 仿真波形

      參考文獻(xiàn)

      [1] 劉必慰.集成電路單粒子效應(yīng)建模與加固方法研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2009.

      [2] 周盛雨,陳曉敏.一種糾錯(cuò)編碼器的實(shí)現(xiàn)[J].電子技術(shù),2003(3):10?12.

      [3] Xilinx Inc. Xilinx defense and aerospace presentation [EB/OL].[2011?10?06]. http://www.xilinx.com/publication/prod_mktg/MilAero.pdf.

      [4] Xilin x Inc. Virte x?II platform FPGA user guide [EB/OL]. [2007?11?05]. http//www.xilinx.com/support/documentation/user_guides/ug002.pdf.

      [5] 周秀娟,葉榮潤(rùn).Virtex?Ⅱ系列FPGA的回讀與部分重配置 [J].現(xiàn)代電子技術(shù),2012,35(13):159?161.

      [6] 馬寅.航天用SRAM型FPGA抗單粒子翻轉(zhuǎn)設(shè)計(jì)[J].航天器環(huán)境工程,2011(6):551?555.

      圖2 RAM三模冗余

      2.2 EDAC漢明碼編碼設(shè)計(jì)

      錯(cuò)誤檢測(cè)糾正編碼是提高存儲(chǔ)系統(tǒng)的可靠性的一種常用技術(shù),將用于存儲(chǔ)器的糾錯(cuò)編碼技術(shù)引入芯片內(nèi)部,自動(dòng)檢測(cè)并糾正錯(cuò)誤。這種方案不需要芯片外部提供額外的測(cè)試和糾正錯(cuò)誤等環(huán)節(jié),對(duì)可靠性有明顯改進(jìn)。

      EDAC有多種編碼技術(shù),不同的編碼技術(shù)有不同的檢錯(cuò)和糾錯(cuò)能力。本文選擇使用[12,8]擴(kuò)展?jié)h明碼編碼來(lái)對(duì)RAMX模塊加固。即增加4位校驗(yàn)位,能夠?qū)崿F(xiàn)8位數(shù)據(jù)的2位查錯(cuò),1位糾錯(cuò)。

      圖3 TMR判決器

      設(shè)8位數(shù)據(jù)為D7~D0,4位校驗(yàn)位為C3~C0,伴隨向量為S3~S0。則C3~C0為:

      [C3=D7⊕D6⊕D5⊕D4C2=D7⊕D3⊕D2⊕D1C1=D6⊕D5⊕D3⊕D2⊕D0C0=D6⊕D4⊕D3⊕D1⊕D0]

      伴隨向量S3~S0為:

      [S3=D7⊕D6⊕D5⊕D4⊕C3S2=D7⊕D3⊕D2⊕D1⊕C2S1=D6⊕D5⊕D3⊕D2⊕D0⊕C1S0=D6⊕D4⊕D3⊕D1⊕D0⊕C0]

      其伴隨向量與出錯(cuò)位置的對(duì)應(yīng)關(guān)系如表1所列[2]。

      表1 對(duì)應(yīng)出錯(cuò)關(guān)系表

      設(shè)計(jì)狀態(tài)機(jī)完成EDAC編碼解碼功能。當(dāng)系統(tǒng)對(duì)RAMX進(jìn)行寫操作時(shí),EDAC模塊首先將地址鎖存,對(duì)數(shù)據(jù)進(jìn)行編碼處理,然后下一個(gè)時(shí)鐘沿到來(lái)將編碼后數(shù)據(jù)輸出給RAMX。當(dāng)系統(tǒng)讀取RAMX中數(shù)據(jù)時(shí),數(shù)據(jù)首先被讀取到EDAC模塊中并分別鎖存,進(jìn)而對(duì)數(shù)據(jù)進(jìn)行譯碼操作,如果無(wú)誤則將譯碼后數(shù)據(jù)輸出給系統(tǒng),如果有錯(cuò)過,EDAC模塊將對(duì)錯(cuò)誤進(jìn)行糾正,并分別將糾正后數(shù)據(jù)發(fā)送系統(tǒng)和RAMX。狀態(tài)機(jī)流程如圖4所示。

      為了滿足時(shí)序RAMX和EDAC模塊時(shí)鐘應(yīng)是主時(shí)鐘的5倍,對(duì)外部時(shí)鐘做5分頻,再分別對(duì)應(yīng)送入各個(gè)模塊。

      圖4 狀態(tài)機(jī)設(shè)計(jì)圖

      3 部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)

      動(dòng)態(tài)重構(gòu)時(shí)選擇性的對(duì)可編程邏輯器件上的部分資源進(jìn)行重配置,而不影響其器件上的其他資源。在重配置過程中芯片仍然工作,系統(tǒng)建立新的邏輯過程中,未被重配置部分的邏輯功能仍然正常,即系統(tǒng)的邏輯功能在時(shí)間上是動(dòng)態(tài)連續(xù)的。

      Xilinx Virtex系列 FPGA中內(nèi)部帶有內(nèi)部配置訪問接口ICAP, 能對(duì)FPGA進(jìn)行讀/寫操作,該類配置方式與Slave SelectMAP相似[3]。通過 ICAP 內(nèi)部訪問配置端口對(duì) FPGA 進(jìn)行高速的局部重配置,大大提高了可重構(gòu)系統(tǒng)的性能。通過一個(gè)簡(jiǎn)單的狀態(tài)機(jī)邏輯電路將部分比特流從FLASH中提取出來(lái),然后數(shù)據(jù)通過端口送到ICAP進(jìn)行比對(duì),重配置等功能。

      HWICAP 核是 Xilinx EDK 開發(fā)工具提供的一種將ICAP原語(yǔ)封裝的 IP核,HWICAP 核包括內(nèi)部訪問配置端口 (Internal Configuration Access Port,ICAP)、塊RAM(BlockRAM),以及相應(yīng)的配置控制器[4]。BRAM 相當(dāng)于配置存儲(chǔ)器的緩存,用于存儲(chǔ)從 FLASH中提取的局部重構(gòu)模塊的比特流文件或者從配置存儲(chǔ)器讀取的FPGA配置信息。

      4 局部重構(gòu)設(shè)計(jì)和實(shí)現(xiàn)流程

      4.1 模塊設(shè)計(jì)和綜合

      首先對(duì)整個(gè)設(shè)計(jì)進(jìn)行劃分,包含一個(gè)靜態(tài)任務(wù)子集和一個(gè)動(dòng)態(tài)任務(wù)子集,如圖5所示將MC8051 CORE,I2C core及判決器,編碼器部分做為動(dòng)態(tài)模塊,將HWICAP,存儲(chǔ)模塊,控制邏輯模塊等作為靜態(tài)模塊[5]。完成頂層模塊設(shè)計(jì)輸入和綜合,完成各個(gè)子模塊的設(shè)計(jì)輸入,綜合時(shí)子模塊禁止插入I/O。

      圖5 重配置框圖

      4.2 初始預(yù)算

      對(duì)設(shè)計(jì)進(jìn)行全局區(qū)域布局,劃分動(dòng)態(tài)可重構(gòu)區(qū)域及靜態(tài)區(qū)域。完成頂層模塊和各個(gè)子模塊的時(shí)序約束,完成各個(gè)模塊區(qū)域約束及輸入/輸出約束。

      4.3 模塊激活

      對(duì)每一個(gè)子模塊進(jìn)行激活實(shí)現(xiàn),將初始預(yù)算中作為“黑盒”處理的的子模塊用具體功能的網(wǎng)表文件替代完成設(shè)計(jì)[6]。對(duì)每個(gè)子模塊內(nèi)部邏輯進(jìn)行單獨(dú)約束。動(dòng)態(tài)可重構(gòu)模塊需要單獨(dú)被綜合實(shí)現(xiàn)。

      4.4 合并階段

      結(jié)合頂層模塊將各個(gè)子模塊合并,生成一個(gè)包含靜態(tài)模塊和動(dòng)態(tài)可重構(gòu)模塊的完整的設(shè)計(jì)。在這個(gè)階段,軟件會(huì)優(yōu)化掉模塊間沒有啟用的信號(hào),優(yōu)化整體系統(tǒng)性能。

      4.5 下載實(shí)現(xiàn)

      完成整體布局布線之后,分別生成整個(gè)設(shè)計(jì)的全局配置文件和局部動(dòng)態(tài)可重構(gòu)模塊的配置文件。使用XILINX 的iMPACT工具將配置文件下載到FPGA中實(shí)現(xiàn)設(shè)計(jì)。將局部動(dòng)態(tài)可重構(gòu)模塊配置文件拷貝到片外FLASH中,以完成后續(xù)動(dòng)態(tài)可重構(gòu)操作。

      5 容錯(cuò)處理流程

      系統(tǒng)上電后,開始正常工作,控制邏輯通過ICAP接口回讀比較FPGA中的配置位信息與FLASH中是否一致,如果一致,系統(tǒng)繼續(xù)工作,如果不一致,判斷為FPGA配置位發(fā)生單粒子翻轉(zhuǎn),通過ICAP讀取FLASH中部分動(dòng)態(tài)可重構(gòu)配置文件完成動(dòng)態(tài)重構(gòu)操作,消除單粒子效應(yīng)對(duì)系統(tǒng)的影響。容錯(cuò)處理流程見圖6。

      6 仿真驗(yàn)證

      對(duì)整個(gè)系統(tǒng)做仿真驗(yàn)證,驗(yàn)證加固后設(shè)計(jì)是否滿足時(shí)序要求,與初始設(shè)計(jì)時(shí)序是否一致。

      部分代碼如下:

      這是一條簡(jiǎn)單的匯編程序,首先清零RAM,然后對(duì)累加器A和R0分別賦值0,然后相加再寫入A,最后用A減去20,如果為零則跳轉(zhuǎn)到下一條程序,如果非0,則對(duì)P1賦值2,并跳出程序。以此類似,遍歷所有標(biāo)準(zhǔn)51指令集。

      MOV P1,#127 ; //All instructions passed

      圖6 容錯(cuò)處理流程

      當(dāng)所有程序都正常完成,對(duì)P1賦值127,結(jié)束程序。仿真結(jié)果如圖7示,驗(yàn)證無(wú)誤,與預(yù)期結(jié)果一致。

      7 結(jié) 語(yǔ)

      本文通過FPGA平臺(tái)設(shè)計(jì)一款抗輻照加固嵌入式系統(tǒng),通過對(duì)存儲(chǔ)單元進(jìn)行三模冗余設(shè)計(jì)和8位漢明碼EDAC編碼設(shè)計(jì)進(jìn)行加固。對(duì)MC8051 IP核,I2C IP核、判決器,EDAC編碼解碼器等模塊進(jìn)行部分動(dòng)態(tài)可重構(gòu)設(shè)計(jì)。通過加固設(shè)計(jì)后的系統(tǒng)在空間環(huán)境中的應(yīng)用范圍將大大擴(kuò)大。通過仿真的手段對(duì)系統(tǒng)功能和時(shí)序進(jìn)行了驗(yàn)證。但是對(duì)于加固的性能還沒有進(jìn)行論證,需要在進(jìn)一步的工作中完成抗輻照能力驗(yàn)證。

      圖7 仿真波形

      參考文獻(xiàn)

      [1] 劉必慰.集成電路單粒子效應(yīng)建模與加固方法研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2009.

      [2] 周盛雨,陳曉敏.一種糾錯(cuò)編碼器的實(shí)現(xiàn)[J].電子技術(shù),2003(3):10?12.

      [3] Xilinx Inc. Xilinx defense and aerospace presentation [EB/OL].[2011?10?06]. http://www.xilinx.com/publication/prod_mktg/MilAero.pdf.

      [4] Xilin x Inc. Virte x?II platform FPGA user guide [EB/OL]. [2007?11?05]. http//www.xilinx.com/support/documentation/user_guides/ug002.pdf.

      [5] 周秀娟,葉榮潤(rùn).Virtex?Ⅱ系列FPGA的回讀與部分重配置 [J].現(xiàn)代電子技術(shù),2012,35(13):159?161.

      [6] 馬寅.航天用SRAM型FPGA抗單粒子翻轉(zhuǎn)設(shè)計(jì)[J].航天器環(huán)境工程,2011(6):551?555.

      猜你喜歡
      狀態(tài)機(jī)配置文件時(shí)序
      時(shí)序坐標(biāo)
      提示用戶配置文件錯(cuò)誤 這樣解決
      基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
      搭建簡(jiǎn)單的Kubernetes集群
      互不干涉混用Chromium Edge
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      忘記ESXi主機(jī)root密碼怎么辦
      一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:08
      DPBUS時(shí)序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      松江区| 双峰县| 康保县| 从化市| 常宁市| 张家口市| 行唐县| 苗栗市| 宁化县| 疏勒县| 南和县| 浮山县| 大宁县| 丰都县| 元江| 改则县| 铜梁县| 江都市| 清原| 驻马店市| 景宁| 芜湖市| 昌宁县| 长治县| 邵东县| 敖汉旗| 贞丰县| 承德市| 河间市| 洪泽县| 杭锦后旗| 奉节县| 濮阳市| 龙陵县| 宁波市| 蒲城县| 郑州市| 桐乡市| 桦南县| 高陵县| 浦城县|