Isle Software Build
Published 22 Jan 2026 (DRAFT)
This appendix explains how to build Isle software with a RISC-V toolchain.
If you're new to the project, read Isle FPGA Computer for an introduction. See Isle Index for more pages.
Programming Language
Isle software is currently written in RISC-V assembler and needs to be assembled and linked on a PC before programming Isle. Assembler might seem overly low-level, but RISC-V assembler is surprisingly readable, and it lets us directly interact with our hardware. We'll introduce higher-level languages, such as Lua, as Isle evolves and we gain access to more memory.
Install RISC-V Toolchain
I plan to run dev tools on Isle itself in future, but for now, you need to compile software on an external computer. Cross-compiling to RISC-V is straightforward, with pre-built packages available for most OS.
- Debian/Ubuntu/Pop!_OS:
apt install gcc-riscv64-unknown-elf - Arch Linux:
pacman -S riscv64-elf-gcc - Fedora:
dnf install gcc-riscv64-linux-gnu - macOS:
brew install riscv-gnu-toolchain
Windows users can run a RISC-V toolchain under Windows Subsystem for Linux (WSL).
Building Isle Software
Before building, Arch Linux and Fedora users need to edit BIN_PREFIX in the relevant Makefile. For example, for chapter 5 software this is isle/software/book/ch05/Makefile.
To build the software for a specific chapter, change to that directory and run make. For example:
cd isle/software/book/ch05
make
The software is assembled and turned into a .mem file suitable for loading into memory at design time. We will add support for loading software at runtime from storage in future chapters.
To create a disassembled version of the linked software, run make with the program name and the `.dis` extension; for example:
cd isle/software/book/ch05
make hello.dis
To change the software loaded at design time, amend FILE_SOFT in your dev board's top file. For example, to amend chapter 5 to run blink, edit top_ch05.v:
localparam FILE_SOFT = {SW, "/book/ch05/blink.mem"};
Further Reading
- RISC-V Assembler Guide by Will Green
- RISC-V Technical Specifications (riscv.org)