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

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.

Aug 17th 2026
4 Weeks
FPGA Softcore Processors and IP Acquisition (Coursera) Coursera
University of Colorado Boulder

FPGA Softcore Processors and IP Acquisition (Coursera)

This course will introduce you to all aspects of development of Soft Processors and Intellectual Property (IP) in FPGA design. You will learn the extent of Soft Processor types and capabilities, how to make your own Soft Processor in and FPGA, including how to design the hardware and the software for a Soft Processor. You will learn how to add IP blocks and custom instructions to your Soft Processor.

Aug 3rd 2026
4 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
Microcontroller Applications with RISC-V (edX) EdX
Linux Foundation,LinuxFoundationX

Microcontroller Applications with RISC-V (edX)

Create simple embedded applications with a RISC-V microcontroller using a user-friendly integrated development environment (IDE). This course provides some basic experience in designing and developing deeply embedded bare metal applications using a microcontroller with a RISC-V core. The course is the first step to creating embedded systems using a host of new microcontrollers that use an open instruction set architecture (ISA) as an alternative to a proprietary option.

Self Paced
Self-Paced
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
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
Introduction to Microprocessors (edX) EdX
Arm Education,ArmEducationX

Introduction to Microprocessors (edX)

An introduction to computer architecture, microprocessors and CPUs. Learn about the basic components of a PC, what they do, how they talk to each other and how object code gets transformed into machine code. The topics covered by this course are key to anyone interested in computer hardware engineering but also an essential foundation for software programming.

Self Paced
Self-Paced
FPGA computing systems: A Bird’s Eye View on Reconfigurable Computing (POK) Polimi OPEN KNOWLEDGE
Politecnico di Milano

FPGA computing systems: A Bird’s Eye View on Reconfigurable Computing (POK)

This course is the first one of a “series”, aimed at providing a structured understanding on how the FPGAs are working and of the rationale behind the choice of them to implement a desired system. This course is for anyone passionate in learning how a hardware component can be adapted at runtime to better respond to users/environment needs.

Available
4 Weeks
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