Hardware-Software-Co-Design
Dozenten:
Modulbeschreibung:
Hardware-Software-Co-Design (VU) und
Hardware-Software-Co-Design mit erweiterter Übung (VEU)
Umfang/Stunden:
V2 + Ü2 (zusammen 5 ECTS), mit erweiterter Übung (7,5 ECTS)
Ort und Zeit der Vorlesung:
Dienstag, 16:15 – 17:45 Uhr, Raum H4
Beginn der Vorlesungen: 16. April 2023
Anmeldung über StudOn
Ort und Zeit der Übungen:
Mittwoch, 16:15 – 17:45 Uhr, Englisch, Raum 01.150-128 (Muhammad Sabih)
Dienstag, 12:15 – 13:45 Uhr, Deutsch, Raum 02.133-128 (Tobias Hahn)
Beginn der Übungen: 23. April 2023
Anmeldung über StudOn
Ort und Zeit der erweiterten Übung:
Wird im Laufe der Vorlesung bekannt gegeben.
Unterlagen (Folien, Übungen, sonstige Dateien):
Alle Unterlagen zur Vorlesung und Übung finden sich in StudOn
Zielsetzung:
Zahlreiche Realisierungen eingebetteter Systeme (z.B. Mobiltelephone, Faxgeräte, Industriesteuerungen) zeichnen sich durch kooperierende Hardware- und Softwarekomponenten aus. Die Popularität solcher Realisierungsformen lässt sich begründen durch 1) die steigende Vielfalt und Komplexität heterogener Systeme, 2) die Notwendigkeit, Entwurfs- und Testkosten zu senken und 3) Fortschritte in Schlüsseltechnologien (Mikroelektronik, formale Entwurfsmethoden). Zum Beispiel bieten Halbleiterhersteller kostengünstige ASICs an, die einen Mikrocontroller und benutzerspezifische Peripherie und Datenpfade auf einem Chip integrieren.
Die Synthese solcher Systeme wirft jedoch eine Reihe neuartiger Entwurfsprobleme auf, insbesondere 1) die Frage der Auswahl von Hardware- und Softwarekomponenten, 2) die Partitionierung einer Spezifikation in Hard- und Software, 3) die automatische Synthese von Interface- und Kommunikationsstrukturen und 4) die Verifikation und Cosimulation. Diese Themen decken damit zusammen mit dem Stoff der einführenden Vorlesung Architektur und Entwurf eingebetteter Systeme (5. Semester) den Bereich eingebetteter Systeme ab.
Inhalt:
- Überblick und Vergleich von Architekturen und Komponenten in Hardware/Software-Systemen.
- Aufbau eines Compilers und Codeoptimierungsverfahren für Hardware und Software
- Hardware/Software-Partitionierung (Partitionierung komplexer Systeme, Schätzungsverfahren, Performanzanalyse, Codegenerierung)
- Interfacesynthese (Kommunikationsarten, Synchronisation, Synthese)
- Verifikation und Cosimulation
- Übungen, Demonstrationen mit rechnergestützten Entwurfswerkzeugen