Skip to content

Instantly share code, notes, and snippets.

@sgherbst
Last active October 14, 2023 08:47
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sgherbst/f73c31938d3483e6c72e3baf3443f66a to your computer and use it in GitHub Desktop.
Save sgherbst/f73c31938d3483e6c72e3baf3443f66a to your computer and use it in GitHub Desktop.
Installing Vivado 2018.3 on Ubuntu 18.04 for the PYNQ-Z1 board

Prerequisites

  1. If you haven't already, create a free Xilinx account.

Installing Vivado HLx 2018.3

  1. On your local machine, download the Vivado HLx 2018.3 Linux Self Extracting Web Installer.
  2. Make the Vivado installer executable and run it:
> chmod +x Xilinx_*.bin
> sudo ./Xilinx_*.bin
  1. Once the installer loads, click "Next".
  2. Then enter your Xilinx username and password and leave "Download and Install Now" selected. Click "Next".
  3. Click "I Agree" to all three statements if you agree :-). Click "Next".
  4. Select "Vivado HL WebPACK" and click "Next".
  5. Under "Design Tools", make sure that "Vivado Design Suite" and "Software Developer Kit (SDK)" are selected.
  6. In the "Devices" menu, de-select all parts except "SoCs" -> "Zynq-7000". Click "Next".
    • Note: If you want to use a different board, then pick the appropriate part family. For example, if you are using the Nexys4 DDR board, pick "7 Series" -> "Artix-7".
  7. For the installation directory, create a directory called "/tools/Xilinx" select it. Then de-select "Create program group entries" and "Create desktop shortcuts". Click "Next".
  8. Click "Install" and wait for the installer to finish. It will take about an hour.
  9. Install the Xilinx cable drivers:
> cd /tools/Xilinx/Vivado/2018.3/data/xicom/cable_drivers/lin64/install_script/install_drivers
> sudo ./install_drivers
  1. Do some permissions cleanup:
> sudo chown -R $USER ~/.Xilinx/Vivado
> sudo chmod -R 777 ~/.Xilinx/Vivado
> sudo chgrp -R $USER ~/.Xilinx/Vivado
  1. Add the Vivado binary directory to your path:
> echo 'export PATH="/tools/Xilinx/Vivado/2018.3/bin:/tools/Xilinx/SDK/2018.3/bin:$PATH"' >> ~/.bashrc
> source ~/.bashrc
  1. Test Vivado
> vivado -version
Vivado v2018.3 (64-bit)
SW Build 2405991 on Thu Dec  6 23:36:41 MST 2018
IP Build 2404404 on Fri Dec  7 01:43:56 MST 2018
Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.

Add a UDEV rule for the PYNQ UART

Run the following commands to make the PYNQ UART accessible to non-root users. Note that this is a fairly broad rule; it makes all devices matching the pattern "/dev/ttyUSB*" available to all users.

> echo 'KERNEL=="ttyUSB[0-9]*",MODE="0666"' | sudo tee -a /etc/udev/rules.d/99-ftdi.rules > /dev/null
> sudo udevadm control --reload-rules

Installing the PYNQ-Z1 Board Files

Download Pynq-Z1 board files and copy them over to the appropriate location in the Vivado directory structure:

> wget https://github.com/cathalmccabe/pynq-z1_board_files/raw/master/pynq-z1.zip
> unzip pynq-z1.zip
> sudo cp -r pynq-z1 /tools/Xilinx/Vivado/2018.3/data/boards/board_files/.

Note: if you are using a different board, you'll want to install the corresponding board files. For example, if you are using the Nexys4 DDR board, then you would download https://github.com/Digilent/vivado-boards/archive/master.zip and move the contained nexys4_ddr folder into the board_files directory. More details are here.

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

how to install nexys4_ddr in vivado??

@sgherbst
Copy link
Author

sgherbst commented Sep 4, 2020

Try following these steps to install the required board files.

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

I have followed the steps given in the link but it is not showing the board , although I specifically copy pasted nexys4_ddr folder.Do I need to copy and paste the whole folder??

@sgherbst
Copy link
Author

sgherbst commented Sep 4, 2020

Hmm, the first thing I would try is restarting Vivado, since that is required whenever you add board files.

If that doesn't work, then please check that the nexys4_ddr folder is placed at this exact path:

Windows: C:\Xilinx\Vivado\yyyy.v\data\boards\board_files\nexys4_ddr
Linux: /tools/Vivado/yyyy.v/data/boards/board_files/nexys4_ddr

For example, if the folder was placed one level up in the boards folder, it won't work.

Another thing to check is that you have installed support for the FPGA that is used on the Nexys4 DDR board, which is XC7A100T-1CSG324C. If you try to create a new project with that exact FPGA part, does it work?

Finally, you can try debugging with the TCL console. When you launch Vivado, click Window -> Tcl Console. Then see what boards are supported by typing get_boards in the TCL console at the bottom of the window. Since there are potentially a lot of boards, you might find it convenient to search the list like this:

lsearch -inline -nocase [get_boards] *nexys*

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

No, it does not contain the XC7A100T-1CSG324C part. Any idea how to install it??

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

Also it outputs digilentinc.com:nexys4_ddr:1.1 while using above command

@sgherbst
Copy link
Author

sgherbst commented Sep 4, 2020

Try these steps to install XC7A100T-1CSG324C:

  1. From the main Vivado window, click Help -> Add Design Tools or Devices. This will take a little while to launch.
  2. Click Next.
  3. Enter your Xilinx account information. Click Next.
  4. Under Devices, click to expand 7 Series.
  5. Check the box for Artix-7, which is the product family for XC7A100T-1CSG324C. Click Next and complete the installation.
  6. If that doesn't work, you can see other options for installing new features here.

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

No, its not working just displaying empty window after selecting Artix-7

@sgherbst
Copy link
Author

sgherbst commented Sep 4, 2020

Ah, I think this is due to a permissions issue since the installer has to be run as root. Try re-launching Vivado as root (i.e., sudo vivado) and repeat the same steps.

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

Thank you , Now it is working correctly

@Aryamn
Copy link

Aryamn commented Sep 4, 2020

Also, are the same project compatible in different versions of video?

@sgherbst
Copy link
Author

sgherbst commented Sep 4, 2020

No, not in general. All of the previous releases can be found here. You can have multiple versions of Vivado installed on the same computer; they will end up getting placed in folders like /tools/Xilinx/Vivado/2016.4, /tools/Xilinx/Vivado/2020.1, etc. I think you could mostly replace 2018.3 in these instructions with the year and version that you need. Just make sure that you are aware which version of Vivado is in your PATH, since that can get confusing.

@ajaykumarr123
Copy link

ajaykumarr123 commented Sep 6, 2020

After running this command :sudo chmod -R 777 *
I am getting this Error sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
any solutions?

@sgherbst
Copy link
Author

sgherbst commented Sep 6, 2020

@ajaykumarr123 it looks like the permissions of the sudo command have gotten messed up. If you search for this error, you'll find a variety of solutions like this one. However, please be careful as this kind of error can be indicative of bigger issues in the Linux installation.

@Anvesh98
Copy link

I have tried to install vivado 2018.2 but it not installing. it struck at FInal processing-Generating board files. I tried to install vivado design. Please help me.
I haveone more doubt can we open the code files which is done in vivado 2018.2 from vivado 2018.3? i tried this and got errors

@sgherbst
Copy link
Author

sgherbst commented Jun 2, 2022

Not familiar with that installation problem, sorry -- I suggest asking on the Xilinx support forum (https://support.xilinx.com).

In terms of whether projects created in one version of Vivado can be opened with another version: no, not in general, although sometimes there are quick solutions to incompatibilities, such as re-generating IP blocks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment