Digital System Integration and Programming

Course Number 705007 | Wintersemester 2020/21

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.

Material

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

Assignments

Assignment 1
Assignment 2

Student Presentations

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

 

21.10.2020

Architecture of FPGAs
Embedded FPGAs

28.10.2020

SoC Design Process
NOC Designs

04.11.2020

Soft Cores and ARM/RISC-V Processors
FPGA Bitstream Encryption Basics

11.11.2020

FPGA Bitstream Encryption Vulnerabilities
Fault Attacks on FPGAs

18.11.2020

EM Side-Channel Attacks on SoCs

25.11.2020

Security Co-Processors
Edge AI: Binary Neural Networks in
Embedded Devices

02.12.2020

Yosys and SymbiYosys
Reverse Engineering: FPGA vs ASIC

09.12.2020

Design of Mixed-Signal SoCs
Booting Linux

16.12.2020

FPGAs and Neural Networks / ZynqNet

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

Objective

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.

 

Language

English

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.

Registration

https://online.tugraz.at/tug_online/sa.gruppen_einteilung?clvnr=242920&corg=983

Lecturers

Stefan Mangard
Stefan
Mangard

Head of Institute

View more
Barbara Gigerl
Barbara
Gigerl

PhD Student

View more
Stefan Steinegger
Stefan
Steinegger

PhD Student

View more