Digital System Integration and Programming
Table of Content
The course is about the programming and design of integrated systems, with a strong focus on System-On-Chip (SoC) design. We will gather practical hands-on experience by programming our own FPGAs and designing secure multi-media systems.
We will investigate:
- What are SoCs and where are they used today?
- How can we design SW and HW for SoCs?
- How do SoCs communicate with their environment?
Additionally to these core questions, we will cover security and safety aspects of such systems.
This course addresses advanced-level students. If you want to participate, you should know about:
- Software design (in C, C++)
- the basics of Hardware design (in VHDL, Verilog)
- Operating Systems (Linux)
- Computer Organization
However, there are no formal prerequisites.
See position in the curriculum
The overall objective of the course is practical experience in the design of integrated systems.
After having attended this course, students have an understanding of current problems in designing complex integrated systems, including SoCs.
Participants have gained insight into these by studying typical microchip architectures and modeling these.
The course will deal with these topics in two projects and one seminar presentation:
- In Project 1, each student individually gets to know all the necessary tools to make a working FPGA design, write a bare metal application and a Linux driver for a basic project.
- In Project 2, a more complex system will be designed in groups of two. The system covers secure internal and external communication of the FPGA board.
- In the Seminar Presentation, each student individually selects a topic of their choice from a pool of subjects and presents it during the lecture.
Teaching MethodThe course material is defined through the course project`s problems. Each participant will specialize in a set of topics, and will present those topics to the whole group. With this knowledge, each group should be able to design, implement, and test the overall system.
How to get a gradeGrading consists of individual contributions throughout the course`s duration. In particular, these are one presentations, two exercises and active participation in discussions.