1 前言
新工具Vitis
最近在看Xilinx新出的工具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 的平台搭建。
我Fork了Xilinx/XRT的代码,并在2019.2分支上编写合测试了ZCU106的相关自动化生成脚本。
3 ZCU106 XRT 平台创建
如果读者希望了解平台创建的过程,可以阅读本章进行了解。或者跳过本章直接使用我自己编译好的ZCU106 XRT 平台仓库的文件。
3.1 预编译好的ZCU106 XRT平台安装包
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 总结
通过本文,读者了解了:
————————————————
版权声明:本文为CSDN博主「vacajk」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接: https://blog.csdn.net/vacajk/article/details/103434559