999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的在線重構設計方法

2021-01-07 04:56:20王偉偉閆新峰
計算機測量與控制 2020年12期
關鍵詞:指令系統設計

王偉偉,閆新峰,修 展,徐 進,張 甜

(北京航天長征飛行器研究所,北京 100076)

0 引言

隨著航天技術的發展,FPGA憑借其豐富的接口和邏輯資源,逐漸取代單片機和DSP,越來越多地應用到產品設計中。它可以大大減小設計規模,提高設計效率。根據可編程技術不同,FPGA分為SRAM(static random access memory)型、反熔絲型和Flash型[1-2]。由于SRAM型FPGA采用CMOS工藝,集成度高、性能優越、資源豐富、成本低廉,其可重復編程的特性使它擁有廣闊的應用,尤其是在航天器的在軌更新和維護方面,優勢明顯。但航天系統是一個可靠性要求的系統,空間輻射對于SRAM型FPGA影響巨大,會引起單粒子反轉,如果導致關鍵性能失效,很有可能導致任務失敗,帶來巨大的損失。同時航天工程是一個復雜的工程,需要各系統協同合作才能完成。通常在研制初期,由于進度原因,細節考慮不全或因為用戶需求變化,在總裝后需要對產品中FPGA軟件進行升級才能正常工作,這時如果產品不具備在線重構功能,則必須進行拆卸操作,由此造成了巨大的時間和成本損失,因此FPGA具備在線重構功能成為系統越來越迫切的需求[3-4]。

針對Xilinx 7系列以下FPGA、7系列FPGA和ZYNQ提出了三種提高在線重構可靠性的設計方法,分別為基于ASIC在線重構設計方法、基于MultiBoot多鏡像的設計方法和基于ZYNQ的在線重構技術[5-7]。這三種方法幾乎涵蓋了Xilinx所有FPGA,實現了在線重構技術,提高了系統可靠性。

1 FPGA配置方法

在嵌入式領域,FPGA憑借豐富的接口和邏輯資源,越來越受到工程師的歡迎,尤其是配置方式的多樣性和在線重構技術,給工程師提供了豐富的設計方法和設計空間,根據實際需求隨時改變設計來實現改變或增加新的功能,提高系統的安全性和可靠性。不同廠家的FPGA配置方式有所不同但大同小異,本文主要針對Xilinx的FPGA進行研究,提出設計方法。

Xilinx FPGA支持多種配置方式,從配置時鐘的來源可以分為:主模式(Master Modes)和從模式(Slave Modes);從數據讀取方式可分為:并行模式(Master Modes)和串行模式(Serial Modes)。根據這兩種不同進行組合,可以得到5種FPGA常用的配置方式:主串、從串、主并、從并和JATG模式。工程上最常使用的是SelectMAP(主并)和SPI模式(主從),分開使用Xilinx的配置芯片PROM和FPGA支持的SPI Flash芯片。SelectMAP和SPI模式采用主模式,FPGA在上電后加載片外Flash芯片中的配置比特流,配置所需的時鐘信號(CCLK)由FPGA內部產生,且FPGA控制整個配置過程。自動將配置數據從相應的Flash芯片讀入到SRAM中。以7系列FPGA為例,其配置流程大致分為8個步驟,如圖1所示。

圖1 FPGA配置流程

上電后,FPGA的PROGRAM_B引腳變低開始整個配置過程,可以通過控制FPGA硬件硬件PROGRAM_B引腳的變化來重新配置FPGA。上電后,使用JTAG JPROGRAM指令或IPROG命令,配置存儲器將并清空。在此期間,通過使用全局三態將I/O置于高阻態,如果硬件引腳PUDC_B為低電平,則內部上拉。硬件引腳INIT_B在初始化期間內部驅動為低電平,完成后變為高電平。接著設備對外部模式配置硬件M[2:0]進行采樣,開始驅動時鐘CCLK,將一組32bit特殊的同步字(0xAA995566)發送到配置邏輯。同步字用來將配置數據與內部配置邏輯對齊。設備同步后,先通過設備ID檢查才能加載配置數據。如果在配置期間發生ID錯誤,則設備會嘗試重新配置,設備ID檢查內置于比特流中。之后FPGA開始加載配置幀,加載配置數據時會根據數據包計算循環冗余校驗(CRC),然后和比特流中存儲好的CRC值進行比較,匹配通過后FPGA開始進行啟動序列,啟動完成后,FPGA配置完成,開始正常工作。

根據上述FPGA的配置過程,可以通過軟硬件設計保證FPGA能夠將配置存儲器存儲的配置比特流可靠地加載到FPGA中。隨著FPGA技術的不斷發展,不同代的FPGA產品在重構方便擁有不同的特性。Xilinx FPGA 7系列具備MultiBoot多鏡像啟動功能,支持在線更新系統,配置文件可以現場動態升級。7系列以前的FPGA則不具備該功能,需要外置芯片來進行重構設計。而對于ZYNQ系列,由于內置有ARM處理器,因此其配置方式更加靈活多樣,方便實現在線重構設計[8-10]。

2 基于FPGA的在線重構設計

FPGA軟件的一個重要特性是它具有重構性,可以遠程實現配置數據的更新,更改軟件,實現新的功能。該功能解決了產品在總裝后無法在不拆卸的情況下更新FPGA軟件的難題,縮短了時間,大大節省了人力財力,提高了效率。針對遙測系統不斷變化的需求,軟件更新頻率很高,因此該功能逐漸變為軟件設計的基本要求,增強了產品的安全性和可靠性,大大提高了設計效率。典型的在線升級系統如圖2所示。

圖2 典型的在線升級系統設計框圖

如圖2所示,一般地,目標系統和地面系統進行通信采用UART、1553B、Ethernet等接口形式中的一種或多種,實現彈地數據之間的傳輸。這樣就可以將地面系統中更改后的新的FPGA配置文件通過上述接口傳輸到目標系統上的FPGA控制器,接著FPGA控制flash讀寫將配置文件正確寫入到Flash固定位置,從而實現數據流的更新。FPGA的在線重構技術,關鍵是要保證在更新失敗的情況下,任然可以運行舊版本或可以重新對其進行配置,否則就失去了在線重構的意義。下面針對上文提到的3種設計方法分別進行描述。

2.1 基于ASIC的FPGA在線重構技術

對于Xilinx 7系列以下的FPGA芯片,本身不具備在線重構能力,需要外置配置管理芯片進行配置,從而實現在線重構,提高可靠性和安全性。一般地,對于只存在一個FPGA芯片的設備,可以外加一個MCU或CPLD來實現對FPGA的在線重構設計。Xilinx的應用筆記中給出了基于MicroBlaze軟核和CPLD的在線重構技術來實現系統的在線更新。若一個設備中有多個FPGA芯片,且配置芯片也不同,有采用SelectMAP模式的PROM芯片,也有基于SPI模式的Flash存儲芯片,各個模塊之間通過背板連接。為了減少成本,提高設計效率,可以使用專用ASIC芯片來統一管理各FPGA芯片,實現在線重構,實現框圖如圖3所示。

圖3 在線升級ASIC設計原理框圖

該設計可以分別通過JTAG和SPI接口實現對PROM和SPI Flash的讀寫操作,最大支持8路JATG和8路SPI接口,同時支持JTAG協議的菊花鏈設計,可以對一個板卡上的多個FPGA進行配置。上位機可以通過UART接口選擇對哪個板卡上的某個FPGA進行操作,實現在線升級。同時也可以直接在設備附近使用JATG下載器對FPGA進行在線調試和升級,這樣完全保證了在總裝完成后也可以對產品進行調試和升級的需求,解決了軟件升級需要重新拆裝的難題,大大節約了成本,提高了效率。

2.2 基于MultiBoot多鏡像的在線重構設計

針對Xilinx 7 系列FPGA可以使用推薦的MultiBoot方案來實現FPGA的在線重構。MultiBoot直接操作的是兩個鏡像,也可以是多個鏡像。其中一個鏡像永遠不會改變,用于令一個鏡像在加載失敗時可以返回到該鏡像上重新加載,稱之為G鏡像(Golden Image),后面的鏡像稱之為M鏡像(MuliBoot Image)。當需要進行遠程更新實現重構時,FPGA可以直接對Flash 芯片中M鏡像存放的位置進行讀寫操作,G鏡像的存儲位置和數據永遠不變。這樣在M鏡像出現錯誤時,可以退回到G鏡像,保證FPGA能夠正常運行,然后再對M鏡像進行更新。MultiBoot實現框圖如圖4所示。

圖4 MultiBoot 實現流程圖

一般的FPGA從Flash的基地址開始存放G鏡像,后面存放M鏡像。根據前面介紹的FPGA配置方法中,上電后,FPGA從地址為0的地方開始加載,也就是先加載G鏡像,但是在G鏡像的開始位置添加了IPROG(內部編程)命令和M鏡像的地址,當FPGA運行到這個位置時會直接跳到M鏡像位置開始加載,IPROG是一條命令可以在G鏡像中生效,也可以在設計中使用,將IPROG通過內部配置訪問接口ICAP(internal configuration accesa port)接口發送,從而實現任意時刻觸發重新重構。當加載M鏡像過程中遇到IDCode錯誤、CRC錯誤、WatchDog超時和BPI地址越界錯誤時,FPAG會觸發退回(FallBack)操作,同時FPGA內部寄存器會記錄,發生退回操作后,會忽略IPROG指令,直接加載G鏡像后面的配置文件,運行G鏡像。

Xilinx 7系列FPGA通過將IRPOG指令潛入到比特流中的方式,實現了FPGA的多鏡像啟動,確保了FPGA配置的可靠性。IPROG指令內容如表1所示,其中WBSTAR為Warm Boot Start Address Register的縮寫,即熱啟動地址寄存器。

表1 IPROG指令描述

在G鏡像中通過加入IPROG指令實現了地址的跳轉,當M鏡像發生錯誤后,會觸發FallBack操作,退回到基地址位置,FPGA將忽略該部分指令,繼續執行G鏡像的后面其他部分內容,實現G鏡像的加載,正常運行。G鏡像中設計有遠程更新程序,可以操作Flash芯片,更新M鏡像數據,從而實現對M鏡像的在線更新,實現FPGA的遠程更新和重構。

2.3 基于ZYNQ的在線重構技術

Xilinx ZYNQ與傳統FPGA有著巨大的差異,是一款SoC(可編程片上系統),擁有雙核ARM A9處理器和7系列FPGA邏輯資源。啟動過程體現了以處理器為核心這一特點,先啟動處理器(PS)再啟動邏輯部分(PL),也就是PL的配置是通過ARM核來配置的,不支持從PL端直接啟動配置。

ZYNQ7000的配置按先后順序分為3個階段:stage0、stage1、stage2,其中stage2可選。每個階段的功能及處理過程如表2所示。

表2 ZYNQ配置過程

根據表2中的內容可知,ZYNQ上電后先運行BootROM,初始化外部存儲設備驅動程序,然后從存儲設備的0地址開始,搜索第一階段啟動程序FSBL(First Stage Boot Loader),然后根據FSBL加載PL鏡像和后續的PS鏡像。基于Qaud-SPI(QSPI) Flash啟動方式的ZYNQ啟動流程如圖5所示。

圖5 基于QSPI Flash的ZYNQ啟動流程

如圖5所示,上電后,ZYNQ運行BootROM,初始化QSPI接口,開始讀取Flash中數據,由于BootROM能夠訪問QSPI Flash的最大地址為16 M,因此在此地址區間內必須存在完整的FSBL。找到FSBL后,根據FSBL開始加載PL和PS鏡像。由此可知,如果QSPI Flash中存在多個鏡像文件時,ZYNQ只執行第一個鏡像,第一個鏡像加載不成功才會加載后面的鏡像。根據此特性,可設計在線升級方案,如圖6所示。

圖6 ZYNQ 多鏡像在QSPI Flash中的存儲位置

如圖6所示,在拿到一個全新的ZYNQ硬件設計后,QSPI Flash為空,不存在任何可執行的鏡像文件。這時需要用JTAG模式,將Golden鏡像下載到QSPI FLash的高地址位置,該地址要大于一個ZYNQ可執行鏡像的大小,保證更新時不會破壞到G鏡像。在生成鏡像文件時,PPGA和ARM執行文件要選擇md5校驗,這樣可以確保鏡像的正確性和唯一性。在Golden鏡像中有在線升級程序,可以根據地面指令,更新MultiBoot鏡像,即從0地址開始更新最新的鏡像,由于G鏡像和M鏡像中的軟件版本有區別,這樣可以在線驗證更新是否成功。如果為成功,版本信息顯示G鏡像版本;如果成功則顯示M鏡像版本。通過這種方式可以實現ZYNQ類器件的在線重構,簡單方便,穩定可靠。

3 實驗結果和分析

針對3種不同的設計方法,通過設計地面軟件來實現對FPGA的在線重構。首先打開地面軟件,選擇待升級的二進制配置bin文件,并計算總CRC。然后再給PFGA上電,FPGA在上電后會發送準備好信號給地面軟件,地面收到該信號后會發送在線升級指令給FPGA,如果一分鐘內未收到在線升級指令,則FPGA退出在線升級狀態,進入正常工作狀態。收到在線升級指令后,FPGA開始對配置寄存器進行擦除操作,擦除完成后給地面反饋擦除結果。地面收到擦除完成指令后,開始以每64字節為一包發送有效配置數據,直到所有都完成后,再發送總CRC。FPGA對每包數據進行校驗并計算CRC,所有包完成后計算得到CRC,并和地面傳送來的CRC進行對比,正確則燒寫成功,否則燒寫失敗。燒寫成功后,對FPGA重新加電,通過版本號判斷是否更新成功。通過多次測試,3種方式均100%燒寫成功,可靠實現了在線升級功能。

4 結束語

針對FPGA類軟件可以在線重構的特性,根據Xilinx三種不同類型的FPGA的不同特性,分別提出基于ASIC的FPGA在線重構技術、基于MultiBoot多鏡像的在線重構設計以及基于ZYNQ的在線重構技術設計方法。Xilinx所有的FPGA,均可通過這三種技術中的一種或某種組合實現在線重構,解決了總裝后無法進行軟件更新的難題,同時保證了在線重構的安全性和可靠性,提高了設計效率。

猜你喜歡
指令系統設計
聽我指令:大催眠術
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
主站蜘蛛池模板: 久久国产精品国产自线拍| 国产另类视频| 国产精品手机视频一区二区| 国产成人精品一区二区三区| 精品国产污污免费网站| 无码专区第一页| 99久久精品久久久久久婷婷| 国产在线视频二区| 精品少妇人妻av无码久久| 欧美亚洲国产一区| 亚洲无码视频图片| 国产乱人免费视频| 重口调教一区二区视频| 欧美国产日韩在线播放| 亚洲天堂视频在线观看免费| 国产精品香蕉在线| 国产欧美日韩在线一区| 国产午夜看片| 99热这里只有精品国产99| 91黄视频在线观看| 日本手机在线视频| 日本欧美成人免费| 色偷偷av男人的天堂不卡| 亚洲天堂日韩av电影| 女同久久精品国产99国| 国产高清国内精品福利| 久久情精品国产品免费| 四虎成人免费毛片| 男人天堂亚洲天堂| 天天色综合4| 日韩午夜福利在线观看| 久久6免费视频| 一本大道无码高清| 3p叠罗汉国产精品久久| 99色亚洲国产精品11p| 国产精品久久久久久影院| www.狠狠| 久久国产精品电影| 国产电话自拍伊人| 色婷婷在线播放| 国产成人综合久久精品下载| 免费看av在线网站网址| 国产精品国产主播在线观看| 精品偷拍一区二区| 久久久久国产精品嫩草影院| 色综合综合网| 国产精品美女在线| 久久久久久久蜜桃| 欧美亚洲一二三区| 国产在线精品99一区不卡| 亚洲国产精品日韩专区AV| 激情综合网激情综合| 国产精品福利一区二区久久| 永久免费无码成人网站| 福利国产微拍广场一区视频在线| 一级毛片不卡片免费观看| 日韩精品久久久久久久电影蜜臀| 久久久久久久久亚洲精品| 亚洲成人免费在线| 亚洲精品在线91| 国产第一页亚洲| 中文无码日韩精品| 狠狠色丁婷婷综合久久| 欧美成人免费| 青青极品在线| 欧美一级在线| 丁香婷婷久久| 亚洲精品视频网| 欧美在线视频a| 国产麻豆精品久久一二三| 亚洲色无码专线精品观看| 久久国产精品麻豆系列| 久久精品国产999大香线焦| 99re热精品视频国产免费| 黄色福利在线| 欧美一级高清片欧美国产欧美| 青青草原国产av福利网站| 亚洲中文字幕23页在线| 亚洲欧洲日韩国产综合在线二区| 久久亚洲国产最新网站| 强奷白丝美女在线观看| 亚洲国产天堂久久综合|