Embedded system design
Summary
Hardware-software co-design is a well known concept in embedded system design.It is also a concept required in designing FPGA-accelerators in data-centers.This course teaches how to transform algorithms in smart hardware-software solutions.
Content
High-level architectures:
- FIFO's, LIFO's, ring-buffers, and ping-pong buffers.
 - FSM-D (finite state machine data-path) structures.
 - Stream processing.
 
Acceleration methods:
- Custom instruction set extensions.
 - Hardware accelerators
 - Compiler optimizations.
 
Implementation methods:
- Hardware-software co-design.
 - Timing closure.
 - Virtual prototyping.
 - Bare metal versus usage of an RTOS.
 
Learning Prerequisites
Required courses
Recommended courses
- Architecture-aware programming
 - CS-200 Computer Architecture
 
Important concepts to start the course
- C/C++ programming skills
 
- Verilog description skills
 
Learning Outcomes
By the end of the course, the student must be able to:
- Design buffers to account for different read and write behaviors
 - Understand the concept of FSM-D's and use this concept to design accelerators
 - Understand the concept of stream processing and be able to implement a stream processor
 - Design and optimize an embedded system on FPGA given a set of prerequisites
 
Teaching methods
- First 9 weeks : theory with small projects and reports
 - Last 5 weeks : mini project in groups of 2 students with final demonstration and presentation
 
Expected student activities
- Perform in groups of two students small projects to put the theory into practice
 - Optimize a real world problem in a final project, explain the choices made, and present the results
 
Assessment methods
- Lab reports : 50%
 - Final mini-project : 50%
 
Supervision
| Office hours | No | 
| Assistants | Yes | 
| Others | Electronic forum and Moodle | 
Dans les plans d'études
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
- Semestre: Printemps
 - Forme de l'examen: Pendant le semestre (session d'été)
 - Matière examinée: Embedded system design
 - Cours: 2 Heure(s) hebdo x 14 semaines
 - Labo: 2 Heure(s) hebdo x 14 semaines
 - Type: optionnel
 
Semaine de référence
| Lu | Ma | Me | Je | Ve | |
| 8-9 | |||||
| 9-10 | |||||
| 10-11 | |||||
| 11-12 | |||||
| 12-13 | |||||
| 13-14 | |||||
| 14-15 | |||||
| 15-16 | |||||
| 16-17 | |||||
| 17-18 | |||||
| 18-19 | |||||
| 19-20 | |||||
| 20-21 | |||||
| 21-22 | 
Légendes:
Cours
Exercice, TP
Projet, Labo, autre