软件安装

VitisXilinx推出的一款统一软件平台,软件平台包括:

  1. 全面的内核开发套件,可无缝构建加速应用
  2. 完整的硬件加速开源库,针对 AMD FPGAVersal™ ACAP 硬件平台进行了优化
  3. 插入特定领域的开发环境,可直接在熟悉的更高层次框架中进行开发
  4. 不断发展的硬件加速合作伙伴库和预建应用生态系统
  5. Vitis Model Composer 是一款基于模型的设计工具,支持在MathWorks MATLAB®Simulink® 环境中进行快速设计探索和验证,并加速 AMD 器件的量产。
  6. Vitis Networking P4 允许创建软定义网络。VitisNetP4 数据平面构建器生成的系统可以针对从简单的数据包分类到复杂的数据包编辑的各种数据包处理功能进行编程。

目前软件发行了WindowsLinux两个版本,Windows主要针对硬件开发用户,而如果需要使用完整的AI硬件加速的完整功能,只能在Linux下实现,因此以下案例均以Linux为平台开发。

Linux安装

开发环境选择VMware作为虚拟机,需要注意是的petalinux2018.3只支持ubuntu2018.3,之后的版本由于python工具包版本总是出问题,如果选择petalinux2018.3那么必须选择ubuntu2018.3
petalinux之后的版本支持全系列ubuntu版本。理论上支持centos环境,但是需要打很多驱动比较繁琐,此处就不折腾了。下载ubuntu 推荐上官网,此处选择版本ubuntu22.04 LTS (Long Tern Support)
,顾名思义软件安装包将得到更长的支持。
Ubuntu下载

下载好Ubuntu镜像后在VMware中创建虚拟机。
创建虚拟机
然后选择此处稍后安装操作系统。
稍后安装操作系统
选择正确的Ubuntu系统。
选择正确Ubuntu系统
选择虚拟机名称和安装路径,需要注意的是虚拟机名称不是UbuntuUser名,而是VMware中看到的名称,一个用户可能安装多个虚拟机,以此作为区分。
安装路径选择
选择虚拟机的大小(后期发现200g的磁盘空间根本不够用,Vitis2022软件相比之前版本大了很多,建议至少500G往上),建议将虚拟机文件存储为单个文件,这样容易维护。
选择虚拟机分配空间大小
根据自己电脑的性能分配虚拟机的内存和处理器的多少,然后在CD/DVD处选择下载好的
Ubuntu镜像。
定义虚拟机性能
之后打开虚拟机即可安装
Ubuntu**。
选择安装ubuntu
语言选择建议选择英文,整个虚拟机中不需要出现中文。
语言选择
建议将安装Ubuntu时更新去掉。
普通设置
清除整个磁盘,这边直接选择清除,磁盘空间本来就是VM刚创建的空间,没有文件。
清除整个磁盘
创建用户,设置密码,然后进入各种包的安装环节,直接安装即可。
创建用户

Ubuntu换源

Ubuntu的服务器在国外,因此下载速度很慢,可以更换国内源。国内有很多Ubuntu的镜像源,包括阿里的、网易的,还有很多教育网的源,比如:清华源、中科大源。镜像源一定要下载一定的Ubuntu
版本比如本案例使用的Ubuntu 22.04。此处使用清华源:

1
2
3
4
5
6
7
8
9
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

安装步骤如下:

  1. 备份原始源文件
  2. 修改源文件权限
  3. 更换源
  4. 源更新
1
2
3
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #将默认源镜像备份
sudo chmod 777 /etc/apt/sourceslist #修改镜像文件权限
sudo vi /etc/apt/sources.list #修改镜像文件

将所有默认源删除后,添加上方清华源,然后执行:

1
2
sudo apt update    # 源更新
sudo apt upgrade

Ubuntu22.04不兼容VMtools

Ubuntu 22.04默认安装了VMtools,因此安装完成后可以实现虚拟机的分辨率缩放,但是无法实现win和虚拟机之间文件互传拖拽问题。解决方案如下:
先卸载自带的VMtools

1
2
sudo apt-get --purge remove open-vm-tools           ##完全卸载open-vm-tools
sudo apt-get --purge remove open-vm-tools-desktop ##完全卸载open-vm-tools-desktop

然后重新安装VMtools

1
2
sudo apt-get install open-vm-tools                  ##重新安装open-vm-tools
sudo apt-get install open-vm-tools-desktop ##重新安装open-vm-tools-desktop

启动VMtools服务

1
systemctl start open-vm-tools.service               ##启动VMtools服务

设置VMtools开机自启

1
systemctl enable open-vm-tools.service              ##设置Vmtools开机自启

检查VMtools状态

1
systemctl status open-vm-tools.service              ##检测Vmtools状态

如果两个都是enable都是打开状态下,则表示服务已经开启。
Vmtools状态
安装完成后发现分辨率自适应正常,但是还是无法拖拽文件。接下来则需要安装两个文件实现。
1.gnome-shell-extension-prefs
2.nemo
首先在Terminal输入一下命令安装两个软件:

1
2
sudo apt install gnome-shell-extension-prefs
sudo apt install nemo

然后打开extensionDesktop icons NG选项关闭。
extension设置
然后打开start application preference添加如下命令:
start application preference设置
安装完成后reboot,然后发现可以首先虚拟机和Windows之间互相拖拽传文件。

Vitis安装

Vitis安装同样推荐官网安装。此处记得选择软件开发者,硬件开发者的功能在Windows下即可实现,而大多数和AI加速相关的功能只能在Linux下实现。
Vitis下载
一定要下载Linux版本,而且是Bin版本。
Vitis版本
安装完成后将Bin文件拖拽到虚拟机,然后打开Terminal运行:
Vits安装程序
填写Xilinx账号和密码:
Xilinx账号密码
选择Vitis,如果想要实现完整的功能必须安装Vitis
选择Vitis
版本安装Vitis和Vivado是必须的,然后器件推荐Versal ACAP去掉,这个型号器件不太常用。
器件选择

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
########################### Synopsys ###############################
#Set Synopsys Directory
export Synopsys_Dir=/opt/synopsys
#SCL
export SCL_HOME=$Synopsys_Dir/scl/2021.03
export PATH=$SCL_HOME/linux64/bin:$PATH
#SNPSLMD_LICENSE_FILE
export SNPSLMD_LICENSE_FILE=30000@qingteng
#fm
export fm_HOME=$Synopsys_Dir/fm/Q-2019.12-SP2
export PATH=$fm_HOME/bin:$PATH
#hspice
export hspice_HOME=$Synopsys_Dir/hspice/S-2021.09
export PATH=$hspice_HOME/hspice/bin:$PATH
#icc2
export icc2_HOME=$Synopsys_Dir/icc2/R-2020.09-SP1
export PATH=$icc2_HOME/bin:$PATH
#lc
export lc_HOME=$Synopsys_Dir/lc/R-2020.09-SP3
export PATH=$lc_HOME/bin:$PATH
#prime
export prime_HOME=$Synopsys_Dir/prime/R-2020.09-SP4
export PATH=$prime_HOME/bin:$PATH
#spyglass
export spyglass_HOME=$Synopsys_Dir/spyglass/P-2019.06-SP1-1
export PATH=$spyglass_HOME/SPYGLASS_HOME/bin:$PATH
#syn
export syn_HOME=$Synopsys_Dir/syn/R-2020.09-SP4
export PATH=$syn_HOME/bin:$PATH
#vcs
export VCS_HOME=$Synopsys_Dir/vcs/Q-2020.03-SP2-7
export PATH=$VCS_HOME/bin:$PATH
export NOVAS_HOME=$Synopsys_Dir/verdi/R-2020.12-SP1
export VCS_TARGET_ARCH=amd64 # set vcs full64
#verdi
export VERDI_HOME=$Synopsys_Dir/verdi/R-2020.12-SP1
export PATH=$VERDI_HOME/bin:$PATH
#wv
export wv_HOME=$Synopsys_Dir/wv/S-2021.09
export PATH=$wv_HOME/bin:$PATH
alias lms="/opt/synopsys/scl/2021.03/linux64/bin/lmgrd -c /opt/synopsys/license/license.dat -l /
alias lmd="/opt/synopsys/scl/2021.03/linux64/bin/lmdown -c /opt/synopsys/license/license.dat"
#export FLEXLM_DIAGNOSTICS=10 # check for license missing feature