Embedded systems are computers that are embedded as a fixed part of different kind of devices. Embedded systems are realized by combining (maybe multiple) microprocessor platforms, software, and application specific circuits. In difference to universal computers (like your PC), embedded systems are optimized for the single purpose they fulfill as part of the system in which they are integrated. This requires in-depth optimization of both hardware and software implementing the intended behavior. Focus are the synchronization aspects of multi-processor SoC design and heterogeneity of "cyber-physical" systems. The lecture introduces recent methods for specification, platforms for implementation, analysis, optimization, and verification of embedded HW/SW systems. The lecture begins with an overview of challenges for the design of embedded systems and the associated design methods. Then, means for the abstract, formal specification of the intended behavior are introduced (e.g. StateCharts, Kahn-Process Networks, Synchronous and Timed Data Flow). After that, different platforms and architecturs (Coprocessor, Accellerator, Multi-Processor-SoC/NoC) for implementation are described and compared. Then, methods for modeling, analysis and optimization of architectures are introduced (TLM, HW/SW Co-Design). In parallel to the lectures we offer a lab in which the open-source class library SystemC is used to specify distributed, concurrent systems, to analyze architectures at different levels of abstraction.
Lecture:
Organization, contents, overview, recommended books.
Embedded Systems: Definition, levels of abstraction, design space, properties, challenges, design methodology (overview).
Specification: Models of Computation, DE, KPN, SDF, TFD, StateCharts.
Platforms and Architectures: Platforms, Communication/Synchronization, coprocessor, accellerator, (multiprocessor-)SoC, NoC.
Architecture Exploration: Performance/power/cost Estimation, system simulation, mixed-level simulation, transaction level modeling, dicrete-event simulation, SystemC.
Discrete circuit discreption with SystemC and its continuous extension SystemC AMS.
Lab: In the lab SystemC and the related infrastructure (Eclipse, VCD viewer, AMS extensions) is used. All tools are open source.
Introduction: SystemC Installation, Basics
Lab 1: - Executable specification, simulation of KPN using SystemC.
- Modeling OS using SystemC: Channel/interface, semaphore, signal, FIFO.
- Modeling HW/SW interface
Lab 2: SystemC AMS mixed-signal extensions.