Lab on hardware-software digital systems codesign
EE-390(a) / 3 credits
Teacher(s): Atienza Alonso David, Peon Quiros Miguel
Language: English
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.
In the programs
- Semester: Spring
- Exam form: During the semester (summer session)
- Subject examined: Lab on hardware-software digital systems codesign
- Practical work: 3 Hour(s) per week x 14 weeks
- Semester: Spring
- Exam form: During the semester (summer session)
- Subject examined: Lab on hardware-software digital systems codesign
- Practical work: 3 Hour(s) per week x 14 weeks
Reference week
Mo | Tu | We | Th | Fr | |
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:
Lecture
Exercise, TP
Project, other