Lab on hardware-software digital systems codesign
EE-390(a) / 3 crédits
Enseignant(s): Atienza Alonso David, Peon Quiros Miguel
Langue: Anglais
Withdrawal: It is not allowed to withdraw from this subject after the registration deadline.
Summary
During the course, we cover the design of multi-core embedded systems running Linux on an FPGA. Students learn how to develop hardware-software co-design solutions for complex tasks using high-level synthesis languages. We cover debugging co-designed embedded systems with integrated logic analyzers.
Content
Architecture of embedded systems. SW-HW co-design
Architecture and SW-HW co-design of embedded systems. Memory hierarchies for multi-core systems. Coherence between custom HW modules and processor memory hierarchy.
Integration of custom HW in the Linux operating system. Physical address space and virtual memory; address translation. Device drivers.
Tools and design flows
Division of tasks between SW and HW. Design of peripherals for the ARM AXI4 bus. Integration of HW components in a multi-core system. Simulation and debugging at the system level.
Use of high-level synthesis (HLS) as a productivity booster for the design of HW components that implement complex functionality.
Keywords
Embedded system, co-design SW-HW, FPGA, AXI4, Linux, device drivers, High-Level Synthesis (HLS).
Learning Prerequisites
Required courses
- Systèmes embarqués microprogrammés (EE-310)
- Systèmes numériques (EE-334)
Important concepts to start the course
Architecture of embedded devices.
Design of digital systems in VHDL.
Programming in C.
Basic operating system (Linux) concepts.
Learning Outcomes
By the end of the course, the student must be able to:
- Compose un système embarqué complexe
- Develop des composants matériels personnalisés et les intégrer
- Synthesize une spécification et une architecture à partir d'une idée abstraite
- Explain les fondations et les principes gouvernant le matériel d'un système digital embarqué
Teaching methods
Work on small projects that build up the final SW-HW platform. During the course, we introduce the required concepts to build step-by-step a platform composed of SW and HW components. Among other projects, we build a basic video gaming platform and implement a "cheating device" in custom HW that changes the number of lives in a game from outside the game application. We also explore the implementation of ML accelerators using HLS.
Expected student activities
Participation in the class sessions, delivery of weekly (practical) assignments, and realization of a final project.
Assessment methods
During the semester, continuous evaluation of a reduced number of weekly assignments. Delivering all the assignments on a timely manner is compulsory; they represent a 30% of the final grade. At the end of the semester, a final project executed in groups (submission of code) and an oral presentation.
Dans les plans d'études
- Semestre: Printemps
- Forme de l'examen: Pendant le semestre (session d'été)
- Matière examinée: Lab on hardware-software digital systems codesign
- TP: 3 Heure(s) hebdo x 14 semaines
- Semestre: Printemps
- Forme de l'examen: Pendant le semestre (session d'été)
- Matière examinée: Lab on hardware-software digital systems codesign
- TP: 3 Heure(s) hebdo x 14 semaines
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, autre