第二章:开发环境搭建——Vitis安装与配置、XRT安装、平台文件获取与验证
好,咱们正式开始动手了。这一章,我带你把开发环境从头到尾捋一遍。很多新手朋友卡在第一步,不是装错了版本,就是漏了某个驱动,折腾一整天连个灯都点不亮。别急,跟着我的节奏来,半小时搞定。
2.1 Vitis统一软件平台安装
Vitis,说白了就是Xilinx的“全家桶”。它把原来的SDK、SDAccel、Vivado HLS全揉在了一起。我个人习惯,每年只装最新的两个版本,比如2023.2和2024.1。太老的版本,库和驱动都跟不上,容易踩坑。
核心要点:Vitis安装包自带Vivado,你不需要单独装Vivado。但如果你要做硬件平台修改,那就得装“Vivado + Vitis”全功能版。
安装步骤其实不复杂,我列个清单:
- 下载安装包:去Xilinx官网下载“Vitis Unified Software Platform”。注意,文件很大,大概30GB+。我建议用下载工具,别用浏览器自带的,容易断。
- 运行安装程序:双击xsetup.exe,选择“Vitis”组件。这里有个坑——记得勾选“Xilinx Runtime (XRT)”,很多人漏了这一步,后面跑应用时找不到库。
- 选择安装目录:路径不要有中文,不要有空格。我习惯装在
C:\Xilinx\Vitis\2024.1,简单明了。 - 等待安装:去喝杯咖啡吧,大概40分钟到1小时。
注意:安装过程中会提示安装“Cable Drivers”,一定要装!否则你的JTAG下载器连不上板子。我曾经有一次重装系统后忘了装这个驱动,折腾了俩小时才发现是驱动问题。
2.2 Xilinx Runtime (XRT) 安装
XRT是什么?它是Vitis平台和硬件之间的“翻译官”。你的应用代码通过XRT调用FPGA上的加速器。没有XRT,你的程序就是个哑巴。
XRT的安装分两种情况:
| 场景 | 安装方式 | 说明 |
|---|---|---|
| Windows开发环境 | Vitis安装包自带 | 安装Vitis时勾选XRT即可 |
| Linux运行环境 | 单独安装XRT包 | 从Xilinx官网下载对应版本的XRT .deb或.rpm包 |
在Linux上安装XRT,我常用的命令是:
# 对于Ubuntu系统
sudo apt install ./xrt_202410.2.12.0_22.04-amd64-xrt.deb
# 验证安装是否成功
xbutil examine
运行xbutil examine后,如果能看到你的FPGA设备信息,那就说明XRT装好了。嗯,这里要注意:XRT的版本必须和Vitis版本匹配,否则会报“library version mismatch”的错误。我遇到过好几次,都是因为升级了Vitis忘了升级XRT。
2.3 平台文件获取与验证
平台文件,就是你的FPGA板子的“身份证”。它包含两个核心文件:
- XSA文件:硬件描述文件,包含PS(处理器系统)配置、DDR信息、时钟频率等。
- Platform文件:软件平台描述,包含操作系统、驱动、设备树等。
获取平台文件有三种途径:
- 官方提供:Xilinx官方板卡(如ZCU102、VCK190)的Platform文件可以直接从官网下载。
- 自己生成:用Vivado导出XSA,再用Vitis创建Platform。这个流程我后面会详细讲。
- 第三方板卡:比如米联客、黑金等开发板,一般会随板子提供Platform文件。
我的经验:拿到一块新板子,第一件事就是验证Platform文件是否可用。别急着写代码,先跑一个“Hello World”测试一下。
验证Platform文件是否正常,我一般做三步检查:
# 第一步:检查XSA文件是否完整
# 用Vivado打开XSA文件,查看Block Design
vivado -source check_xsa.tcl
# 第二步:检查Platform是否注册成功
platforminfo -l
# 第三步:编译一个空工程,看能否生成xclbin
v++ -t hw --platform xilinx_zcu102_base_202410_1 -o test.xclbin test.cpp
如果这三步都通过了,恭喜你,环境搭建成功!
2.4 环境验证:跑一个最简单的例子
光说不练假把式。咱们来跑一个最简单的“Hello World”程序,验证整个工具链是否通畅。
步骤很简单:
- 打开Vitis,创建一个新的“Application Project”。
- 选择你的Platform文件(比如
xilinx_zcu102_base_202410_1)。 - 选择“Empty Application”模板。
- 在
src目录下新建一个main.c,写入:
#include <stdio.h>
#include <xrt/xrt_device.h>
int main() {
printf("Hello from Vitis Platform!\n");
// 获取设备信息
xrtDeviceHandle device = xrtDeviceOpen(0);
if (device == NULL) {
printf("Failed to open device\n");
return -1;
}
printf("Device opened successfully\n");
xrtDeviceClose(device);
return 0;
}
- 编译并运行。如果控制台打印出“Hello from Vitis Platform!”和“Device opened successfully”,那就说明整个环境搭建成功了。
避坑指南:我曾经在运行这个例子时,卡在“Failed to open device”上。查了半天,发现是XRT服务没启动。运行sudo xbutil reset重置一下设备就好了。
2.5 知识体系总览
为了让你对整个环境搭建有个全局认识,我画了一张图:
这张图把整个环境搭建的脉络理清楚了。你照着这个流程走,基本不会出大问题。
好了,环境搭建就讲到这里。记住,工具链装好了只是第一步,真正的好戏还在后面。下一章,咱们开始写第一个Vitis加速应用。
最后提醒一句:如果你在安装过程中遇到任何问题,别硬扛。去Xilinx论坛搜一下,或者直接问社区。我当年就是靠论坛活下来的。