Digital System Integration and Programming

Course Number 705007 | Wintersemester 2020/21


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.


Slides Kickoff 7.10.
Topics for Seminar Presentations
Slides Tutorial 1 7.10.
Slides Tutorial 2 14.10.
Examples of Kernelmodules


Assignment 1

Student Presentations

Seminar Topics
Presentation Template
(Important Note: optional! You don’t have to use it)



Architecture of FPGAs
Embedded FPGAs

Administrative Information

Previous Knowledge

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)
  • Networks
  • Computer Organization

However, there are no formal prerequisites.

Prerequisites Curriculum

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 Method

The 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 grade

Grading consists of individual contributions throughout the course`s duration. In particular, these are one presentations, two exercises and active participation in discussions.


Lecture Dates

Date Begin End Location Event Type Comment
2020/10/28 10:00 12:00 HS i1 Abhaltung VU fix/
2020/11/04 10:00 12:00 HS i1 Abhaltung VU fix/
2020/11/11 10:00 12:00 HS i1 Abhaltung VU fix/
2020/11/18 10:00 12:00 HS i1 Abhaltung VU fix/
2020/11/25 10:00 12:00 HS i1 Abhaltung VU fix/
2020/12/02 10:00 12:00 HS i1 Abhaltung VU fix/
2020/12/09 10:00 12:00 HS i1 Abhaltung VU fix/
2020/12/16 10:00 12:00 HS i1 Abhaltung VU fix/


Stefan Mangard

Head of Institute

View more
Barbara Gigerl

PhD Student

View more
Stefan Steinegger

PhD Student

View more