文章

Linux安装Vivado和Vitis

本文介绍了如何在Linux上安装FPGA开发常用软件Vivado和Vitis。

Linux安装Vivado和Vitis

为什么选择Linux作为开发环境

首先,Vitis需要Petalinux工具构建自定义Linux镜像,而Petalinux生成的部分文件格式与Windows系统不兼容(文件名大小写问题),导致Vitis和Petalinux必须同时运行在Linux系统中。其次,Vivado在Linux上的编译速度更快1

选择哪个Linux发行版

AMD官网列出了Vivado支持的操作系统2,其中包括了大家熟悉的Windows和Ubuntu。但同时也要注意,它支持的Ubuntu版本也非常有限,比如不支持Ubuntu 25.04。

如果你使用其他的Ubuntu版本,或者其他的Linux发行版(例如Arch Linux),别着急安装新系统,只需要一点修改便能正常使用所有功能。

安装流程

这里给出Vitis + Vivado的安装流程。如果你在安装过程中出现问题,请参考后文的常见问题

如果你使用Arch Linux,而且想安装最新的Vivado和Vitis,请查看这个yay包,注意你仍然需要提前下载安装包3

下载安装包

根据你所需要的版本,在AMD官网下载对应的安装包,名称为Vivado HLx <year>.<version>: All OS installer Single-File Download

以批处理模式启动安装程序

这里的安装流程参考了AMD论坛上的这篇文章

如果您使用虚拟机或服务器,可能需要scp命令将本地下载的压缩包上传到Linux中。

下载好的压缩包需要先解压,以2020.1版本的压缩包为例:

1
$ tar -xvzf Xilinx_Unified_2020.1_0602_1208.tar.gz

注意解压之后删除Xilinx_Unified_2020.1_0602_1208.tar.gz,否则可能会显示磁盘空间不足。安装过程需要100GB的空间。

1
2
$ rm Xilinx_Unified_2020.1_0602_1208.tar.gz
$ cd Xilinx_Unified_2020.1_0602_1208/

使用刚才下载安装包时所用的AMD帐户生成身份验证令牌,输入账户邮箱和密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ./xsetup -b AuthTokenGen
Running in batch mode...
Copyright (c) 1986-2025 Xilinx, Inc.  All rights reserved.

INFO : Log file location - /home/yutong/.Xilinx/xinstall/xinstall_1760787987002.log
INFO : Log file location - /home/yutong/.Xilinx/xinstall/xinstall_1760787987002.log
INFO : Internet connection validated, can connect to internet.
INFO : In order to generate the authentication token please provide your Xilinx account User ID and password.
User ID:yvts@qq.com
Password:

INFO : Generating authentication token...
INFO : Saved authentication token file successfully, valid until 10/25/2025 07:48 PM

接着生成安装配置,注意安装Vitis默认包括安装Vivado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ ./xsetup -b ConfigGen
Running in batch mode...
Copyright (c) 1986-2025 Xilinx, Inc.  All rights reserved.

INFO : Log file location - /home/yutong/.Xilinx/xinstall/xinstall_1760789173614.log
Select a Product from the list:
1. Vitis
2. Vivado
3. On-Premises Install for Cloud Deployments
4. BootGen
5. Lab Edition
6. Hardware Server
7. Documentation Navigator (Standalone)

Please choose: 1

INFO : Config file available at /home/yutong/.Xilinx/install_config.txt. Please use -c <filename> to point to this install configuration.

现在可以安装了,你可以更改安装的路径--location,注意将user_name更改为实际的用户名:

1
sudo ./xsetup --batch Install --agree XilinxEULA,3rdPartyEULA,WebTalkTerms --location /opt/Xilinx/ --config "/home/_user_name_/.Xilinx/install_config.txt"

安装成功后,启动Vivado:

1
2
3
$ bash
$ source /opt/Xilinx/Vivado/2020.1/settings64.sh
$ vivado

卸载

之前我们将软件安装在了/opt/Xilinx目录下,以卸载Vivado_2020.1为例:

1
2
$ cd /opt/Xilinx/.xinstall/Vivado_2020.1 
$ sudo ./xsetup -b Uninstall

快捷启动

下面我们制作启动Vivado/Vitis的桌面文件,这样我们就无需每次输入命令行,直接在搜索栏中即可打开Vivado/Vitis。

1
sudoedit /usr/local/bin/run-vivado

将以下内容粘贴至/usr/local/bin/run-vivado中:

1
2
3
4
#!/bin/bash

source /opt/Xilinx/Vivado/2020.1/settings64.sh
vivado &

~/.local/share/application中新建一个文件:

1
vim ~/.local/share/applications/Vivado\ 2020.1.desktop

粘贴以下内容:

1
2
3
4
5
6
7
8
9
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/opt/Xilinx/Vivado/2020.1/doc/images/vivado_logo.ico
Name[en_US]=Vivado 2020.1
Exec=/usr/local/bin/run-vivado
Name=Vivado 2020.1
StartupNotify=true

同理,我们创建Vitis的桌面文件:

1
sudoedit /usr/local/bin/run-vitis

粘贴以下内容:

1
2
3
4
#!/bin/bash

source /opt/Xilinx/Vitis/2020.1/settings64.sh
vitis &
1
vim ~/.local/share/applications/Vitis \ 2020.1.desktop
1
2
3
4
5
6
7
8
9
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/opt/Xilinx/Vitis/2020.1/doc/images/ide_logo.ico
Name[en_US]=Vitis 2020.1
Exec=/usr/local/bin/run-vitis
Name=Vitis 2020.1
StartupNotify=true

常见问题

安装进度99%不退出

如果你输入Ctrl-C强制取消安装,会发现有这样几行输出:

1
2
3
######## Execution of Pre/Post Installation Tasks Failed ########
Warning: Xilinx software was installed successfully, but an unexpected status was returned from the following post installation task(s) application-specific initialization failed: couldn't load file "librdi_commontasks.so": Uninstalling /opt/Xilinx/Vivado/2020.1 (Done)                         ry
Uninstall completed successfully

这说明了系统缺少旧版本的 libtinfo.so.54。最简单的解决方法是创建一个符号链接。

先找到库路径:

1
2
3
4
$ find /usr -name "libtinfo.so*" 2>/dev/null 

/usr/lib/libtinfo.so
/usr/lib/libtinfo.so.6

这里说明libtinfo.so.6/usr/lib路径下。不同的操作系统输出会不一样。

根据libtinfo.so.6的路径,执行:

1
sudo ln -s <path-to-libtinfo.so.6>/libtinfo.so.6 <path-to-libtinfo.so.6>/libtinfo.so.5

然后重新执行安装。

Vivado:调整缩放率

启动 Vivado,然后通过Tools > Setting > Display > Scaling设置缩放率5

Vitis:无法创建platform,显示please select a valid processor

安装xorg-xlsclients

Vitis:暗黑模式显示异常

解决方案:不要使用暗黑模式的系统主题。

Vitis: Failed to generate IP

请参考这篇文章安装补丁。注意请在root身份下运行命令。

Vitis:Hardware Emulation failed

注意,以下解决方案未经证实,请谨慎参考。

2020.1版本的xsc命令有bug,无法正确读取arguments。如果Vitis中显示cannot find libdpi.so,请执行以下命令:

1
2
3
sudo cp /opt/Xilinx/Vivado/2020.1/bin/xsc /opt/Xilinx/Vivado/2020.1/bin/xsc.bak
sudo rm /opt/Xilinx/Vivado/2020.1/bin/xsc
sudoedit /opt/Xilinx/Vivado/2020.1/bin/xsc

/opt/Xilinx/Vivado/2020.1/bin/xsc填充为以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env bash
# Wrapper for Vivado xsc on modern distros (Arch, Fedora, etc.)

# Detect real xsc binary inside Xilinx installation
REAL_XSC="/opt/Xilinx/Vivado/2020.1/bin/xsc"

# Rewrite --gcc_link_options so that multiple -L/-l args are passed as one string
args=()
while [[ $# -gt 0 ]]; do
  case "$1" in
    --gcc_link_options)
      shift
      quoted="$1"
      # Collect following args until next option starts with -
      while [[ $# -gt 1 && ! "$2" =~ ^- ]]; do
        quoted+=" $2"
        shift
      done
      args+=(--gcc_link_options "$quoted")
      ;;
    *)
      args+=("$1")
      ;;
  esac
  shift
done

LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" PATH="/usr/bin:$PATH" exec "$REAL_XSC" "${args[@]}"

然后:

1
2
sudo chown -R <your-user-name>:<your-user-name> /opt/Xilinx/Vivado/2020.1/bin/xsc 
sudo chmod 777 /opt/Xilinx/Vivado/2020.1/bin/xsc

参考文献

  1. 什么样的电脑编译Verilog快一些?https://www.zhihu.com/question/293015897 ↩︎

  2. https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Operating-Systems ↩︎

  3. https://wiki.archlinux.org/title/Xilinx_Vivado#AUR_Package ↩︎

  4. https://wiki.archlinux.org/title/Xilinx_Vivado#Missing_libtinfo.so.5_library ↩︎

  5. https://wiki.archlinux.org/title/Xilinx_Vivado#Enable_display_scaling ↩︎

本文由作者按照 CC BY 4.0 进行授权

热门标签