重構技術介紹
重構技術是一項非常實用的技術,從比特屬性上來分類可以分成全部重構和局部重構。全部重構即在重構時將配置整個FPGA器件的比特文件重新加載一次,對FPGA進行一次完整的編程配置;局部重構與全部重構有所不同,局部重構時加載的比特文件只是一個部分比特,該部分比特對特定區域進行重新配置。
針對Xilinx不同系列的器件,進行重構的方式會有所區別,對于非Zynq系列的器件,重構的實現需要借助FPGA器件之外的處理器來實現,重構接口為SelectMAP,非Zynq系列器件的重構框圖如圖1所示;Zynq系列的由于自身嵌入了ARM處理器,可以無需借助其他處理器而實現重構的功能,Zynq系列器件的PS側可以通過PCAP接口對PL側完成重構,但是Zynq7000和UltraScale+Mpsoc在具體實現時所使用的庫函數會有區別,兩者的重構實現不能互用。
圖1非Zynq系列器件的重構框圖
本文檔主要針對的器件為UltraScale+Mpsoc系列,通過PCAP接口對PL側進行重構,重構框圖如下所示:
圖2UltraScale+Mpsoc系列重構框圖
重構步驟
建立工程
詳細操作在此不做詳述,具體可以參考《Vivado Design Suite Tutorial Embedded Processor Hardware Design》,為了驗證需要,硬件允許的情況下可以編寫一段閃燈程序。
建立BlockDesign
詳細操作在此不做詳述,具體可以參考《Vivado Design Suite Tutorial Embedded Processor Hardware Design》,建立BlockDesign后,加入一個Zynq Mpsoc IP核,需要指出的是,為了能實現重構,需要在此IP核中使能SD卡,DDR以及UART(方便調試),并根據硬件的實際情況對它們的參數進行設置。根據需要添加其他IP。
編寫編譯代碼
完成前面的步驟之后就可以建立自己的用戶程序,主要是通過PS來實現對PL測邏輯的重構
驗證調試
在進行驗證調試前需要做好準備工作,如前所述,PL側可以通過兩個實現,生成兩個頻率不同的閃燈程序的bit文件,由于重構時只能使用bin文件,所以需要將bit文件轉換成bin文件,在Vivado中的Tcl Console中使用write_cfgmem指令可以將bit轉換成bin文件,具體指令如下:
write_cfgmem -format BIN -interface SMAPx32 -disablebitswap -loadbit "up 0x0文件名.bit" "bin文件名"
生成好的bin文件需要拷貝到Memory中,通常都使用SD卡來存儲重構的bin文件。
以上準備工作就緒之后就可以Debug調試了,建議Debug調試時將啟動模式設置成Jtag模式。
演示Demo
本章節通過搭建演示環境和工程對重構的實現進行板級驗證。
演示環境
演示的軟件搭建包含兩個工程,一個用來采集和顯示攝像頭原圖,另外一個工程對攝像頭進來的數據做了處理,將像素點中的一個顏色分量置為0,最終顯示的圖像前景色為綠色。
演示的硬件包含一塊5ev的板子,一塊圖像顯示的板子,一臺HDMI接口的顯示器,一臺電腦、一個攝像頭,一根fakra接口線、一個Xilinx下載器和一根串口線(非必須,具體的演示環境框圖如下:
圖4演示環境框圖
演示結果
在SDK中下載程序后,在line280行打上斷點,如圖5所示,手動控制程序的運行,每運行一次F8,重構一次PL程序,可以看到顯示的圖像前景色會發生變化,具體運行結果如圖6、圖7所示,以作參考。
圖5調試斷點設置
圖6Test1.bin運行結果截圖
圖7Test2.bin運行結果截圖
審核編輯:劉清
-
ARM處理器
+關注
關注
6文章
361瀏覽量
41957 -
FPGA器件
+關注
關注
1文章
22瀏覽量
11652 -
Zynq
+關注
關注
10文章
610瀏覽量
47321 -
PCAP
+關注
關注
0文章
12瀏覽量
12630
原文標題:Xilinx FPGA全部重構
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
FPGA可重構設計的結構基礎
FPGA的重構方式
【懸賞100塊】如何實現FPGA可重構計算(Android平臺)
Virtex5 FPGA在ISE + Planahead上部分可重構功能的流程和技術要點
![Virtex5 <b class='flag-5'>FPGA</b>在ISE + Planahead上部分可<b class='flag-5'>重構</b>功能的流程和<b class='flag-5'>技術</b>要點](https://file1.elecfans.com//web2/M00/A6/C5/wKgZomUMQEyARa2hAAA2x1qieTo175.png)
基于CPLD的FPGA快速動態重構設計
![基于CPLD的<b class='flag-5'>FPGA</b>快速動態<b class='flag-5'>重構</b>設計](https://file1.elecfans.com//web2/M00/A6/EE/wKgZomUMQVaAMrmNAAAVhGErV18688.jpg)
如何在FPGA動態局部可重構中進行TBUF總線宏設計
![如何在<b class='flag-5'>FPGA</b>動態局部可<b class='flag-5'>重構</b>中進行TBUF總線宏設計](https://file.elecfans.com/web1/M00/7E/88/pIYBAFwTULCAFY30AABB12qknBE925.png)
評論