A community-driven, continuously updated compilation of RISC-V learning resources. Content is organized by topic and experience level to help you discover courses, software, documentation, and articles efficiently.
RISC-V is an open standard Instruction Set Architecture (ISA) based on established Reduced Instruction Set Computer (RISC) principles.
👋 Want to learn about RISC-V? Check out the Beginner-Level or Intermediate-Level learning resources.
We love contributions! Thank you for your interest in contributing to our RISC-V tutorial compilation.
Contributing is easy! Follow these steps:
✔ Browse the beginner and intermediate-level resources here to check if your resource is already included.
✔ If not, go to Issues, click New issue, and select the Add Resource template.
✔ Enter the resource details and submit the issue.
✔ For other contributions, use the General Request issue template here.
✔ Engage with open issues if you have feedback.
We may contact you for more details before adding contributions.
For those with little or no knowledge of digital logic design. Consider starting with Digital Design & Computer Architecture (RISC-V Edition) and then progressing to intermediate-level courses like RVfpga.
| Resource | Author(s) | Description | Access | Date Added |
|---|---|---|---|---|
| An Introduction to Assembly Programming with RISC-V | Prof. Edson Borin | Teaches RISC-V assembly programming concepts. | Webpage | 2024-05-03 |
| Architecture 1005: RISC-V Assembly | OpenSecurityTraining | Security-focused exploration of RISC-V ISAs and extensions. | Course videos | 2024-04-15 |
| Basic Computer Architecture | Smruti R. Sarangi | Computer architecture fundamentals. | Website | 2024-12-27 |
| Computer Architecture Basics | CTU Prague – FEE (Pavel Piša) | Course covering computer architecture basics, including CPU design and speculative execution. | Course videos | 2024-04-16 |
| Creating a RISC-V from scratch! | Lucas Teske (Teske's Lab) | Learning livestream series focused on creating an RV32E that runs on FPGAs. | YouTube (Portuguese) | 2024-10-18 |
| Digital Design & Computer Architecture RISC-V Edition | Sarah L. Harris, David M. Harris | Foundational digital logic design and RISC-V processor implementation. | Amazon | 2024-10-01 |
| Easy RISC-V | Vivian “dramforever” Wang | RISC-V assembly tutorial with interactive emulator (RV32I and some privileged arch). | Webpage | 2025-10-30 |
| Hands-on RISC-V Processor Design | Rahul Behl | Dive into RISC-V processor design using SystemVerilog. | QuickSilicon | 2024-10-01 |
| learn-FPGA episode I: from blinky to RISC-V | Bruno Levy | Design an FPGA-based RISC-V softcore starting from a basic Verilog blinker. | GitHub | 2024-10-01 |
| LinuxFoundationX: Building a RISC-V CPU Core | Steve Hoover | Free course on RISC-V microarchitecture design using open-source tools. | edX course | 2024-10-01 |
| Nand2Tetris | Noam Nisan, Shimon Schocken | Build a computer from logic gates using a hardware simulator. | Website | 2024-10-01 |
| RISC-V Assembly Introduction (Portuguese) | Gabriel G. de Brito | Basics of RISC-V IM architecture with the EGG emulator. | Course videos | 2024-06-04 |
| Step-by-step RISC-V Compiler Development | Shao-Ce Sun | Practical guide to RISC-V C compiler development. | Teaching resources · Course videos (Chinese) | 2024-03-20 |
| Step-by-step RISC-V OS Development | Chen Wang | Practical guide for developing RISC-V operating systems. | Teaching resources · Course videos (Chinese) | 2024-05-03 |
| The RISC-V Reader: An Open Architecture Atlas | David Patterson, Andrew Waterman | Introduction to the RISC-V instruction set. | RISC-V Reader | 2024-05-03 |
| Writing a RISC-V OS From Scratch | Seiya Nuta | Write an OS for RISC-V in about 1,000 lines of code. | Webpage | 2025-07-27 |
| Why Your Phone Is So Fast: The Sports Car vs. The Truck | David Patterson | How do we keep making computers faster? | Webpage | 2025-02-09 |
Advanced materials for learners familiar with digital logic and basic architecture.
| Resource | Author(s) | Description | Access | Date Added |
|---|---|---|---|---|
| Computer Architecture: A Quantitative Approach (6th Edition) | David Patterson, John Hennessy | Advanced topics including ILP and GPU architectures, using RISC-V. | Amazon | 2024-10-01 |
| Computer Organization & Design (RISC-V Edition) | David Patterson, John Hennessy | In-depth study of RISC-V ISA and processor implementation. | Amazon | 2024-10-01 |
| HaDes-V | Tobias Scheipel | The Instruction Guide and code template (OER) for microcontroller design using the HaDes-V RISC-V-based processor. | GitHub · Instruction Guide | 2024-12-18 |
| Learn with SHAKTI | Shakti – RISE Lab, IITM | Tutorials on RISC-V assembly programming using the RISC-V toolchain. | Learn with Shakti | 2023-12-21 |
| learn-FPGA episode II: pipelining | Bruno Levy | Extends the basic RISC-V softcore from episode I with pipelining and performance optimizations. | GitHub | 2024-10-01 |
| LinuxFoundationX: RISC-V Toolchain and Compiler Optimization Techniques | Aditya Kumar | RISC-V toolchain internals and compiler optimizations. | edX course | 2024-10-01 |
| RISC-V Optimization Guide | RISE Project | Actionable optimization recommendations for RISC-V software developers. | GitLab | 2024-02-19 |
| RV64GC Linker from Scratch in Go | Yang Liu, PLCT Lab | Build an RV64GC linker from scratch in Go. | GitHub · Course videos (Chinese) | 2024-04-24 |
| RVfpga (Extended): Understanding Computer Architecture | Sarah Harris, Daniel Chaver-Martinez | Updated RVfpga course with FPGA and simulation tools. | RVfpga v3.0 downloads | 2024-06-02 |
| RVfpga: Computer Architecture with an Industrial RISC-V Core | Sarah Harris, Daniel Chaver-Martinez | Hands-on learning with a commercial RISC-V SoC on FPGAs. | edX course | 2024-10-01 |
| Teaching experiences with RVfpga | ARTECS Group, Complutense University of Madrid | How RVfpga and the Ripes simulator were used in two UCM courses. | GitHub | 2024-10-18 |
| Tutorial: RISC-V Vector Extension Demystified | Thang Tran | In-depth introduction to the RISC-V vector extension. | YouTube | 2024-10-01 |
| Tutorial: basic_RV32s | T410N | A systematic microarchitectural roadmap for learning RISC-V processor design from scratch. | basic_RV32s | 2024-07-25 |
Tools to enhance understanding or visualize the RISC-V ISA.
| Tool | Author(s) | Description | Access | Date Added |
|---|---|---|---|---|
| CREATOR | Diego Camarmas Alonso, Félix García Carballeira, Alejandro Calderón Mateos, Elías del Pozo Puñal | Didactic simulator for RISC-V assembly programs. | Website | 2023-12-20 |
| emulsiV | Guillaume Savaton | Visual simulator for a minimal 32-bit RISC processor. | Website | 2023-12-20 |
| Go RISC-V Emulator | Lucas Teske | A Go implementation of RV32I+M that can run Doom. | GitHub | 2024-10-18 |
| Compiler Explorer | Matt Godbolt | Online compiler explorer supporting GCC/LLVM for RV64. | Website | 2024-10-18 |
| Online RISC-V Assembler | Lucas Teske | Online RISC-V assembler using GNU assembler in WebAssembly. | Website, GitHub | 2024-10-18 |
| Piscado | Gustavo N. Martins | RISC-V simulator written in Python during Twitch live coding. | GitHub | 2024-10-18 |
| QtRvSim | CTU Prague | RISC-V simulator with cache and pipeline visualization. | GitHub | 2023-12-20 |
| RISC-V ALE | Antonio Guimarães | RISC-V Assembly Learning Environment. | Website | 2024-10-18 |
| RISC-V Instruction Encoder/Decoder | LupLab | Online tool for encoding/decoding RISC-V instructions. | Website | 2023-12-20 |
| Risco-5S | Julio Nunes Avelar | RISC-V simulator with RV32IM, built during a few days off. | GitHub | 2023-11-04 |
| RVV Intrinsics Viewer | dzaima | Documentation for RISC-V vector extension intrinsics. | Website | 2023-12-20 |
| WebRISC-V | Roberto Giorgi, Gianfranco Mariotti | Web-based graphical simulation with pipeline visualization for RV32IM/RV64IM. | GitHub | 2025-08-14 |
Explore open RISC-V implementations for hands-on learning.
| Name | Description | Access | Date Added |
|---|---|---|---|
| AUK-V-Aethia | AUK-V RV32I CPU. | GitHub | 2024-10-18 |
| CV32E40P | In-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY (PULP-Platform). | GitHub | 2024-10-18 |
| CVA6 | CORE-V CVA6, an application-class 6-stage RISC-V CPU capable of booting Linux. | GitHub | 2024-10-18 |
| DarkRISCV | Small RV32-E/I soft-core CPU optimized for FPGAs. | GitHub | 2024-10-18 |
| Grande Risco-5 | RV32I multi-cycle processor with a 5-stage pipeline for education. | GitHub | 2024-11-06 |
| Hazard3 | 3-stage RV32IMACZb* processor with debug. | GitHub | 2024-12-19 |
| KianV | SV32 (MMU) RV32IMA Zicntr Zicsr Zifencei SSTC Linux/XV6 ASIC/FPGA SoC. | GitHub | 2025-09-30 |
| Kronos | 3-stage in-order RISC-V RV32I_Zicsr_Zifencei core geared towards FPGA. | GitHub | 2024-10-18 |
| Leaf | Small RV32I SoC in VHDL for portable applications; FPGA and ASIC. | GitHub | 2024-10-23 |
| Maestro | 5-stage pipeline RV32I implementation in VHDL. | GitHub | 2024-10-18 |
| Mriscv | 32-bit microcontroller featuring a RISC-V core. | GitHub | 2024-10-18 |
| NEORV32 | MCU-class RISC-V soft-core CPU, customizable and extensible. | GitHub | 2024-11-01 |
| NERV | Naive Educational RISC-V processor. | GitHub | 2024-10-18 |
| NoX | Small RISC-V (RV32I) core written in SystemVerilog. | GitHub | 2024-10-21 |
| Pequeno | Pipelined in-order RISC-V CPU core compliant with RV32I. | GitHub | 2023-12-20 |
| PicoRV32 | Size-optimized RISC-V CPU. | GitHub | 2024-10-18 |
| ReonV | Modified LEON3 (SPARC V8) to RISC-V ISA, VHDL. | GitHub | 2024-10-18 |
| Riscado-V | Simple RISC-V (RV32I) implementation in Verilog. | GitHub | 2024-10-18 |
| Risco-5 | Multi-cycle RISC-V processor with RV32I/E[M]. | GitHub | 2024-10-18 |
| RISC-V Steel | RV32I + Zicsr + Machine mode. | GitHub | 2024-10-18 |
| RPU | Basic RISC-V CPU in VHDL. | GitHub | 2024-10-18 |
| RSD | RISC-V out-of-order superscalar processor. | GitHub | 2024-10-18 |
| SERV | The SErial RISC-V CPU. | GitHub | 2024-10-18 |
| SGDH-RVSoC | Tiny 32-bit RISC-V rv32acim CPU capable of running Linux on FPGA and in simulation. | GitHub | 2025-10-08 |
| TinyRiscv | Very simple and easy-to-understand RISC-V core. | GitHub | 2024-10-18 |
| VexRiscv | FPGA-friendly 32-bit RISC-V CPU (SpinalHDL). | GitHub | 2024-10-18 |
| Riskow | Toy RV32-E from scratch during livestreams; runs on low-cost FPGAs. | GitHub | 2024-10-18 |
Popular hardware based on RV32 processors.
| Board or Dev Kit | Company | SoC | RISC-V Core | Frequency | Date Added |
|---|---|---|---|---|---|
| CH32V003 Devkit | WCH | CH32V003 | Single-core QingKe V2A | 48 MHz | 2025-07-25 |
| ESP32C2 Devkit | Espressif | ESP32C2 | Single-core 32-bit | 120 MHz | 2025-07-25 |
| ESP32C3 Devkit | Espressif | ESP32C3 | Single-core 32-bit | 160 MHz | 2025-07-25 |
| ESP32C5 Devkit | Espressif | ESP32C5 | Single-core 32-bit | 240 MHz | 2025-07-25 |
| ESP32C6 Devkit | Espressif | ESP32C6 | Single-core 32-bit | 160 MHz | 2025-07-25 |
| ESP32H2 Devkit | Espressif | ESP32H2 | Single-core 32-bit | 96 MHz | 2025-07-25 |
| ESP32P4 EV Board | Espressif | ESP32P4 | Dual-core 32-bit | 360 MHz | 2025-07-25 |
| Longan Nano | Sipeed | GD32VF103CBT6 | Single-core 32-bit | 108 MHz | 2025-07-25 |
| M0sense | Sipeed | BL702 | Single-core 32-bit | 144 MHz | 2025-08-24 |
| Raspberry Pi Pico 2 | Raspberry Pi | RP2350 | Dual-core Hazard3 | 150 MHz | 2024-12-19 |
Following are no longer available:
| Board or Dev Kit | Company | SoC | RISC-V Core | Frequency | Date Added |
|---|---|---|---|---|---|
| HiFive1 | SiFive | FE310-G000 | 32-bit E31 | 256 MHz | 2024-10-31 |
| HiFive1 Rev B | SiFive | FE310-G002 | 32-bit E31 | 256 MHz | 2024-10-31 |
Popular hardware based on RV64 processors.
| Board or Dev Kit | Company | SoC | RISC-V Core | Date Added |
|---|---|---|---|---|
| Banana Pi F3 | Banana Pi | SpacemiT K1 | Octa-core X60 | 2024-11-01 |
| BeagleV-Ahead | BeagleBoard.org | TH1520 | T-HEAD quad-core Xuantie C910 | 2025-07-26 |
| BeagleV-Fire | BeagleBoard.org | Microchip PolarFire MPFS025T | 4× RV64GC + 1× RV64IMAC | 2025-07-26 |
| DC Roma Laptop I | DeepComputing | StarFive JH7110 | Quad-core | 2025-11-03 |
| DC Roma Laptop II | DeepComputing | SpacemiT K1 | Octa-core X60™ | 2024-10-31 |
| DC Roma Mainboard I | DeepComputing | StarFive JH7110 | Quad-core | 2025-11-03 |
| DC Roma Mainboard II (AI PC) | DeepComputing | ESWIN EIC7702X | SiFive octa-core P550 | 2025-07-25 |
| HiFive Premier P550 | SiFive | ESWIN EIC7700X | SiFive quad-core P550 | 2024-10-31 |
| HiFive Unmatched | SiFive | SiFive U74-MC | 64-bit S7 | 2024-10-31 |
| Kendryte K230 | Canaan Technology | K230 | Dual-core T-HEAD C908 | 2024-11-01 |
| LicheeBook 4A | Sipeed | TH1520 | Quad-core T-HEAD C910 | 2024-10-31 |
| LicheePi 3A | Sipeed | SpacemiT K1 | Octa-core X60 | 2024-10-31 |
| LicheePi 4A | Sipeed | TH1520 | Quad-core T-HEAD C910 | 2024-10-31 |
| LicheePi Console 4A | Sipeed | TH1520 | Quad-core T-HEAD C910 | 2024-10-31 |
| LicheeRV D1 | Sipeed | AllWinner D1 | Single-core T-HEAD C906 | 2024-10-31 |
| LicheeRV Nano | Sipeed | SG2002 | Single-core T-HEAD C906 | 2024-10-31 |
| MangoPi MQ-Pro | MangoPi | D1 | Single-core T-HEAD C906 | 2025-07-28 |
| Milk-V Duo | Milk-V | CV1800B | T-HEAD C906 | 2024-10-31 |
| Milk-V Duo256M | Milk-V | SG2002 | T-HEAD C906 | 2024-10-31 |
| Milk-V Duo S | Milk-V | SG2000 | T-HEAD C906 | 2024-10-31 |
| Milk-V Jupiter | Milk-V | SpacemiT K1 | Octa-core X60 | 2024-10-31 |
| Milk-V Mars | Milk-V | JH7110 | Quad-core SiFive U74 | 2024-10-31 |
| Milk-V Meles | Milk-V | TH1520 | Quad-core T-HEAD C910 | 2024-10-31 |
| Milk-V Pioneer | Milk-V | SG2042 | 64 cores T-HEAD C910 | 2024-10-31 |
| Milk-V Vega | Milk-V | FSL1030M | UX608 core | 2024-10-31 |
| OK7110-C | Forlinx | JH7110 | Quad-core SiFive U74 | 2024-10-31 |
| Ox64 | Pine64 | BL808 | T-HEAD C906, E907, E902 | 2024-10-31 |
| PineTab-V | Pine64 | JH7110 | Quad-core SiFive U74 | 2024-10-31 |
| SpacemiT MUSE Book | SpacemiT | SpacemiT K1 | Octa-core X60 | 2025-09-04 |
| SpacemiT MUSE Box | SpacemiT | SpacemiT K1 | Octa-core X60 | 2025-09-04 |
| SpacemiT MUSE Card | SpacemiT | SpacemiT M1 | Octa-core X60 | 2025-09-02 |
| SpacemiT MUSE Pi | SpacemiT | SpacemiT M1 | Octa-core X60 | 2024-11-01 |
| SpacemiT MUSE Pi Pro | SpacemiT | SpacemiT M1 | Octa-core X60 | 2025-09-02 |
| Star 64 | Pine64 | JH7110 | Quad-core SiFive U74 | 2024-10-31 |
| VisionFive 2 | StarFive Technology | JH7110 | Quad-core SiFive U74 | 2024-10-31 |
| Resource | Author(s) | Description | Access |
|---|---|---|---|
| Design of the RISC-V Instruction Set Architecture | Andrew Waterman | PhD dissertation on the structure of the RISC-V ISA. | |
| Is RISC-V the Future? | Roddy Urquhart | Examination of RISC-V’s future potential. | Article |
| Past, Present and Future of RISC-V | Krste Asanović | Overview of RISC-V’s evolution. | YouTube |