Generating a bitstream for Xilinx devices requires a Vivado installation. Please note that the “WebPACK” edition does not support the Xilinx Kintex 7 XC7K410T used on the CW310 board.
For software development, Vivado is still necessary for most workflows. However, the (free) Lab Edition is sufficient, and it has a significantly smaller installation footprint. For example, Vivado's updatemem
tool is used to splice ROM images into the bitstream, and this is included in the Lab Edition.
Vivado Version: The recommendation is to use Vivado {{#tool-version vivado }}.
Following the arrival of Vivado ML Edition, you will need to follow the links for that, eg. Products -> Hardware Development -> Vivado ML. Then click on ‘Vivado Archive’ in the Version list and locate version {{#tool-version vivado }} of Vivado Design Suite.
See [Download and Installation](https://docs.xilinx.com/r/{{#tool-version vivado }}-English/ug973-vivado-release-notes-install-license/Download-and-Installation) for installation instructions.
When asked what edition to install, choose “Vivado HL Design Edition”. Note: If you are only developing software, you may select the “Lab Edition” instead. On the feature selection screen, select at least the following features:
After installing Vivado, you will need to add Vivado's paths to your shell environment. See [Launching the Vivado IDE from the Command Line on Windows or Linux](https://docs.xilinx.com/r/{{#tool-version vivado }}-English/ug892-vivado-design-flows-overview/Launching-the-Vivado-IDE-from-the-Command-Line-on-Windows-or-Linux) for instructions.
To program any FPGAs the user using Vivado typically needs to have permissions to access USB devices connected to the PC. Depending on your security policy you can take different steps to enable this access. One way of doing so is given in the udev rule outlined below.
To do so, create a file named /etc/udev/rules.d/90-lowrisc.rules
and add the following content to it:
# Grant access to board peripherals connected over USB: # - The USB devices itself (used e.g. by Vivado to program the FPGA) # - Virtual UART at /dev/tty/XXX # NewAE Technology Inc. ChipWhisperer boards e.g. CW310, CW305, CW-Lite, CW-Husky ACTION=="add|change", SUBSYSTEM=="usb|tty", ATTRS{idVendor}=="2b3e", ATTRS{idProduct}=="ace[0-9]|c[3-6][0-9][0-9]", MODE="0666" # Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC # used on Digilent boards ACTION=="add|change", SUBSYSTEM=="usb|tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{manufacturer}=="Digilent", MODE="0666" # Future Technology Devices International, Ltd FT232 Serial (UART) IC ACTION=="add|change", SUBSYSTEM=="usb|tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
You then need to reload the udev rules:
sudo udevadm control --reload