Xilinx Vivado 2020.1 on Ubuntu using Docker
Using Docker, installation of the Xilinx Vivado tools can be automated and isolated.
Step 1 Install Docker
You can either install Docker on Windows or MacOS using the instructions here. On Ubuntu, Docker can be installed either via the instructions on the Docker site or using the Ubuntu package via the instructions here.
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Step 2 Download Dockerfile
Clone my Dockerfiles at https://github.com/phwl/docker-vivado-2020.1.
Step 3 Download Xilinx Vivado Design Suite 2020.1
Download the Vivado HLx 2020.1: All OS installer Single-File Download to the docker-ubuntu-vivado directory (you will need an account).
The filename should be Xilinx_Unified_2020.1_0602_1208.tar.gz
and it
should be 36~GB (the Docker image is 109~GB so make sure you have enough
space in /var/lib/docker
.
Step 4 Build and test the Docker image
Follow the instructions in docker-ubuntu-vivado/README.md, i.e. type
docker image build -t vivado-2020.1 .
You can run using
docker run -e DISPLAY=`hostname`:0.0 -it --rm -v $PWD:/home/user/work -w /home/user vivado-2020.1
Step 5 Customise
In particular, you will probably want to edit Dockerfile and/or entrypoint.sh to include your licence files.
Step 6 File System (7/10/20)
By default, Docker puts its images in /var/lib/docker
. On most of my
machines I have a relatively small SSD for /
and use a larger hard disk
for /home
. Since the Xilinx tools take up 120 GB alone, I moved /var
, /home
and /opt
to the magnetic disk. Thus my /etc/fstab looks like
# mount the local HD to /home, /var and /opt
/dev/disk/by-uuid/HARD_DISK /srv/fs auto nodev,nofail,x-gvfs-show 0 0
/srv/fs/home /home none bind 0 0
/srv/fs/var /var none bind 0 0
/srv/fs/opt /opt none bind 0 0