• 
    

    
    

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

      三模冗余對SRAM型FPGA寄存器上電狀態(tài)的影響分析

      2022-10-25 03:13:32馬小霞賈露娟
      空間電子技術(shù) 2022年5期
      關(guān)鍵詞:布線寄存器端口

      馬小霞,李 園,賈露娟,郭 睿

      (蘭州空間技術(shù)物理研究所,蘭州 730000)

      0 引言

      現(xiàn)場可編輯門陣列(field-programmable gate array,FPGA)是當(dāng)今數(shù)字系統(tǒng)設(shè)計的主要硬件平臺,而Xilinx公司是最早也是最大的FPGA生產(chǎn)商,其芯片設(shè)計技術(shù)、開發(fā)軟件和相關(guān)解決方案在業(yè)界擁有廣泛的客戶群[1]。其研制的SRAM型FPGA由于具有低成本、良好的重配置和較短的開發(fā)周期等特點,在航空航天嵌入式領(lǐng)域取得了廣泛應(yīng)用[2]。尤其側(cè)重于高性能應(yīng)用,性能滿足各類高端應(yīng)用的Virtex系列FPGA。

      由于SRAM型FPGA在高輻射環(huán)境中極易受單粒子翻轉(zhuǎn)(single event upset,SEU)的影響,造成FPGA邏輯錯誤和功能中斷[3-5],因此在空間應(yīng)用時必須對其采取加固措施。目前,使用最廣泛的加固技術(shù)是配置刷新加三模冗余。三模冗余技術(shù)通過對3個相同的電路進(jìn)行集成,然后對其運算結(jié)果進(jìn)行表決[6],保證即使其中有一個電路出現(xiàn)錯誤也不會影響結(jié)果的正確性。

      TMRTool 9.2i是Xilinx公司與桑迪亞國家實驗室合作,針對Virtex系列FPGA專門設(shè)計的一款三模冗余實現(xiàn)工具,僅需要簡單的設(shè)置,便可實現(xiàn)軟件模塊自動三模。根據(jù)TMRTool開發(fā)流程,工具修改綜合后網(wǎng)表信息,修正后的網(wǎng)表文件作為輸入再進(jìn)行布局布線,最終實現(xiàn)FPGA軟件。本文主要分析TMRTool對Virtex-II FPGA XQR2V3000網(wǎng)表文件的修正過程及修正前后軟件布局布線結(jié)果差異,旨在了解三模冗余工具的處理機(jī)理,在電路設(shè)計和TMRTool使用時進(jìn)行正確處理,防止軟件經(jīng)三模冗余處理后工作異常。

      1 三模冗余處理

      TMRTool開發(fā)流程如圖1所示,其中Step2是影響軟件三模冗余前后布局布線結(jié)果的重要步驟。

      圖1 TMRTool 開發(fā)流程[7]Fig.1 TMRTool development flow

      TMRTool開發(fā)流程分為4步:

      第1步:導(dǎo)入綜合后的.ngc/.ngo網(wǎng)表文件。導(dǎo)入文件層次結(jié)構(gòu)與設(shè)計層次一致。

      第2步:編輯三模冗余類型和實現(xiàn)屬性。綜合工具將可綜合的VHDL文件或Verilog文件編譯成由與門、或門、非門、RAM、寄存器等基本邏輯單元組成的邏輯連接網(wǎng)表,以這些基本邏輯單元或基本邏輯單元的組合為模塊按照三模冗余要求設(shè)置部件為相應(yīng)的類型。每個部件可選擇Don’t touch、Coverage、Standard、Custom四種類型。同時,工具支持選擇XTMR實現(xiàn)屬性。

      第3步:實現(xiàn)三模冗余。工具按照屬性設(shè)置和三模類型實現(xiàn)自動三模。

      第4步:輸出實現(xiàn)文件。

      在未設(shè)置屬性時,TMRTool工具按照默認(rèn)屬性設(shè)置實現(xiàn)三模冗余,但不同的處理屬性設(shè)置導(dǎo)致TMRTool對網(wǎng)表信息的修正結(jié)果不同,以此為輸入的布局布線結(jié)果不同。

      實現(xiàn)XTMR屬性包括可選擇的處理步驟和處理設(shè)置。處理設(shè)置包括設(shè)計類型Design Type設(shè)置、Vcc/Gnd信號獲得方式Power Source設(shè)置,默認(rèn)三模輸出類型Default Output XTMR Type以及是否移除移位寄存器,本文不做具體含義解釋,重點介紹處理步驟含義。

      處理步驟具體包括以下5步,實現(xiàn)三模冗余時,TMRTool根據(jù)是否勾選依次進(jìn)行各步處理,默認(rèn)TMRTool全部勾選。

      1.1 替換寄存器

      針對Virtex-II FPGA,ISE庫提供了多種類型的寄存器組件,如FD_1、FDC、FDP等,但布局布線時,所有的寄存器組件均映射到配置邏輯(CLB/Slice)寄存器,CLB只有一種類型的寄存器。

      該步操作使寄存器未使用的輸入端口被綁定到FPGA內(nèi)部半鎖結(jié)構(gòu)電路上,使其具有確定的邏輯連接。

      1.2 提取Vcc/Gnd

      半鎖結(jié)構(gòu)電路不占用布線資源但其對SEU敏感且無法用配置回讀的方式進(jìn)行檢測[8-9],因此在空間應(yīng)用時需移除該結(jié)構(gòu)。TMRTool修改網(wǎng)表文件使寄存器未使用的輸入端口連接至可靠的邏輯電平Vcc/Gnd上代替半鎖結(jié)構(gòu)。

      Vcc/Gnd的獲得方式有3種,具體如下:

      1)連接至邏輯1的引腳;

      2)連接至邏輯0的引腳;

      3)內(nèi)部結(jié)構(gòu)獲得。所有Xilinx產(chǎn)品均設(shè)計了Vcc/Gnd[8]。

      通過寄存器替換和Vcc/Gnd提取操作,TMRTool移除了半鎖結(jié)構(gòu),同時使得寄存器未使用端口連接至確定的邏輯電平Vcc/Gnd。

      1.3 唯一化部件名稱

      該步操作的作用是重命名設(shè)計部件名稱使得設(shè)計中所有的部件名稱唯一化,防止因部件名稱重復(fù)引起三模冗余操作異常。

      1.4 三模冗余

      經(jīng)1.1-1.3步預(yù)處理后,網(wǎng)表文件具備了三模冗余的狀態(tài),TMRTool將按照指定的三模冗余類型和XTMR屬性實現(xiàn)設(shè)計三模冗余。除部件三模冗余類型被設(shè)為Don’t touch的情況外,設(shè)計中部件被復(fù)制3份,同時插入表決器和反饋邏輯,以表決器輸出作為部件的最終輸出。

      1.5 移除多余結(jié)構(gòu)

      經(jīng)三模冗余后,設(shè)計中增加了一些空的結(jié)構(gòu),該結(jié)構(gòu)可能在布局布線時引起異常。經(jīng)該步處理,設(shè)計中多余的結(jié)構(gòu)將被移除。

      綜上,根據(jù)TMRTool開發(fā)流程、XTMR屬性設(shè)置和三模類型,TMRTool修改了網(wǎng)表信息,以TMRTool輸出的EDIF文件作為輸入進(jìn)行布局布線,最終實現(xiàn)具備三模冗余容錯的FPGA軟件設(shè)計。

      下面在布局布線屬性設(shè)置相同的情況下對比TMRTool處理前后軟件的布局布線結(jié)果和最終實現(xiàn)結(jié)果。

      2 機(jī)理分析

      布局布線使軟件映射至網(wǎng)表約定的FPGA器件對應(yīng)位置。Virtex系列FPGA器件結(jié)構(gòu)復(fù)雜,但組成結(jié)構(gòu)固定。Virtex-II器件每個CLB/Slice包含兩個LUT和兩個寄存器[10],如圖2所示??梢詫⑵渑渲脼榉植际絉AM、移位寄存器SRL、查找表LUT、觸發(fā)器FF或鎖存器LATCH使用。其中寄存器的接口如圖3所示。

      圖2 Virtex-II Slice結(jié)構(gòu)[11]Fig.2 Virtex-II Slice configuration

      圖3 Virtex-II Slice中寄存器/鎖存器結(jié)構(gòu)[11]Fig.3 Register / Latch configuration in a slice

      每個寄存器包括一個數(shù)據(jù)輸出端口Q,一個數(shù)據(jù)輸入端口D,一個時鐘端口CK,一個片選端口CE,SR端和REV端均為寄存器的置位/復(fù)位端[10-11]。所有寄存器共用SR和REV。根據(jù)SR和REV連接狀態(tài)及寄存器屬性,每個寄存器可以被設(shè)置處于7種工作模式,如表1所列。

      表1 寄存器初始狀態(tài)說明Tab.1 Register initial status under different mode

      1)寄存器在配置或全局初始化后的狀態(tài)由INIT0和INIT1屬性確定。

      2)SR強制寄存器進(jìn)入SRHIGH或SRLOW屬性指定的狀態(tài)。

      3)當(dāng)SR被使用時,REV強制寄存器進(jìn)入相反的狀態(tài)。

      當(dāng)CLB/Slice被配置為寄存器且軟件設(shè)計了復(fù)位時,經(jīng)布局布線后寄存器的連接狀態(tài)發(fā)生改變,如圖4和圖5所示,綠色表示端口連接了信號,紅色表示端口未連接信號。經(jīng)TMRTool工具處理后的寄存器REV引腳至internal_gnd,該信號由邏輯電平Vcc/Gnd決定。

      綜上可知,TMRTool影響寄存器的初始工作狀態(tài)。

      圖4 未經(jīng)TMRTool處理時寄存器端口連接Fig.4 Register port connection status before TMRTool processing

      圖5 經(jīng)TMRTool處理后寄存器端口連接Fig.5 Register port connection status after TMRTool processing

      3 試驗與驗證

      基于Xilinx ISE9.2.03i集成開發(fā)環(huán)境設(shè)計一個試驗系統(tǒng)驗證TMRTool對FPGA功能的影響。

      系統(tǒng)框架如圖6所示,系統(tǒng)功能如下:當(dāng)DSP將FPGA激勵控制寄存器置為“0x000000AA”時,F(xiàn)PGA按圖7輸出脈沖,控制繼電器吸合或斷開,從而實現(xiàn)激勵器伸縮桿的伸出或縮回;若DSP寫其他值則FPGA不響應(yīng);若本次動作時序未執(zhí)行完畢則不響應(yīng)下一條繼電器控制指令。在上電或復(fù)位狀態(tài)下,F(xiàn)PGA不輸出控制信號,默認(rèn)輸出信號為低電平,繼電器不動作。FPGA復(fù)位信號由DSP給出。

      圖6 試驗系統(tǒng)框架圖Fig.6 Testing system diagram

      使用Verilog語言實現(xiàn)該FPGA試驗程序。如圖7所示,設(shè)計中控制信號jiq_ctrl_en、計時寄存器、DSP寫數(shù)據(jù)保存寄存器及其他內(nèi)部寄存器初值或復(fù)位值均為0;當(dāng)條件1)、條件2)和條件3)均滿足時置jiq_ctrl_en為1并開始計時;當(dāng)1600ms計時結(jié)束,置jiq_ctrl_en為0并清除計時,等待下次條件滿足。在jiq_ctrl_en為1時,軟件根據(jù)計時寄存器的值輸出高脈沖,控制繼電器動作。因此jiq_ctrl_en的狀態(tài)變化是影響FPGA功能的關(guān)鍵。

      圖7 試驗程序設(shè)計Fig.7 Testing software design

      將該試驗程序按圖1流程進(jìn)行不同的處理,查看jiq_ctrl_en寄存器的端口連接情況及繼電器動作情況,詳見表2和表3所列。

      表2 TMRTool工具不同處理操作下寄存器端口連接狀態(tài)Tab.2 Register port connection status under different TMRTool’s operations

      表3 TMRTool工具不同處理操作下繼電器動作情況Tab.3 Relays status under different TMRTool’s operations

      從試驗結(jié)果可知,經(jīng)TMRTool處理后系統(tǒng)響應(yīng)與需求不符。首先,系統(tǒng)加電FPGA配置完成后,若無復(fù)位,理論上系統(tǒng)應(yīng)處于上電默認(rèn)狀態(tài)。在DSP未進(jìn)行寫操作時,繼電器不動作。但實際上,在無復(fù)位信號的3.7s內(nèi),繼電器發(fā)生了非預(yù)期的動作;第二,移除半鎖操作改變了jiq_ctrl_en寄存器REV端口的連接狀態(tài);第三,F(xiàn)PGA復(fù)位時機(jī)和Vcc/Gnd引腳連接與系統(tǒng)上電狀態(tài)有關(guān);第四,當(dāng)不三模冗余時,系統(tǒng)響應(yīng)與需求一致。根據(jù)Virtex-II FPGA寄存器工作模式,當(dāng)SR使用但無效時,REV強制寄存器進(jìn)入與初值相反的狀態(tài),導(dǎo)致jiq_ctrl_en寄存器上電后直接輸出邏輯1,時序控制計數(shù)器開始計數(shù),進(jìn)而FPGA輸出控制脈沖,繼而導(dǎo)致繼電器動作,系統(tǒng)功能出現(xiàn)與需求不符的現(xiàn)象,說明三模冗余影響寄存器的初始工作狀態(tài)。

      4 結(jié)論

      使用TMRTool實現(xiàn)FPGA軟件三模冗余容錯處理時,除3倍基本邏輯單元和插入表決器,工具還改變了所有寄存器未使用端口的連接狀態(tài)。SR和REV作為寄存器的置位/復(fù)位端,其連接狀態(tài)直接決定了寄存器的初始狀態(tài)。SR和REV端口連接狀態(tài)的改變,改變了軟件的上電狀態(tài),導(dǎo)致軟件進(jìn)入非預(yù)期初始態(tài),不受控制地直接輸出非法時序,存在使設(shè)備異常動作的風(fēng)險。

      在航天領(lǐng)域,要求設(shè)備上電都有明確的初始狀態(tài),因此,在使用TMRTool進(jìn)行三模冗余時,硬件設(shè)備必須滿足工具應(yīng)用需求,確保電路上有3個FPGA引腳連接至固定電平,同時TMRTool工具屬性設(shè)置以及約束文件引腳綁定與電路設(shè)計一致,防止三模冗余引入上電狀態(tài)異常問題。

      猜你喜歡
      布線寄存器端口
      一種端口故障的解決方案
      Lite寄存器模型的設(shè)計與實現(xiàn)
      擺脫繁瑣布線,重定義家庭影院 Klipsch Reference Wireless 5.1
      面向目標(biāo)的主動繞障PCB布線算法
      電子測試(2018年22期)2018-12-19 05:12:14
      電子布線系統(tǒng)在工程中的應(yīng)用
      端口阻塞與優(yōu)先級
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      一種考慮擁擠度的布線模型及其算法
      初識電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      生成樹協(xié)議實例探討
      德化县| 瑞丽市| 卢湾区| 秦安县| 桦南县| 娄底市| 南澳县| 岗巴县| 时尚| 竹北市| 庆安县| 贵溪市| 浦县| 麻栗坡县| 曲麻莱县| 阜新| 伊宁县| 大名县| 五河县| 靖宇县| 灵丘县| 黔南| 白河县| 沙湾县| 璧山县| 沾化县| 江山市| 天津市| 西昌市| 九江县| 如皋市| 凤冈县| 柘城县| 依兰县| 紫云| 泗洪县| 团风县| 左云县| 靖安县| 金昌市| 大丰市|