EdX

Computer Architecture with an Industrial RISC-V Core [RVfpga] (edX)

Computer Architecture with an Industrial RISC-V Core [RVfpga] (edX)

Get a practical introduction to using RISC-V computer architecture based on a RISC-V system-on-chip (SoC) targeted to a field-programmable gate array (FPGA) and to different simulation tools.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

RISC-V, an open-standard computer architecture, is transforming processor design and software/hardware co-design, including enabling open source hardware implementations. This means that software development can occur alongside hardware development, accelerating the design process. Enroll today to develop your understanding of the RISC-V architecture and its ecosystem and get familiar with the RISC-V cores and system-on-chip.
This course is for junior level or higher university computer science, electrical and computer engineers and other technical students as well as others who would like to learn and experiment with RISC-V.
Upon completion, learners should be able to use RISC-V to improve security, power consumption and performance of processors and help shape the future of computer architecture.

What you'll learn

  • Understand and be able to use the RISC-V Computer Architecture
  • Develop and compile C and RISC-V Assembly code for the RVfpga SoC
  • Understand, use and extend the Input/Output System of the RVfpga SoC
  • Understand and configure the microarchitecture of the VeeR EH1 CoreTM and test its different features using - Performance Counters and industry-standard Benchmarks.
  • Execute programs on the Nexys A7 board (optional) and simulate programs on different simulation tools: Whisper instruction set simulator (ISS); Verilator-based RVfpga-ViDBo; RVfpga-Pipeline; and RVfpga-Trace.

Prerequisites:
Learners should have a fundamental understanding of the following topics: digital logic design, high-level programming (such as C programming), assembly programming, RISC-V instruction set architecture, processor microarchitecture, and memory and input/output systems.
The software and optional hardware is supported in Linux, and most of it is also supported in Windows and macOS. A Ubuntu 22.04 Virtual Machine is also provided with everything installed on it, so that you can easily use all tools in a Linux environment (independently of the OS that you use in your computer) out-of-the-box. The course may be completed in simulation, so the hardware (the Nexys A7 FPGA board) is optional.

Syllabus

Welcome!
Chapter 1. Installation and Initial Demonstrations
Chapter 2. C Programming with the RVfpga SoC
Chapter 3. RISC-V Assembly Programming with the RVfpga SoC
Chapter 4. RISC-V Function Calls
Chapter 5. Mixing C and Assembly Functions in a Program
Chapter 6. Introduction to Peripherals and Input/Output
Chapter 7. More I/O: 7-Segment Displays
Chapter 8. More I/O: Timers
Chapter 9. Interrupts
Chapter 10. Delving Deeper into the RISC-V VeeR Core
Final Exam (Verified Track only)

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introducción al diseño de hardware con Verilog (edX) EdX
Galileo University,GalileoX

Introducción al diseño de hardware con Verilog (edX)

Aprende el lenguaje de descripción de hardware Verilog, utilizado en la industria en el diseño de hardware digital y microprocesadores a la medida. En la actualidad, el hardware de soporte en sistemas digitales se suele diseñar en un solo circuito integrado FPGA (Field Programmable Gate Array), en parte debido al abundante espacio físico que ocuparía una implementación con varios circuitos integrados dedicados para este fin.

Self Paced
Self-Paced
Developing FPGA-accelerated cloud applications with SDAccel: Practice (Coursera) Coursera
Politecnico di Milano

Developing FPGA-accelerated cloud applications with SDAccel: Practice (Coursera)

This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel! The more general purpose you are, the more flexible you are and the more kinds of programs and algorithms you can execute on your underlying computing infrastructure. All of this is terrific, but there is no free food and this is happening, quite often, by losing in efficiency.

Jun 22nd 2026
4 Weeks
Building a RISC-V CPU Core (edX) EdX
Linux Foundation,LinuxFoundationX

Building a RISC-V CPU Core (edX)

Create a RISC-V CPU with modern open source circuit design tools, methodologies, and microarchitecture, all from your browser. Building a RISC-V CPU Core is designed for anyone with a technical inclination who is interested in learning more about hardware. Whether you are new to digital logic or are a seasoned veteran, students will take away new skills that can be applied immediately. No prior knowledge of digital logic design is required.

Self Paced
Self-Paced
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Jun 22nd 2026
5-12 Weeks
Energy Efficient Programming (openHPI) OpenHPI
Hasso-Plattner-Institut

Energy Efficient Programming (openHPI)

Efficiency in computer science often refers to the runtime or memory usage, that a certain algorithm needs to produce an output. However, efficiency can also describe the amount of energy, that is consumed by the hardware during the runtime of an algorithm. This course explains the relevant computer architecture components, as well as different coding techniques, that allow computer scientists to design and program energy efficient algorithms.

Mar 27th 2023
2 Weeks
High Performance Computer Architecture (Udacity) Udacity
Georgia Institute of Technology,Udacity

High Performance Computer Architecture (Udacity)

The course begins with a lesson on performance measurement, which leads to a discussion on the necessity of performance improvement. Pipelining, the first level of performance refinement, is reviewed. The weaknesses of pipelining will be exposed and explored, and various solutions to these issues will be studied. The student will learn hardware, software, and compiler based solutions to these issues.

Self Paced
Self-Paced
Fondamenti di informatica (Federica Web Learning) Federica Web Learning
University of Naples Federico II

Fondamenti di informatica (Federica Web Learning)

Il mondo moderno è sempre più dipendente dall’Informatica e conoscerne i fondamenti e le relative applicazioni risulta essenziale per comprendere il funzionamento degli attuali Sistemi di Elaborazione delle Informazioni, oramai diffusi nei contesti più disparati ed imprescindibili per molte delle attività della nostra vita quotidiana. Il corso di Fondamenti di Informatica si propone di fornire ai discenti le nozioni preliminari alla base dell’informatica, ed in particolare quelle relative al trattamento delle informazioni mediante procedure “automatizzabili”.

No sessions available
13-24 Weeks
How Computers Work: Demystifying Computation (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

How Computers Work: Demystifying Computation (FutureLearn)

Explore the fundamentals of computing - computer architecture, binary logic, data processing, circuits, and more. Understand computation, the basis of every computer system. On this course, you’ll gain an understanding of how computers work at a fundamental level.

Jan 2nd 2023
4 Weeks
Hardware Description Languages for FPGA Design (Coursera) Coursera
University of Colorado Boulder

Hardware Description Languages for FPGA Design (Coursera)

Hardware Description Languages for Logic Design enables students to design circuits using VHDL and Verilog, the most widespread design methods for FPGA Design. It uses natural learning processes to make learning the languages easy. Simple first examples are presented, then language rules and syntax, followed by more complex examples, and then finally use of test bench simulations to verify correctness of the designs.

Jun 15th 2026
4 Weeks