HaSoCo: Hardware/ Software CoDesign im Automotive-Umfeld
Motivation
FPGAs sind heute fest in der Industrie etabliert und es werden immer neue Anwendungsfelder erschlossen. Dennoch ist ein Trend festzustellen, dass die Schaltkreishersteller vermehrt in die Infrastruktur zur Modellierung und Simulation investieren, da die Bausteine aufgrund ihrer Komplexität nicht mehr ausgelastet werden können. Aus diesem Grund muss die Programmierung komplexer Bausteine zukünftig auf einer weitaus höheren Abstraktionsebene erfolgen, als es zurzeit durchgeführt wird. Damit geraten die Hersteller der dafür notwendigen Infrastruktur unter zunehmenden Druck, Betreibern möglichst kostengünstige und vor allem effektiv nutzbare Lösungen anbieten zu können. Technologisch betrachtet steckt das Konzept des so genannten modell-basierten Hardware-Software-Co-Designs (HW/SW-Co-Design) noch in den Kinderschuhen, es werden jedoch ständig Verbesserung eingeführt, die allerdings nicht für alle Anwendungsfälle optimiert sind.
Herausforderung
Die z. Zt. zur Verfügung stehenden Tools basieren entweder auf properitären Lösungen der Schaltkreishersteller (ALTERA C2H, XILINX System Simulator, etc.) oder auf allgemein gültigen Konzepten z. B. von Matlab/Simulink. Die Methode des Modell-basierten Designs erlaubt dabei die Entwicklung eines Systems auf einer hohen Abstraktionsebene sowie dessen automatisches Kompilieren in eine effiziente FPGA-Implementierung. Außerdem kann man mit Hardware-in-the-Loop (HIL) Fähigkeiten der System-Generatoren der Bausteinhersteller FPGA-Implementierungen direkt in Simulink co-simulieren. Die Verwendung von Matlab/Simulink zur FPGA-Programmierung stellt einen beachtenswerten Ansatz im Automotive-Umfeld dar. Konzepte und Umsetzungen befinden sich allerdings noch in der Anfangsphase der applikativen Umsetzung.
Forschungsaktivitäten
Modell-basiertes HW/SW-Co-Design für das spezifische Applikationsfeld „Automotive“.
Insbesondere den Einsatz von Matlab/Simulink für:
- ALTERA
- XILINX
- Formale Spezifikationen unter UML
- Neue Trends in nebenläufigen Programmiersprachen (C) zur Programmierung von FPGAs und Prozessoren.