Vivado Design Suite

Vivado is a name which the reader should be familiar with if ever worked with  Xilinx development cycle. In my opinion, it is surely advanced than previous suite ISE, but is far less stable and is in continuous development. Every quarter a new version is released with upgrades and bug fixes. With the OS upgrade to windows 10 pc, it’s every new update somehow mess-up with the Vivado installation and some workaround is required. This has become an issue for now as the continuous development is hampered.  We have seen that Vivado is having much better stability and speed with Linux development environment. Although there is some dependency required to be installed for its smooth operation which is not mentioned in the installation guide very properly. In this article, we are presenting a step by step guide to install Vivado 2017.4 and all its dependency in Ubuntu/Xubuntu. The choice between Ubuntu and Xubuntu can be personal again but with Xfce as the desktop environment, Xubuntu is less resource hungry providing more breathing space for Vivado installation.

Installation

Step 1: Download and extract Vivado 2017.4.1

Step 2: Go to extracted folder and from right-click menu, select open terminal here.

Step 3: Login to administrator account

xyz@xyz:~/vivado$ sudo -s

Enter the password, and the prompt should change to:

root@xyz:~/vivado#

Step 4: Run the shell script

root@xyz:~/vivado# sh ./xsetup

“./” represents current folder and the command is running the shell script to install Vivado. Follow the GUI and install it as usual.

One can also use the web installer. Web installer script will do download and install together, which might take longer. Default Installation location is “/opt” it’s better to leave it as default while installing through GUI.

Step 5: Install cable drivers

Open terminal emulator : “Alt+Ctrl+T”

xyz@xyz:~$ cd /opt/Xilinx/Vivado/2017.4/data/xicom/cable_drivers/lin64/install_script/install_drivers/ 
xyz@xyz:~/opt/Xilinx/Vivado/2017.4/data/xicom/cable_drivers/lin64/install_script/install_drivers$ sudo ./install_drivers

Step 6: Update .bashrc

At /home directory press cntrl+H to show hidden files and add following lines to the .bashrc file. One can also use command line tool like “vi” to update the same.

source /opt/Xilinx/DocNav/.settings64-DocNav.sh
source /opt/Xilinx/Vivado/2017.4/.settings64-Vivado.sh
source /opt/Xilinx/SDK/2017.4/.settings64-SDK_Core_Tools.sh

The license file can also be set by pointing its location.

export XILINXD_LICENSE_FILE=*****************************

Vivado will also work without updating the .bashrc but every time pointing to license file and importing source will be necessary.

Step 7: Dependency check (optional)

To check the dependencies either of the commands ldd or objdump can be used.

xyz@xyz:~$ ldd /opt/Xilinx/Vivado/2017.4/bin/unwrapped/lnx64.o/vivado
xyz@xyz:~$ objdump -p /opt/Xilinx/Vivado/2017.4/bin/unwrapped/lnx64.o/vivado

These commands will show missing libraries which are needed and hence can be installed.

Step 8:  Install missing libraries

In general, even if dependency check is not performed, installing following libraries can be all required in most of the cases.

xyz@xyz:~$ sudo apt-get update
xyz@xyz:~$ sudo apt-get upgrade
xyz@xyz:~$ sudo apt-get install google-perftools libboost-signals-dev libstdc++6

Even though Vivado supports 64-bit architecture, still some features require 32-bit libraries. Make sure to install them as well.

xyz@xyz:~$ sudo dpkg --add-architecture i386
xyz@xyz:~$ sudo apt-get install lib32stdc++6 libgtk2.0-0:i386 libfontconfig1:i386 libx11-6:i386 libxext6:i386 libxrender1:i386 libsm6:i386 libqtgui4:i386

Step 9: Optional application installation

At this point, Vivado install is complete, but a serial application with hex visualization would be good for development purpose. GTKTerm is the good candidate for the same.

xyz@xyz:~$ sudo apt-get install gtkterm

Step 10: Restart

A restart might be required for some changes to take effect.

Running Vivado

Now the suite is ready to run, so fire up the beast software and develop some hardware IP.

Run Vivado using terminal emulator:

xyz@xyz:~$vivado

Run SDK using terminal emulator:

xyz@xyz:~$xsdk

Run DocNav using terminal emulator:

xyz@xyz:~$docnav

Un-install

Step 1:  Run the shell script in “/opt/Xilinx/.xinstall/Vivado_2017.4/” in un-installation mode as superuser.

xyz@xyz:~$ sudo -s
enter the password:
root@xyz:~# cd /opt/Xilinx/.xinstall/Vivado_2017.4
root@xyz:~/opt/Xilinx/.xinstall/Vivado_2017.4# ./xsetup -Uninstall

Step 2: Follow the graphical un-installer. Once installation is completed remove unwanted libraries

xyz@xyz:~$ sudo apt-get autoremove

Step 3: Finally update .bashrc

At /home directory press cntrl+H to show hidden files and remove following lines from the .bashrc file. One can also use command line tool like “vi” to update the same.

source /opt/Xilinx/DocNav/.settings64-DocNav.sh
source /opt/Xilinx/Vivado/2017.4/.settings64-Vivado.sh
source /opt/Xilinx/SDK/2017.4/.settings64-SDK_Core_Tools.sh
export XILINXD_LICENSE_FILE=*****************************

And you are done un-installing Vivado from your system.

By Purnendu Kumar

Purnendu is currently working as Senior Project Engineer at QuNu Labs, Indias only Quantum security company. He has submitted his thesis for Masters (MS by research 2014-17) in electrical engineering at IIT Madras for doing his research on “constant fraction discriminator” and “amplitude and rise-time compensated discriminator” for precise time stamping of Resistive Plate Chamber detector signals. In collaboration with India Based Neutrino observatory project, he has participated in design and upgrade of FPGA-based data acquisition system, test-jig development, and discrete front-end design. After completion of his bachelors in Electrical Engineering (Power and Electronics), he was awarded Junior Research Fellowship at Department of Physics and Astro-physics, University of Delhi under same (INO) project. His current interest is in high-speed circuit design, embedded systems, IoT, FPGA implementation and optimization of complex algorithms, experimental high-energy physics, and quantum mechanics.