Core Knowledge

Learn how to add your custom hardware (written in Verilog or VHDL) to an existing RISC-V computer system.
Learn how to control and debug your custom hardware in software after regenerating the system.

Course Requirement

Participants must have digital design knowledge and know how to use Verilog (or VHDL) language.
Participants don’t need to know the Scala-CHISEL language to learn this course.

Exercises in this course use the Arty-A7 FPGA board. Participants need to have an Arty-A7 to learn this course.
Note: both 35T and 100T versions of the FPGA are ok.

Course List

Lecture Title
1 RISC-V Introduction
2 Chipyard Design Framework
3 Rocket Computer System
4 Boot Sequence and Software
5 Custom Hardware on Peripheral
6 Custom Hardware in ROCC
7 Course Summary

Lecture #1:    RISC-V Introduction
Explain the structure of a typical computer system. Introduce RISC-V and RISC-V ISA. Giving materials and some RISC-V news.

Lecture #2:    Chipyard Design Framework
Introduce the Chipyard library and explain its structure. Show how to git clone and make. Learn how to create a new Chisel project using this Chipyard library as a template.

Lecture #3:    Rocket Computer System
Introduce the RISC-V computer system. Learn how to Git clone and make the system. Learn how to program with the Arty-A7 FPGA board. Learn how to change some of the system configurations.

Lecture #4:    Boot Sequence and Software
Describe the typical boot flow of computer systems. Describe our system’s boot sequence using the default software. Learn how to change the default program with your custom code.

Lecture #5:    Custom Hardware on Peripheral
Explain the TileLink bus protocol and the peripheral’s memory-mapped communication. Explain the GCD circuit and how to write a Scala wrapper for that circuit. Finally, learn how to write software to control the new hardware.

Lecture #6:    Custom Hardware in ROCC
Explain the ROCC. Reuse the GCD circuit, but this time attach it to the ROCC instead of the peripheral. Finally, learn how to control the ROCC module with software.

Lecture #7:    Course Summary
A top-down review from ISA to software and hardware.