Prerequisites¶
Host OS¶
Linux. The package installation commands below are Ubuntu-based. I also have a BoxLambda setup on Fedora and Arch.
Vivado¶
Vivado ML Edition V2025.1, Linux version:
Make sure you also install your Arty A7 board files. Digilent has excellent instructions for installing Vivado and Digilent board files:
https://digilent.com/reference/programmable-logic/guides/installing-vivado-and-vitis
Git¶
sudo apt-get install git
GNU Make¶
Version 4.2.1 or later.
sudo apt-get install make
CMake¶
Version 4.0.0 or later.
On Ubuntu, follow these instructions: https://apt.kitware.com/
Make sure that the correct CMake version is first in your PATH. The Vivado /tools/Xilinx/Vivado/2023.1/settings64.sh script adds an old version of CMake to your path. I override that by re-adding /usr/bin to the front of the PATH after sourcing the Vivado script:
source /tools/Xilinx/Vivado/2023.1/settings64.sh
export PATH=/usr/bin:$PATH
Ninja and Meson¶
Ninja and Meson are required to build the Picolibc library.
sudo apt-get install ninja-build
sudo apt-get install meson
GDB (Multiarch)¶
For debug access to BoxLambda.
sudo apt install gdb-multiarch
On Arch Linux, the regular gdb package includes multiarch support, so you should just install gdb instead of gdb-multiarch.
Mtools¶
Utilities such as mcopy to access FAT disks without mounting them. Used to create RAM disks for BoxLambda.
sudo apt install mtools
Dosfstools¶
Utilities such as mkfs.fat to create FAT disk images. Used to create RAM disks for BoxLambda.
sudo apt install dosfstools
Additional Prerequisites for Building and Running the Verilator Test Cases¶
SDL2¶
If SDL2 is installed, the vera_integrated_test Verilator simulation test cases will use it to display the VERA graphics core VGA output. If SDL2 is not installed, the test will still run, using the same pass/fail criteria, but the output will not be rendered to a window.
https://wiki.libsdl.org/SDL2/Installation
Chromaprint¶
Chromaprint is needed to run Verilator simulation test cases involving the YM2149 PSG sound core.
sudo apt-get install libchromaprint-tools
Tools you probably don't need¶
Gforth¶
Gforth is required if you would like to tinker with the usb_hid_device firmware.
sudo apt-get install gforth
Perl¶
Perl is required if you would like to tinker with the usb_hid_host firmware. Your system most likely already has Perl installed. If not:
sudo apt-get install perl.
Hidden Tool Dependencies¶
The following tools are automatically installed (if not already installed) by sourcing the activate_env.sh script:
- OSS CAD Suite (CoCoTB, iverilog, GTKWave, openFPGALoader, OpenOCD, Python)
- Bender
- Python packages
- BoxLambda fork of Litex
- riscv32-boxlambda-elf: RISCV32 GNU toolchain custom-built for BoxLambda.