1. Vitis概述与环境搭建

各位同学好,我是你们的FPGA讲师。今天咱们聊聊Vitis——这个Xilinx推出的统一软件平台。说实话,我第一次接触Vitis时也有点懵,毕竟从SDSoC到Vitis,变化确实不小。但用顺手之后,你会发现它真的很强大。

1.1 Vitis统一软件平台介绍

Vitis是什么?简单说,它是一个面向异构计算的开发平台。你想想看,现在的FPGA设计越来越复杂,光靠硬件描述语言已经不够了。Vitis把硬件设计、软件开发、系统集成整合到了一起。

我个人习惯把Vitis理解成一个"大管家":

  • 硬件层面:管理PL(可编程逻辑)的配置
  • 软件层面:管理PS(处理系统)的代码
  • 接口层面:处理两者之间的数据交互

说白了,Vitis就是让你能用C/C++写FPGA程序。嗯,这里要注意,不是所有逻辑都能用C写,但大部分加速核是可以的。

核心特点:Vitis支持OpenCL、C/C++、RTL等多种开发方式,兼容Xilinx所有主流器件。

1.2 Vitis与传统SDSoC/SDAccel的区别

很多老工程师问我:"Vitis和SDSoC到底有啥区别?" 我通常会打个比方:SDSoC是手动挡汽车,Vitis是自动挡。

特性 SDSoC SDAccel Vitis
开发语言 C/C++ OpenCL/C++ C/C++/OpenCL/RTL
目标器件 Zynq系列 数据中心加速卡 全系列
调试方式 传统GDB 仿真+硬件 统一调试器
库支持 有限 基础库 Vitis库(丰富)

我在项目中遇到过这样的情况:用SDSoC开发时,换个器件就得重新配置一堆东西。Vitis就好多了,一次配置,多平台复用。说白了,Vitis就是Xilinx把两个工具合并了,还加了不少新功能。

小提示:如果你之前用过SDSoC,迁移到Vitis其实不难。大部分代码可以直接复用,只是工程结构变了。

1.3 安装Vitis 2023.1

安装Vitis其实不复杂,但有几个坑我得提前说。我曾经因为安装路径带了中文,折腾了一下午。所以,请记住:

  1. 下载安装包:从Xilinx官网下载Vitis 2023.1,大约20GB左右
  2. 系统要求:Ubuntu 20.04/22.04 或 CentOS 7/8,内存至少16GB
  3. 安装步骤:
    • 解压安装包:tar -xzf Xilinx_Vitis_2023.1_*.tar.gz
    • 运行安装脚本:./xsetup
    • 选择安装组件:建议全选(省得后面缺东西)
    • 等待安装完成(约30分钟,取决于你的机器)

警告:安装路径不要有中文或空格!磁盘剩余空间至少100GB。我见过有人装到一半磁盘满了,那叫一个惨。

1.4 设置环境变量

安装完Vitis,第一件事就是设置环境变量。不设置的话,你连Vitis命令都找不到。我个人习惯把配置写到 ~/.bashrc 里:

# 在 ~/.bashrc 末尾添加
source /opt/Xilinx/Vitis/2023.1/settings64.sh
source /opt/Xilinx/Vivado/2023.1/settings64.sh

# 验证是否生效
echo $XILINX_VITIS
# 应该输出:/opt/Xilinx/Vitis/2023.1

设置完后,记得 source ~/.bashrc 或者重新打开终端。嗯,这里要注意,如果你用的是csh或tcsh,得用对应的 settings64.csh 文件。

1.5 启动Vitis IDE

环境变量配好了,启动就简单了。直接在终端输入:

vitis

或者你想用图形界面的话:

vitis -workspace ~/vitis_workspace

第一次启动会慢一些,因为要加载各种插件。别急,喝杯咖啡的功夫就好了。

小技巧:我习惯把workspace放在SSD上,启动速度能快不少。机械硬盘的话...嗯,你懂的。

1.6 创建第一个Hello World工程

终于到了动手环节。咱们创建一个最简单的Hello World工程,跑在Zynq的ARM核上。

  1. 新建工程:File → New → Application Project
  2. 填写信息:工程名填 hello_world,选择你的开发板(比如ZCU102)
  3. 选择模板:在模板列表里选 Hello World
  4. 完成创建:点击Finish,Vitis会自动生成工程结构

生成的代码长这样:

#include <stdio.h>
#include "platform.h"

int main()
{
    init_platform();
    print("Hello World!\n\r");
    cleanup_platform();
    return 0;
}

这段代码很简单:初始化平台,打印"Hello World!",然后清理退出。但别小看它,这是你Vitis开发的第一步。

编译运行:

  1. 右键工程 → Build Project
  2. 编译成功后,右键工程 → Run As → Launch on Hardware
  3. 在串口终端上就能看到 "Hello World!" 了

避坑指南:我曾经在编译时遇到"找不到platform.h"的错误。后来发现是没选对开发板。记住,创建工程时一定要选对板子型号。

本章知识体系

下面这张图展示了Vitis开发的核心流程,从环境搭建到上板运行:

Vitis开发核心流程 安装Vitis 2023.1 设置环境变量 启动Vitis IDE 创建工程 编写代码 编译调试 上板运行 验证结果 从环境搭建到上板联调,每一步都至关重要

好了,第一章的内容就到这里。你跟着步骤走,应该能顺利跑起来。如果遇到问题,别慌,多半是环境变量没配好或者板子型号选错了。这些都是我踩过的坑,你避开了就好。