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.

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