We wrote a textbook, RISC-V System-on-Chip Design, to bridge the gap between learning about the theory of processor, computer architecture, and system-on-chip (SoC) design and being able to put these theories into practice by understanding, simulating, analyzing, and expanding a fully functional processor and SoC. The book begins with a brief history of processor design and an overview of the RISC-V architecture and then describes the tools needed to work with Wally, the open-source RISC-V SoC described in the book. These tools include GCC and the Sail, Spike, and Verilator simulators as well as best practices in hardware description language (HDL) design, design verification, and logic synthesis. The Wally SoC supports both of RISC-V’s base integer instruction sets, RV32I and RV64I, caches, branch prediction, virtual memory, and many extensions, including the compressed (C), multiply/divide (M), floating-point (Zfh/F/D/Q), atomic (A), and bit manipulation (B) extensions. Wally supports the RVI20U32, RVI20U64, and RVA22S64 RISC-V profiles and can boot Linux with privilege modes and virtual memory and can run on an FPGA. The textbook can be used to teach courses in computer architecture, SoC design, design verification, embedded systems, or a subset of these in theory, practice, or both. We describe two types of courses we taught using a draft version of this textbook: a senior/master’s level course that focused on all stages of SoC design and a second course taught at the sophomore/junior level that focused on computer architecture and processor design only. These courses used the labs, exercises, and Wally SoC that accompany the textbook. We expect this book and course, as well as Wally, to continue to evolve both in its capabilities and in the way that it is used and taught.
The full paper will be available to logged in and registered conference attendees once the conference starts on June 22, 2025, and to all visitors after the conference ends on June 25, 2025