Embedded and Microelectronics

Embedded systems have tremendously influenced our everyday life over the last decade - ranging from wearables and smartphones over medical devices and the Internet of Things towards autonomous transportation.

The computation power as well as the available memory of microcontrollers has tremendously grown over the last years, allowing the implementation of complex algorithms like machine learning or computer vision also in embedded devices. As embedded systems interact with the environment, also the design and realisation of hardware solutions plays an important role in this major, which focusses on state of the art microcontrollers and FPGA's, embedded programming, realtime systems and hardware driven system design.

Module Overview

Identifier

Modul Name

Credits

Semester

 

common modules

   

M01

Technical Management

5 CP

1

M02

Team Project

5 CP

2

M03

Internship

30 CP

3

M04

Master Module

30 CP

4

 

compulsory modules

   

MM01

Advanced Programming Techniques

5 CP

1

MM02

VLSI Design and Testing

5 CP

1

MM03

Advanced Microcontroller Systems and Embedded Operating Systems

5 CP

1

MM04

FPGA-based System on Chip Design

5 CP

1

MM05

Embedded Architectures and Applications

5 CP

2

MM06

System-Driven Hardware Design

5 CP

2

MM07

Embedded Signal Processing Systems

5 CP

2

 

elective modules

   

MMwp01

CMOS Analog Circuits

5 CP

1 or 2

MMwp02

Safety in Embedded Control Systems

2,5 CP

1 or 2

MMwp03

Digital System Design

5 CP

1 or 2

MMwp04

Advanced Software Design Techniques

5 CP

1 or 2

MMwp05

Security in Connected Embedded Systems

2,5 CP

1 or 2

Module Description

Identifier

Modul Name

 

M01

Technical Management

Content of course “Project Management”

This course provides an introduction to professional project management.

It covers the areas

- introduction into industry process models, e.g. CMMi and SPICE,

- project structure, phases, roles and workflow,

- relevant methods for requirements engineering, concept development, realization and testing

- planning and estimation methods,

- risk management,

- project tracking metrics,

- team building and team management,

- change and configuration management,

- quality assurance and reviews,

- agile methods like SCRUM.

 

Content of course “Engineering Responsibility”

This course provides an introduction into legal aspects of engineering and discusses the aspect of engineering responsibility. It covers the areas

- legal and ethical aspects of engineering responsibility

- relevance of penal law, civil law and liability

- patent rights

- employment law

- special liability for safety and security systems

- relevant differences in German, European and international laws

 

M02

Team Project

Content of course “Team Project”

In this course, the students execute a practical project using the methods presented in the module “Technical Management”. It covers the areas:

- practical development of a technical system (project work)

- project management and work package agreement,

- requirements engineering, system design,

- implementation and testing,

- team building and team communication,

- and documentation and presentation of the results.

 

M03

Internship

Content of German Class:

- German Class 1: A1 level or higher

- German Class 2: higher than German Class 1 level, at least A2 level

 

Content of Preliminary Seminar:

- Preparative items (such as regulations and application matters) are presented.

 

Content of Internship:

The student has to solve an engineering task in the area of electrical engineering and information technology under the guidance of an industrial supervisor and an academic supervisor. This internship work can involve one of the following areas:

- Research and development work

- Project planning and design

- Manufacturing, preparation of work

- Assembly

- Test bed, quality control

 

 

M04

Master Module

Module Content

- Practically and/or theoretically oriented scientific work in the area of the chosen major

- Written thesis

- Colloquium

 

Identifier

Modul Name

MM01

Advanced Programming Techniques

Content of course “Advanced Programming Techniques”

Review of fundamental concepts of a widely used object oriented programming language. The course will cover

- introduction to the UML

- OOA and OOD techniques

- class design and class relations in C++,

- C++ operator overloading,

- advanced data structures, design patterns and algorithms

- systematic test techniques

Design aspects like modularity and software re-use will be discussed. Developing software designs using the UML and CASE tools as well as extensive hands-on programming assignments in C/C++ are an integral part of the course.

MM02

VLSI Design and Testing

Module Content

Content of course “VLSI Design and Testing - Lecture”

This course aims at the design perspective of CMOS circuits and the testing of integrated circuits. The course will cover

- combinational circuit design,

- memory circuit design,

- design methods (from full-custom to model-based design),

- design verification,

- IC fabrication,

- IC testing

 

Content of course “VLSI Design and Testing - Lab”

Practical design assignments on different hardware platforms are part of the course.

- Model-based design on SoC/MPSoC platforms

- Design verification using FIL

- Design for testability

MM03

Advanced Microcontroller Systems and Embedded Operating Systems

Content of the course Advanced Micro-Controller Systems

- Hardware Architecture of current Micro-Controller Systems

- RTOS implementation

- Tasks, Events, Messages, Semaphores

- Critical Sections, Priority Ceiling, Deadlocks

- Scheduling algorithms

- Safety and Memory-Protection

- Hardware Security Features

- Hardware Device-Driver development

- Efficient Implementation of DSP algorithms

 

Content of the course Advanced Micro-Controller Systems and Embedded Operating Systems (Lab)

- Design and implementation of deep embedded software on a 32-bit Micro-controller

- Configuration and application of embedded operating system services

MM04

FPGA-based System on Chip Design

FPGA-based System on Chip Design - Lecture

The aim of this course is to provide students with a solid understanding of designing complex FPGA System on Chip (SoC) architectures, starting with the creation of high-level functional specifications up to the design, implementation and testing on FPGA SoC platforms using hardware description and software programming languages. In particular, the course will cover

- an introduction to FPGA based System on Chip design – Applications, limitations and challenges.

- the anatomy of modern embedded System on Chip architectures: The hard processor system and FPGA fabric, booting and configuration, PCB issues and design strategies.

- RTL hardware design including simulation, and verification using SystemVerilog HDL.

- methodologies for successful timing closure, multi-clock domains and synchronization techniques.

- design strategies for architecting for performance, area and power.

- embedded processors in SoC FPGAs: Hard and soft-processor systems, on-chip bus systems

- the design and implementation of custom hardware accelerators: Integration of co-processors, ISA customization in soft-processor systems, design of customized HW/SW interfaces.

- the optimizing of design metrics using HW/SW co-design approaches.

- High-Level-Synthesis: Algorithm and interface synthesis, design evaluation and optimization.

 

FPGA-based System on Chip Design – Lab

The lab focuses on teaching practical skills related to FPGA based SoC design using C and SystemVerilog:

- Design and implementation of custom hardware accelerators (Co-Processors, ISA extensions).

- HW/SW integration of custom accelerators into existing FPGA based SoC architectures followed by profiling and benchmarking of the respective solutions.

MM05

Embedded Architectures and Applications

Content of course “Embedded Architectures and Applications - Lecture”

Participants will be exposed to and gain working experience with complex embedded systems and architecture development. The course will cover

- introduction to multitasking concepts and operating systems,

- structure and functionality of selected industrial embedded Operating Systems

- design of reactive systems, state machine design and coding,

- architectural development of embedded, realtime, multitasking systems

- analysis of embedded industrial architectures and design patterns (Basic Software, Application Software, Runtime Environment)

- automotive architectures, AUTOSAR

- embedded control system design

- multicore architectures

- safety architectures

 

Content of course “Embedded Architectures and Applications - Lab”

Practical programming assignments in C/C++ using state of the art operating systems are part of the course.

- Configuring an embedded Operating System

- Developing a simple multithreading, reactive application

- Separating basic software and application software introducing a runtime environment

MM06

System-Driven Hardware Design

Content of the course “System Driven Hardware Design – Lecture”

Participants will gain work experience in developing hardware and software of an electronic system. The course will cover:

- Partitioning of a system in hardware, software parts and necessary peripherals components

- interface design to peripheral components, to other systems and to humans

- designing of a PCB, taking signal integrity, hardware and software test possibilities and production rules into account

- software development for hardware test

- view on mechanical constraints

- production methods

 

Content of the course “System Driven Hardware Design – Lab”

Development of a system consisting of software and hardware parts:

- Developing a PCB

- Soldering a PCB

- test of hardware – software interaction

- hardware and software start-up

- debugging

MM07

Embedded Signal Processing Systems

Module Content

Embedded Signal Processing Systems - Lecture

The aim of this course is to provide students with a solid understanding of designing complex embedded signal processing systems using modern µC and FPGA architectures. Key subjects are the design, modelling and simulation of fixed-point DSP algorithms as well as their HW/SW implementation on state-of-the-art processing platforms. In particular, the course will cover

- an introduction to modern DSP systems – Emerging applications, architectures and challenges.

- the theory of discrete-time systems and fixed-point mathematics.

- the design and implementation of digital filters (FIR/IIR digital filter design and specification, re-timing: cut-set and delay scaling, the transpose FIR, pipelining and multichannel architectures).

- the synthesis of digital signals (NCO Design, DDFS, CORDIC algorithm, IIR oscillators).

- digital correlator architectures (Auto/cross-correlation techniques).

- the Discrete Fourier Transform, various FFT algorithms and architectures, as well as design issues related to FFT word-length growth and accuracy.

- HLS and Model based DSP design: Synthesis of custom DSP accelerators.

- Design and implementation of digital control systems: Mapping analog control loops to digital platforms.

 

Embedded Signal Processing Systems - Lab

The lab focuses on teaching practical skills related to the design and implementation of embedded signal processing systems using C and SystemVerilog:

- Analysis, modelling and simulation of various DSP algorithms.

- Mapping DSP algorithms (Filters, signal synthesisers) to µC and FPGA platforms followed by profiling and benchmarking of the respective HW/SW solutions.

Identifier

Modul Name

 

MMwp01

CMOS Analog Circuits

Module Content

This module provides an introduction to CMOS analog circuit design. It covers the areas

- CMOS-technology,

- MOS-transistors and passive components,

- Integrated circuit layout,

- CMOS device modelling (large signal and small signal), SPICE-simulation

- Analog subcircuits: Switches, sinks/sources, current mirrors, references

- CMOS amplifiers: single transistor amplifiers, differential amplifiers, cascode amplifiers

- Operational amplifiers, OpAmps: Compensation, two-stage-architectures, cascade OpAmps)

- Digital-analog and analog-digital converters (flash, sequential and oversampling converters)

 

MMwp02

Safety in Embedded Control Systems

Content of course “Safety in Embedded Control Systems”

Participants will be exposed to and gain working experience with safety standards and safety architectures for embedded control systems. The course will cover

- introduction to safety standards like IEC61508 and ISO26262,

- analysis of safety cases,

- fundamental concepts for functional safety,

- development of fail safe and fail operational architectures

- concepts for avoiding systematic software errors (coding standards like MISRA, reviews, test strategies),

- concepts for dealing with sporadic errors,

- design patterns for freedom from interference,

- analysis of the features of modern safety controllers.

 

 

MMwp03

Digital System Design

Module Content

Content of course “Digital System Design - Lecture”

This course aims at the design of digital systems using SoC platforms. The course will cover

- pipelining and parallel processing,

- arithmetic circuits,

- power dissipation in CMOS,

- synchronous vs. asynchronous design,

- design automation,

- hardware description language VHDL

 

Content of course “Digital System Design - Lab”

Practical design assignments on different hardware platforms are part of the course.

- image processing on SoC/MPSoC platforms

- hardware/software-codesign for FPGA-based systems

- design automation using state-of-the–art design tools

 

MMwp04

Advanced Software Design Techniques

Content of course “Advanced Software Design Techniques”

Review of fundamental concepts of a widely used object oriented programming language. The course will cover

- advanced data and class structures

- differences and interoperability of C and C++

- polymorphism,

- generic programming,

- introduction to the STL, string and stream library of C++,

- coding standards (MISRA),

- software metrics,

- design patterns,

- refactoring techniques,

- extensions of the C++ standard.

Design aspects like modularity, performance and software re-use will be discussed. Developing software designs using the UML and CASE tools as well as extensive hands-on programming assignments in C/C++ are an integral part of the course.

 

MMwp05

Security in Connected Embedded Systems

Content of course “Security in Connected Embedded Systems”

Participants will be exposed to and gain working experience with security requirements and solutions for connected embedded systems. The course will cover

- introduction to encryption

- case study “security breaches in connected embedded systems”,

- analysis of embedded hardware encryption modules,

- elementary security concepts (secure boot concepts, authentification, encryption, key management)

- analysis of existing security protocols,

- design of a secure embedded architecture.

 

MAwp01

Model-based Real-time Simulation of Mechatronic Systems

Module Content

Model-based Real-time Simulation of Mechatronic Systems – lecture

This course provides the concepts of model-based real-time simulation and system design.

The course covers the areas:

- Modelling and classification of mechatronic systems

- Application areas, requirements

- Real-time simulation and rapid prototyping methods

- Hardware-in-the-loop, software-in-the-loop and processor-in-the-loop

- Experimental validation and testing methods

- Summary, Conclusion and future prospects

 

Model-based Real-time Simulation of Mechatronic Systems – lab

This lab provides projects to design model-based real-time simulation and system design.

The lab covers the areas:

- Introduction MATLAB/SIMULINK

- Software and function development process

- Real-time simulation and rapid prototyping applications

- Automatic code generation

- Experimental validation and testing methods

 

MAwp02

High Level Language Frameworks

Module Content

Participants will be introduced to the development of graphical applications using Android and JAVA.

The course will cover

- JAVA language basics

- Threads and synchronization

- Framework tools, f.ex. from Android

- Graphical user interfaces

Practical programming assignments in JAVA and Android will be part of the course.

 

MAwp03

Human Machine Interfaces (HMI)

Module Content

• Human senses

• Human perception

• Interaction channels between humans and machines

• General design aspects

• Modeling of user interaction (UML-based architecture design)

• Usability / user experience

• Machine interfaces (widgets, IO, WIMP and post-WIMP interfaces)

• Testing (software, user and field tests)

 

MAwp05

Advanced Graphical Programming of Control Systems

Module Content

• Modeling of user interaction

• LabVIEW Queued Message Handler

• One-to-many communication.

• Managing Software Engineering in Graphical Languages

• Advanced Architectures for Graphical Languages in LabVIEW

• Object-Oriented Design and Graphical Programming

• Performance of Graphical Languages

 

MAwp06

Advanced Sensors for Internet of Things

Module Content

• The principles of sensor systems

• Sensor limits and restrictions

• Sensor validation

• Sensor types and placement

• Data analysis and filtering

• Sensor algorithms

• Condition monitoring

• Localization and navigation systems

• Deep Learning and Machine Learning

• Blockchain and smart contracting

 

MCwp02

Wireless Systems (Technologies)

Module Content

Content of course „Wireless Systems (Technologies) – Lecture“:

- Basic principles: use cases, frequencies, propagation channels for wireless systems, modulation and coding principles, standardization bodies

- Communication systems: short range devices, wireless local area and wide range network technologies

- Broadcast systems: e.g. DVB and DAB, multi frequency and single frequency networks

- Radar technologies for automotive and industrial applications