ZCU106 XRT環境搭建【Xilinx Vitis】

更新

20200406:
下載地址:ZCU106 Vitis Platform
新編譯了一下ZCU106的Vitis Platform。
APP添加了vim,file,unzip,ffmpeg。ROOTFS添加了opencv-dev,gstreamer-dev,v4lutils-dev。
添加的-dev相關組件可以用於在Linux Vitis中對相關功能進行交叉編譯。

1 前言

新工具Vitis

最近在看Xilinx新出的工具Vitis,這個工具咋說呢,改了好多。。

  • 之前的SDSoC,SDAccel統一被Vitis來實現
  • 之前按的SDK直接被Vitis替代
  • 之前按的基於Eclipse IDE的工程結構,統一被新的叫做domain的東東給替代
  • 類似於SDx環境,Vivado被直接集成到Vitis中

以上就是我的理解,總之就是Xilinx要搞:Vitis 統一軟件平臺

代碼倉庫XRT

以前玩過一下下SDSoC合SDAccel,沒有深究。看了Xilinx的Github,還有Vitis的文檔,都有提到了一個叫XRT的東西。按照Vitis文檔說明:當需要開發基於硬件加速的應用程序時,需要安裝Xilinx Runtime (XRT)。

2 XRT

XRT Software Stack

如下圖,XRT軟件棧結構如下。
在這裏插入圖片描述
XRT可以支持兩種開發模式,一種是使用PCIe作爲中間層進行相關開發,另一種是在嵌入式內直接進行開發。我沒有開發PCIe板卡的需求,所以之後的一切開發還是基於嵌入式系統,就是上圖中橙色部分的(Linux MPSoC Driver zocl)。
用戶通過XRT的中間件即可方便的在上層使用Python/C/C++進行應用開發。

ZCU106 XRT

在代碼目錄XRT/src/platform/中包含了依賴各種官方硬件的XRT平臺,包括ZC702, ZC706, ZCU102, ZCU104, ZED等,但是其中並沒有我需要的ZCU106的平臺。
因此我會基於一下的環境來進行ZCU106 XRT 的平臺搭建。

  • XRT 2019.2分支
  • Vitis 2019.2
  • Petalinux 2019.2
  • Ubuntu 16.04

我Fork了Xilinx/XRT的代碼,並在2019.2分支上編寫合測試了ZCU106的相關自動化生成腳本。

3 ZCU106 XRT 平臺創建

如果讀者希望瞭解平臺創建的過程,可以閱讀本章進行了解。或者跳過本章直接使用我自己編譯好的ZCU106 XRT 平臺倉庫的文件。

3.1 預編譯好的ZCU106 XRT平臺安裝包

下載地址:zcu106_xrt_platform.txt

3.2 工具腳本介紹

XRT/src/runtime_src/tools/scripts目錄下有很多腳本,可以用於自動化生成一些依賴或是實現一些編譯功能。可以通過閱讀其中的README.md進行了解。下面我將介紹一些我使用到的關鍵腳本。

xrtdeps.sh

用於自動安裝XRT的各種依賴庫,運行時要求有管理員權限

setup.sh

用於將XRT的相關功能安裝到本地/opt/xilinx/xrt目錄內。貌似進行編譯合時會使用到。

xsa_build.sh

用於運行xsa創建腳本,調用vivado實現工程創建和輸出xsa文件(xsa其實就是以前的hdf文件)。

peta_build.sh

使用xsa_build.sh運行完生成的xsa文件,並調用Petalinux實現Linux的編譯。

pfm_build.sh

將Petalinux生成的各種結果,生成Vitis專用的Platform,用於後續的XRT,Hardware Acceleration,OpenCL,Linux APP,Bare metal APP,RTOS APP開發。

ertbuild.sh

是xsa_build.sh,peta_build.sh,pfm_build.sh三者加起來運行的腳本。

3.3 編譯與生成

運行如下腳本,即可生成Vitis使用的平臺倉庫

cd ~/********/XRT/src/runtime_src/tools/scripts
source /opt/xilinx/xrt/setup.sh
source ~/Xilinx/Vivado/2019.2/settings64.sh
source ~/Xilinx/PetaLinux/2019.2/settings.sh
# build xsa
./xsa_build.sh ../../../platform/zcu106vcu_base/zcu106vcu_base_xsa.tcl
# build petalinux
./peta_build.sh ./xsa_build/zcu106vcu_base/zcu106vcu_base.xsa
# build pfm
./pfm_build.sh ./xsa_build/zcu106vcu_base/zcu106vcu_base_pfm.tcl

運行完成後可以在XRT/src/runtime_src/tools/scripts/platform下即可找到編譯好的ZCU106 XRT平臺:zcu106vcu_base
文件目錄結構如下圖:
在這裏插入圖片描述

3.4 平臺使用

將下載的或是自己生成的zcu106vcu_base的整個目錄複製到Vitis安裝目錄的platforms文件夾內,這樣在使用Vitis創建工程時即可選擇作爲開發平臺。如下圖:
在這裏插入圖片描述
後續我將繼續寫一些文章來介紹如何使用生成的zcu106vcu_base平臺。

4 總結

通過本文,讀者瞭解了:

  • Xilinx的新工具Vitis,與以前工具的區別
  • XRT是什麼
  • 自定義XRT平臺的搭建方法
  • 自定義ZCU106 XRT平臺的使用方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章