1. Vitis概述与环境搭建:Vitis统一软件平台介绍、安装Vitis与XRT运行时、设置环境变量与验证安装

1.1 什么是Vitis统一软件平台?

说实话,我第一次接触Vitis的时候,心里是有点懵的。以前做FPGA开发,大家用的都是Vivado,写RTL代码、跑仿真、下板子,一套流程走下来挺顺的。但后来Xilinx(现在叫AMD)推出了Vitis,很多人一开始都不太理解——这到底是个啥?

我个人的理解是这样的:Vitis本质上是一个统一软件平台。它把传统的FPGA开发流程,跟嵌入式软件开发、AI推理、数据加速这些东西揉在了一起。说白了,就是让你能用C/C++、Python甚至OpenCL来写FPGA程序,而不是非得写Verilog。

嗯,这里要注意一点:Vitis并不是要取代Vivado。Vivado依然是底层工具,负责综合、布局布线这些硬活儿。Vitis是在Vivado上面搭了一层软件抽象,让你能更高效地做应用开发。

核心概念:Vitis = Vivado(底层硬件工具)+ XRT(运行时库)+ 各种加速库 + 开发框架

我在项目中遇到过不少团队,他们一开始觉得Vitis太复杂,想绕过去。但后来发现,如果要做异构计算(CPU+FPGA协同),Vitis几乎是绕不开的。你想想看,用传统方式写一个PCIe驱动、再写一个DMA控制器、再写应用层代码,没几个月搞不定。而Vitis把这些都封装好了。

1.2 安装Vitis与XRT运行时

安装这件事,我踩过不少坑。先说说整体流程:

  1. 下载安装包——去AMD官网下载Vitis统一软件平台安装包。注意版本,我个人建议用最新的LTS版本,稳定一些。
  2. 安装Vitis——运行安装程序,选择你要安装的组件。这里有个关键点:一定要勾选“Vitis”和“Vivado”,因为Vitis依赖Vivado做底层编译。
  3. 安装XRT——XRT是Xilinx Runtime的缩写,它是Vitis的运行时环境。安装包通常在Vitis安装目录下的xrt文件夹里。

我曾经犯过的错:第一次安装时,我只装了Vitis,没装XRT。结果编译出来的程序在板子上跑不起来,报了一堆“找不到库”的错误。折腾了两天才发现是XRT没装。所以,Vitis和XRT必须一起装,缺一不可。

安装命令(以Ubuntu 20.04为例):

# 安装Vitis(假设安装包在 /opt 目录下)
cd /opt
sudo ./xilinx-vitis-2023.2-042

# 安装XRT
sudo apt install ./xrt_202320.2.14.0_20.04-amd64-xrt.deb

# 安装XRT依赖
sudo apt install libboost-dev libssl-dev libcurl4-openssl-dev

安装完成后,建议重启一下系统。为什么?因为XRT会加载一些内核模块,重启后这些模块才能正常生效。

1.3 设置环境变量

环境变量这个东西,说简单也简单,说复杂也复杂。我见过不少新手,装完Vitis后直接运行vitis命令,结果提示“命令未找到”。其实就是环境变量没设好。

你需要设置以下几个关键环境变量:

环境变量 说明 示例值
XILINX_VITIS Vitis安装路径 /opt/Xilinx/Vitis/2023.2
XILINX_XRT XRT安装路径 /opt/xilinx/xrt
LD_LIBRARY_PATH 动态库搜索路径 $XILINX_XRT/lib
PATH 可执行文件搜索路径 $XILINX_VITIS/bin:$XILINX_XRT/bin

我个人习惯把这些设置写进~/.bashrc文件里,这样每次打开终端就不用重新设了:

# 编辑 ~/.bashrc
echo 'source /opt/Xilinx/Vitis/2023.2/settings64.sh' >> ~/.bashrc
echo 'source /opt/xilinx/xrt/setup.sh' >> ~/.bashrc
source ~/.bashrc

小技巧:如果你同时装了多个版本的Vitis,建议用alias命令给每个版本起个别名。比如:alias vitis2023='source /opt/Xilinx/Vitis/2023.2/settings64.sh'。这样切换版本就方便多了。

1.4 验证安装是否成功

装完了,环境变量也设好了,怎么知道对不对?我一般用三步验证法:

  1. 检查Vitis版本——运行vitis -version,看能不能正常输出版本信息。
  2. 检查XRT版本——运行xbutil examine,这个命令会列出当前系统里检测到的FPGA设备。
  3. 编译一个简单的Hello World——用Vitis创建一个最简单的工程,编译通过就算成功。

具体命令如下:

# 第一步:检查Vitis
vitis -version
# 输出示例:Vitis v2023.2 (64-bit)

# 第二步:检查XRT
xbutil examine
# 输出示例:System Configuration
#   OS Name: Linux
#   XRT Version: 2.14.0

# 第三步:编译Hello World(假设你已经有一个简单的工程)
cd /path/to/hello_world
make all
# 如果编译成功,会生成 .xclbin 和 host 可执行文件

为什么会这样?因为Vitis的编译流程比较特殊,它需要同时生成硬件配置文件(.xclbin)和主机端可执行文件。如果这两步都成功了,说明你的环境基本没问题。

避坑指南:我曾经遇到过一种情况——Vitis能正常启动,但编译时总报“找不到XRT头文件”。后来发现是LD_LIBRARY_PATH没设对。XRT的头文件在$XILINX_XRT/include目录下,库文件在$XILINX_XRT/lib下。如果编译时提示找不到xrt.h,八成是路径没加对。

1.5 知识体系结构图

下面这张图是我自己画的,帮你理清Vitis环境搭建的整体脉络:

Vitis环境搭建知识体系 Vitis统一软件平台 XRT运行时 环境变量配置 Vivado底层工具 C/C++/OpenCL编译器 加速库(Vitis Libraries) 设备管理(xbutil) 内存管理(DMA/Buffer) 内核驱动(xocl.ko) XILINX_VITIS XILINX_XRT LD_LIBRARY_PATH / PATH 验证安装:三步检查法

这张图里,我把整个环境搭建分成了三个核心模块:Vitis平台、XRT运行时、环境变量。它们之间是层层依赖的关系——Vitis依赖XRT做运行时支持,XRT依赖环境变量来定位路径。最后,通过三步检查法来验证整个链路是否打通。

1.6 一些心里话

说实话,Vitis环境搭建这件事,说难不难,说简单也不简单。我见过有人半小时搞定,也有人折腾了一周还在报错。关键点就三个:版本匹配、路径正确、依赖完整。

如果你在安装过程中遇到问题,别慌。先检查一下:

  • Vitis和XRT的版本是否匹配?
  • 环境变量是否生效?用echo $XILINX_VITIS看看。
  • 依赖库是否都装了?用ldd命令检查一下XRT的库文件。

嗯,基本上就这些。环境搭好了,后面的事情就顺了。

最后一个小建议:建议在虚拟机里先练一遍安装流程,熟悉了再到真实板卡上操作。这样即使搞砸了,也不会影响你的开发环境。

可可精品资料库