如何在mac上优雅地使用Vivado


前言
最近计组实验需要频繁使用 vivado, 但是 Xilinx 没有开发 macOS 版本的, 一般解决方案是使用虚拟机或 Bootcamp, 但过于臃肿, 我们可以借助 Docker 与 Xquartz 优雅地在 macOS 上搭建环境。
Docker
Docker 想必不用做过多介绍,可谓是虚拟机的一个可行、经济且高效的替代方案,具体可以前往Docker 官网了解。
Xquartz
Xquartz是 mac 上的 X11.app,利用其 X11 Forwarding 技术,将宿主机(也就是我们的 mac)作为 X server,将 docker 容器中的 GUI 程序(Vivado)作为 X client 访问 X server,以实现在 macOS 上操作相应 GUI 程序。
这个过程有点类似于 VNC,可以理解成单个 GUI 的 VNC。
Vivado
不想过多介绍,只想说~~Fxxk you, Xilinx~~
准备工作
Xquartz
使用Homebrew包管理器安装,打开终端输入:
brew install --cask xquartz
完成后重启电脑,然后打开 Xquartz(如找不到直接 Spotlight 搜索就行),按cmd+,进入偏好设置,在安全性中将第二个选项选中,即允许来自网络的连接。
Vivado
我们需要下载完整的 Linux Vivado 安装包,可以前往Xilinx 官网下载。
建议下载到~/Downloads/路径下,这样之后运行 docker 时可以直接使用本文提供的指令
Docker
可以使用Homebrew包管理器安装 Docker
brew install docker
或者直接安装有图形化界面的 Docker Desktop,个人推荐这一种,毕竟有图形界面为什么不用呢
访问Docker 官网下载安装即可
实例化 Docker 容器
首先拉取一下 Ubuntu 的镜像,当然你也可以使用其他 Vivado 支持的 Linux 发行版
docker pull ubuntu
然后我们需要查看一下本机的 IP 地址,打开设置->共享->文件共享,可以看到小字中有smb://xxx.xxx.xxx.xxx格式的地址,将smb://后面的部分记录一下
完成后我们实例化这个镜像,创建一个文件夹存放下载好的安装包,然后挂载到容器中
## macOS
## 创建挂载文件夹并解压安装包
cd ~
mkdir vivado-dir
mv ~/Downloads/Xilinx_Vivado_SDK_2018.3_1207_2324.tar ~/vivado-dir/
cd vivado-dir
tar -zxvf ./Xilinx_Vivado_SDK_2018.3_1207_2324.tar
rm -rf ./Xilinx_Vivado_SDK_2018.3_1207_2324.tar
## 实例化docker镜像
docker run --name vivado \ ## 容器名称
--mount source=~/vivado-dir,target=/vivado \ ## 挂载文件夹到容器的/vivado目录下
-e DISPLAY=xxx.xxx.xxx.xxx:0 \ ## 将xxx.xxx.xxx.xxx替换成你刚刚得到的IP地址
-i -t ubuntu bash
接下来运行 docker 容器
docker exec vivado /bin/bash
配置 X11 环境
进入容器后安装一下依赖,如下载慢请自行使用网络代理或换源
apt -y --no-install-recommends install ca-certificates curl sudo xorg dbus dbus-x11 ubuntu-gnome-default-settings gtk2-engines lxappearance
安装 Vivado
以上工作都完成后,我们进入刚刚挂载的目录,运行 Vivado 安装程序,准确无误的话会在 mac 中显示出安装程序的窗口
## docker
cd /vivado/Xilinx_Vivado_SDK_2018.3_1207_2324
sudo ./xsetup
显示出图形界面后安装即可
安装程序默认会将 vivado 安装在/tools/Xilinx目录下,运行完成后,可以将 Vivado 添加到环境变量。
运行 Vivado
启动的一般步骤为,运行 docker 容器
docker exec vivado /bin/bash
运行 Vivado
vivado
总结
至此安装已全部完成,你可以扔掉臃肿的虚拟机,优雅地在 macOS 中使用 vivado。
