This documentation is for a development version. Click here for the latest stable release (v0.3.2).

Using PYNQ

The PYNQ board runs Ubuntu, which is a richly featured Linux operating system, and operates similar to the Ubuntu desktop installation. You have access to the package manager apt and utilities such as pip. The board runs multiple python versions and it is important to note that the PYNQ ecosystem is only set up to run with Python 3.6. In the NengoBrainBoard SD image, the python and pip aliases have been modified to point to the correct version, so you will be able to call these command from the terminal without having to make any modifications to the operating system.


If you are not using the NengoBrainBoard SD card image, ensure you are using python3.6 and pip3.6 when scripting and adding packages.


The Nengo interface for the board is installed in /opt/nengo-pynq. The hardware bitstreams (*.bit files) and their associated *.hwh (formerly *.tcl) files must be saved in /opt/nengo-pynq/lib. Refer to the README in the /opt/nengo-pynq/lib folder on the board for details. If these files do not exist in this directory, see the Updating Bitstreams section below for details on how to obtain them.

For running networks on the board please refer to the NengoFPGA usage documentation.

Updating Bitstreams

The NengoFPGA bitstreams for the PYNQ are tailored to your specific device. We will need your Device ID in order to build a new bitstream. You can obtain your Device ID and acquire bitstreams by following the instructions in the NengoFPGA copy protection documentation.

Once we have obtained your Device ID, your custom bitstream will be built and distributed to you. You will receive an email with a weblink to download your tailored bitstreams. The link will allow you to download an archive (zip file) named as the Device ID that was provided to us, for example, This archive contains the following files:

  • pes_relu_rate.bit: The hardware design that implements rate model rectified linear units.

  • pes_relu_rate.hwh: The hardware description used by PYNQ for the rate model rectified linear units.

  • pes_relu_spiking.bit: The hardware design that implements spiking model rectified linear units.

  • pes_relu_spiking.hwh: The hardware description used by PYNQ for the spiking model rectified linear units.

Unzip the archive and copy all of these files to /opt/nengo-pynq/lib on the board. See Copying Files to/from PYNQ for help copying the files to the board.