Skip to content

Repository files navigation

RVfpga: Links, Teaching Materials and Experiences, Papers and Tools

Links to the RVfpga materials

Teaching materials developed on top of RVfpga and teaching experiences

This repository provides materials from a range of RVfpga-based teaching experiences, primarily conducted during the 2024-25 and 2025-26 academic years.

We first show how we adapted and used the RVfpga: Understanding Computer Architecture and the RVfpga-SoC packages provided by Imagination Technologies, as well as the Ripes simulator, in the labs of three courses instructed at the University Complutense of Madrid (UCM).

  • Computer Fundamentals (second semester of year 2024-25): This is a first-year course in the Computer Science degree program at UCM. In folder Computer_Fundamentals of this repository you can find all the materials used in the course. Since this is an introductory course, we only use Ripes in the labs.

  • Computer Organization (first semester of years 2024-25, 2025-26 and 2026-27): This is a second-year course in the Computer Science degree program at UCM. In folder Computer_Organization of this repository you can find part of the materials (mainly the labs) used in the course. For the labs, we use a combination of Ripes and RVfpga-based exercises.

  • Integrated Systems Architecture (second semester of years 2024-25 and 2025-26): This is a fourth-year course in the Electronics and Communication Engineering degree program at UCM. In folder Integrated_Systems_Architecture of this repository you can find part of the materials (mainly the labs) used in the course. Since this is an advanced course, we mainly use RVfpga-based labs.

We also participated in the Master de Formación Permanente en Sistemas Microelectrónicos Basados en Arquitecturas Abiertas (first semester of year 2024-25) at the University of Castilla-La Mancha (UCLM). Specifically, within the course Diseño de Microcontroladores en Hardware Abierto, we taught an entire two-week-long module based on RVfpga. You can find the details in the following folder: Design_Microcontrollers_Open_Hardware

In years 2024-25 and 2025-26, we instructed a microcredential as part of a joint effort between UCM and OpenChip. This is the official webpage of the 2025-26 course: RISC-V: Architecture and Design based on Commercial VeeR Cores on FPGA. Here, you can find all the materials used in the 2025-26 course: RVfpga_Microcredential

Finally, it should be highlighted that a number of Bachelor's and Master's theses at UCM were developed using RVfpga, among which the most notable are:

Papers, Presentations and Videos

If you're interested in learning more about the details of the RVfpga course, check out our paper published at IEEE Access in January-2026:

In the following links you can also find many videos that illustrate different topics of RVfpga.

RVfpga Tools

RVfpga provides both simulation and hardware-based methods for using and analyzing the RVfpga core, SoC, and its peripherals.
The following figure shows an overview of these tools using the EL2 SoC and a Nexys A7 FPGA board.
All tools share a common back-end —the VeeRwolfX SoC code— but use different front-ends.

RVfpga tools diagram

Nexys A7 Basys 3 Boolean

  • Execution in simulation:
    RVfpga includes several SoC simulation tools (the first three are based on Verilator). Instructions for running these simulators are available at RVfpga: Understanding Computer Architecture and in some of the above courses (such as Computer_Organization_25-26):
    • RVfpga-ViDBo: simulates the RVfpga System on a Virtual Development Board, including communication with peripherals.

                        Descripción de la imagen

  • RVfpga-Pipeline: visualizes the execution of instructions through the VeeR EH1 or EL2 pipeline.

            Descripción de la imagen

  • RVfpga-Trace: records internal SoC signals while running a program and visualizes them with GTKWave.

                        Descripción de la imagen

  • RVfpga-Whisper: a RISC-V Instruction Set Simulator.

With these tools, the complete RVfpga course can be followed without a physical board, at no cost.
Internally, all SoC simulators use Verilator, which translates the Verilog SoC into C++ code that is then compiled and executed to simulate RISC-V programs.
Default simulation binaries are included in the RVfpga package, but users can also generate new ones using Verilator.

Sources and compilation instructions can be found in several places:

  1. Course-provided packages (two versions available):

    • SimulatorsAndProjects_24-25
      After extracting the archive, the three simulators can be found in:
      • RVfpga-ViDBo: Simuladores_EC_24-25/RVfpga/verilatorSIM_ViDBo
      • RVfpga-Pipeline: Simuladores_EC_24-25/RVfpga/verilatorSIM_Pipeline
      • RVfpga-Trace: Simuladores_EC_24-25/RVfpga/verilatorSIM_Trace
    • SimulatorsAndProjects_25-26
      Same as the previous version, but including an enhanced RVfpga-Pipeline simulator.
  2. RVfpga course v3.0: RVfpga: Understanding Computer Architecture

  3. edX MOOC: RVfpga-based MOOC

  4. Academic papers associated with RVfpga

  5. Older versions of RVfpga-ViDBo and RVfpga-Pipeline are also available on GitHub: SimulationTools

About

Links to the RVfpga materials developed by Imagination Technologies, and recent additions on teaching materials and experiences, papers, talks, and tools.

Resources

Stars

38 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages