跳转到主要内容

ZCU106 XRT环境搭建【Xilinx Vitis】

judy 提交于

<strong>1 前言</strong>
<strong>新工具Vitis</strong>
最近在看Xilinx新出的工具Vitis,这个工具咋说呢,改了好多。。

<li>之前的SDSoC,SDAccel统一被Vitis来实现</li>
<li>之前按的SDK直接被Vitis替代</li>
<li>之前按的基于Eclipse IDE的工程结构,统一被新的叫做domain的东东给替代</li>
<li>类似于SDx环境,Vivado被直接集成到Vitis中</li>

以上就是我的理解,总之就是Xilinx要搞:Vitis 统一软件平台

<strong>代码仓库XRT</strong>
以前玩过一下下SDSoC合SDAccel,没有深究。看了Xilinx的Github,还有Vitis的文档,都有提到了一个叫XRT的东西。按照Vitis文档说明:当需要开发基于硬件加速的应用程序时,需要安装Xilinx Runtime (XRT)。

<strong>2 XRT</strong>
XRT Software Stack
如下图,XRT软件栈结构如下。
<center><img src="http://xilinx.eetrend.com/files/2020-03/%E5%8D%9A%E5%AE%A2/100047969-91…; alt=""></center>

XRT可以支持两种开发模式,一种是使用PCIe作为中间层进行相关开发,另一种是在嵌入式内直接进行开发。我没有开发PCIe板卡的需求,所以之后的一切开发还是基于嵌入式系统,就是上图中橙色部分的(Linux MPSoC Driver zocl)。
用户通过XRT的中间件即可方便的在上层使用Python/C/C++进行应用开发。

<strong>ZCU106 XRT</strong>

在代码目录<a href="https://github.com/vacajk/XRT/tree/2019.2/src/platform"><strong>XRT/src…,包括ZC702, ZC706, ZCU102, ZCU104, ZED等,但是其中并没有我需要的ZCU106的平台。

因此我会基于一下的环境来进行ZCU106 XRT 的平台搭建。

<li>XRT 2019.2分支</li>
<li>Vitis 2019.2</li>
<li>Petalinux 2019.2</li>
<li>Ubuntu 16.04</li>

我Fork了Xilinx/XRT的代码,并在2019.2分支上编写合测试了ZCU106的相关自动化生成脚本。

<strong>3 ZCU106 XRT 平台创建</strong>
如果读者希望了解平台创建的过程,可以阅读本章进行了解。或者跳过本章直接使用我自己编译好的ZCU106 XRT 平台仓库的文件。

<strong>3.1 预编译好的ZCU106 XRT平台安装包</strong>

下载地址:<a href="https://download.csdn.net/download/vacajk/12017798">zcu106_xrt_platform…;

<strong>3.2 工具脚本介绍</strong>
在<a href="https://github.com/vacajk/XRT/tree/2019.2/src/runtime_src/tools/scripts…,可以用于自动化生成一些依赖或是实现一些编译功能。可以通过阅读其中的<a href="https://github.com/vacajk/XRT/blob/2019.2/src/runtime_src/tools/scripts…。下面我将介绍一些我使用到的关键脚本。

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三者加起来运行的脚本。

<strong>3.3 编译与生成</strong>
运行如下脚本,即可生成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

文件目录结构如下图:
<center><img src="http://xilinx.eetrend.com/files/2020-03/%E5%8D%9A%E5%AE%A2/100047969-91…; alt=""></center>

<strong>3.4 平台使用</strong>
将下载的或是自己生成的zcu106vcu_base的整个目录复制到Vitis安装目录的platforms文件夹内,这样在使用Vitis创建工程时即可选择作为开发平台。如下图:
<center><img src="http://xilinx.eetrend.com/files/2020-03/%E5%8D%9A%E5%AE%A2/100047969-91…; alt=""></center>

后续我将继续写一些文章来介绍如何使用生成的zcu106vcu_base平台。

<strong>4 总结</strong>
通过本文,读者了解了:
<li>Xilinx的新工具Vitis,与以前工具的区别</li>
<li>XRT是什么</li>
<li>自定义XRT平台的搭建方法</li>
<li>自定义ZCU106 XRT平台的使用方法</li>

————————————————
版权声明:本文为CSDN博主「vacajk」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接: https://blog.csdn.net/vacajk/article/details/103434559