Ettus USRP x310 installation on Ubuntu

Vivado 2017.4 Version (Aug 2018)

  • Install Xilinx Vivado 2017.4 from

  • sudo apt install python-pip

  • Configure licence by putting the below in ~/.bashrc

export [email protected]:/opt/Xilinx/13.4/license/Xilinx.lic

source ~/.bashrc

  • Install UHD and GNU Radio by following instructions at

  • Install RFNoC files

Vivado 2015.4 Version (Jun 2017)

Host computer requirements for installing the Ettus USRP x310 along with keras are:

  • The host machine must be 64-bit compatible (you can check under linux by typing grep /proc/cpuinfo which should have the “lm” flag present).

  • You also need about 50GB of free disk space for the Xilinx tools.

The steps are:

  1. (USRP hardware) Insert RF daughtercard and run cables from daughtercard to front panel

  2. (Python) Install some basic development packages (

sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
sudo apt-get install python-pip
pip install --upgrade pip
  1. (Tensorflow and Keras)Install according to
sudo pip install virtualenv
sudo pip install virtualenvwrapper
export WORKON_HOME=~/Envs # needed later for virtualenvwrapper
mkdir -p $WORKON_HOME
source /usr/local/bin/
mkvirtualenv keras_tf
workon keras_tf
pip install tensorflow
pip install keras
pip install requests
  1. (Xilinx) Download Xilinx software (must be version 2015.4) and install using sudo. While you are there also get the free licence for

. Put the following line in /etc/udev/rules.d/70-persistent-net.rules and reboot (this is needed to change the ethernet device from en0 to eth0 which is needed for the Xilinx license system

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"

then add the following line to ~/.bashrc

export [email protected]:/opt/Xilinx/13.4/license/Xilinx.lic
source ~/rfnoc/

and reboot. This should change it in

source ~/.bashrc
    # source /opt/Xilinx/Vivado/2015.4/
    # export WORKON_HOME=~/Envs # needed later for virtualenvwrapper
    # source /usr/local/bin/
  1. (Network connection to x310) Install ethernet SFP and make sure you use a 1G ethernet crossover cable (supplied with the system) to connect to a PC. The Apple USB ethernet adaptor doesn’t appear to work with the USRP x310! Configure your machine with an ethernet port which has a static ip address of Turn on the Ettus x310.

should work.

  1. (PyBombs) Install pybombs and gnuradio (
sudo apt-get install git
sudo apt-get install python-setuptools python-dev python-pip build-essential
sudo pip install git+
pybombs recipes add gr-recipes git+
pybombs recipes add ettus git+
pybombs prefix init ~/rfnoc -R rfnoc -a rfnoc
source ~/rfnoc/
  1. (RFNoC tutorial) You should now be able to run the tutorial at

  * I changed rfnoc/src/uhd-fpga/usrp3/top/x300/ to reflect the version of Vivado being used.
cd ~/rfnoc
cd ~/rfnoc/src/uhd-fpga/usrp3/top/x300
make cleanall
make X310_HG # progress and output files in ~/rfnoc/src/uhd-fpga/usrp3/top/x300/build-X310_HG
  1. Install and excecute
* To generate a bitstream:
source ~/rfnoc/
cd ~/rfnoc/src/uhd-fpga/usrp3/tools/script
./ window fft exmodrec -d x310 -t X310_RFNOC_HLS_HG -m 5 -I /home/vivado/rfnoc/src/rfnoc-hls-neuralnet/ --fill-with-fifos -c
* Note that device is xc7k410tffg900-2