After successful completion of the course, students are able to design and verify digitial integrated circuits in a team using state-of-the-art methods, and to package a design for re-usability and maintainance.
In this course, we will learn about the RISC-V instruction set architecture. We will study the PicoRV32 microprocessor implementation, and add a custom instruction. This custom instruction will implement an approximate version of a multiplier. We benchmark the exact/approximate versions of the microporcessor core, using the Dhrystone benchmarks, by varying the different available compiler toolchains for that core. At the end of the course, we present our project to the class, discussing expected and unexpected results.
The introductory session will be held on March 7, 2024, 09:00--11:00, in the ICT's computer lab (room CA0208).
In the lab we will concuct a digital hardware design project in a team. The goal is to implement a specification, and to prove the implementation's correctness with formal verification methods.
Collaboration between colleagues is not only allowed, but encouraged. It is, however, not allowed to simply copy a design without knowing what is going on. This will be checked in the lab reviews.
The contents of the course will be cmplemented by the following methods:
- Describe the solution to a problem in a behavioral HDL
- Learn to use the code of others
- Learn what is important by using code of others: licensing, coding style, integration to your own code base
- Create a self-contained package along with information necessary to be used by others
- Learn to use several design tools for simulation and synthesis: Yosys, nextpnr, GHDL, GTKWave
- Learn to automate tasks by scripting (Bash scripts, Makefiles, TCL scripts, ...)
- Learn to collaborate, and to use tools that support collaboration (git, Telegram, ...)
- Learn that it is not important to solve any problem strictly on your own, but that it is important to collaborate and to communicate in order to solve big problems
- Learn that specifications never are complete (and that communication is important to make them complete for a limited scope)
- Learn about licensing your own work
In the case of more registrations than places, students with an active relevant master degree (066 438, 066 439, 066 504, 066 507 and 066 508) are preferably admitted to students of other subjects. Within these groups the lot decides on the allocation of the space.