System programming for Systems-on-chip
CS-473
Media
Overview
When/where:
Tuesdays: 12:00-14:00 INF-3 (theory)
Tuesdays: 14:00-16:00 INF-3 (practical works)
Material:
In this course we will provide you with a Gecko5Education FPGA-boards that contains the Virtual prototype that we are going to work on. To be able to also work at home, you can take the board home. The boards will be distributed during the practical work session of the first week. If you are not able to be there, please contact the TA to make an appointment.
Minimal requirements:
To be able to use the system you should have 2 USB-A/C ports. If your computer does not have two ports it is highly recommended to use an USB-hub.
As we also have a HDMI-output we provide you with a HDMI-grabber module.
Grading:
The grading scheme consists of:
- PW2: 10%
- PW4: 20%
- PW7: 20%
- Final written exam: 50%
The final grade will be determined by:
FG = 1 + ROUND(result_in_% * 5 * 4)/4
How to work:
All practical exercises will be performed in groups of 2 students. It is also possible to ''do it on your own''. Bigger groups as 2 students are not allowed.
We provide all required software installed on the machines in INF-3, and on a VDI-images, however, it is also possible to install the software on your local machine (see below).
References:
- Fundamentals of System-on-Chip Design on Arm Cortex-M Microcontrollers
- Computer Architecture, John L. Hennessy, David A. Patterson
- OpenRisc
- GECKO5Education/modular Developer's Guide
Software:
All required software is described in this guide for this course.
The team:
- Theo Kluter (responsable) ties.kluter@epfl.ch
- Rouybeh Pirayadi (TA) rouzbeh.pirayadi@epfl.ch
- William Robert (SA) william.robert@epfl.ch
Questions and answers:
Of course during the course hours, but we also use an ED-discussion forum (see link below).
- or1k tool-chain for MAC Mx (File)
- or1k tool-chain for MAC Intel (updated 18-09-2025) (File)
- Announcements (Forum)
Introduction
- Theory session: (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording of the first hour (Kaltura Video Resource)
- Recording second hour (Kaltura Video Resource)
- Practical session: Handout of the Virtual Prototyp... (Text and media area)
The different views of the memory sub-system
- Theory session: (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording first hour (Kaltura Video Resource)
- Recording second hour (Kaltura Video Resource)
- Practical session: Getting to know our virtual pro... (Text and media area)
- Practical Work #1 (File)
Number formats and Mandelbrot
- Theory session: (copy) (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording first hour (Kaltura Video Resource)
- Record second hour (Kaltura Video Resource)
- Practical session: First graded practical work: th... (copy) (Text and media area)
- Practical work 2 description (File)
- Practical work 2 template (File)
- Select here your group for PW2 (Group choice)
Hot spot detection
- Theory session (1hour): (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording of lecture 4 (Kaltura Video Resource)
- Practical session (3 hours): First graded practica... (Text and media area)
Memories and caches
- Theory session: (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording first hour (Kaltura Video Resource)
- Recording second hour (Kaltura Video Resource)
- Practical session: PW3 goes over 2 weeks, note tha... (Text and media area)
- Practical work 3 description (File)
- Practical work 3 template (File)
- Documentation (Folder)
Memories, bios and exceptions
- Theory session: (copy) (copy) (copy) (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording first hour (Kaltura Video Resource)
- Recording second hour (Kaltura Video Resource)
- Practical session: See last week (Text and media area)
Lecture free week (holidays)
Caches and Scratch Pad Memories
- Theory session: (copy) (copy) (copy) (copy) (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording first hour (Kaltura Video Resource)
- Recording second hour (Kaltura Video Resource)
- Practical session: Second graded PW. (Text and media area)
- Practical Work #4 description (File)
- Practical Work #4 template (File)
- Select here your group for PW4 (Group choice)
Caches and Scratch Pad Memories
- Theory session: No theory session this week, we ha... (Text and media area)
- Practical session: See last week. (Text and media area)
Bus architectures, DMA, and PIO
- Theory session: (copy) (copy) (copy) (copy) (copy) (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Practical session: Polling, interrupt driven, and ... (Text and media area)
- Practical work #5 description (File)
- Practical work #5 template (File)
- switches.pdf file (File)
DMA-bufering and compile options
- Theory session: (copy) (copy) (copy) (copy) (copy) (copy) (copy) (Text and media area)
- Slides as used during the course (please do not print these, use handout or memo for that) (File)
- Handout version of the slides (File)
- Memo version of the slides (File)
- Recording of today's short theory. (Kaltura Video Resource)
- Practical session: DMA and compiler options (Text and media area)
- Practical work #6 description (File)
- Practical work #6 template (File)
- PW6 sample solution (File)
- Example of DMA-overlap code (use -D__DMA__ as compile option) (File)
Multitasking
In this week's practical session, you will learn about multitasking using coroutines.
- Practical session: Last graded PW: Multi-tasking (Text and media area)
- Practical work #7 description (File)
- Practical Work #7 project files (File)
- Select here your group for PW7 (Group choice)
Multitasking
See last week
Buffer/ to be determined
Final written exam
Where: INF-3
When: 12:15-14:15 (on Tuesday during normal hours)
Allowed material:
- Calculator
- 4 A4-pages with notes