Co-design eingebetteter Hardware-/Software-Systeme
Die stetig steigende Komplexität eingebetteter Systeme aus Hardware- und Softwarekomponenten erfordert umfassende Methoden, die den Designprozess auf mehreren Abstraktionsebenen unterstützen. Eine äußerst interessante Entwicklung ist der Einsatz bekannter und bewährter objektorientierter Modellierungs- und Synthesetechniken, die bei der Softwareentwicklung weit verbreitet sind. Es gibt jedoch grundlegende Unterschiede zwischen den Eigenschaften von Software und Hardware, die eine direkte Anpassung verbreiteter objektorientierter Programmiersprachen verhindern. SystemC ist eine C++-Klassenbibliothek und -Methode, die in C/C++ fehlende typische Hardwarefunktionen nachrüstet. Im Rahmen des ODETTE-Projekts wurde der Übergang von der objektiven VHSIC Hardware Description Language (VHDL) auf SystemC erreicht. Diese Änderung wurde hauptsächlich von den Industriepartnern des Projekts angeregt, für die dies die optimale Lösung darstellte. Weiterhin wurden in den Labors von Synopsys in Frankreich dedizierte Tools für die Co-Simulation der Funktionen sowie des vorübergehenden Verhaltens von Hardware und Software entwickelt, die ausführbare Spezifikationen für das gesamte System liefern. Als Teil des SystemC-Pakets CoCentric® System Studio mit Tools für Design und Überprüfung ermöglicht es Benutzern von SystemC die Nutzung von in VHDL entwickeltem geistigen Eigentum. Zudem ermöglicht die Co-Simulationsumgebung die Simulation des gesamten Hardware-/Softwaresystems. Dabei werden die Softwarekomponenten des Modells in C/C++ und die Hardwarekomponenten in SystemC geschrieben. Die Modellierung des gesamten Hardware-/Softwaresystems in verschiedenen Sprachen wird durch die Kooperation zwischen SystemC-Modellierungsumgebung und HDL-Simulatoren möglich. Das Modell für das dynamische Verhalten von Hardware-/Softwaresystemen im Zusammenspiel mit dem Umgebungsmodell kann den für eine detaillierte Analyse komplexer Designs erforderlichen Einblick liefern. Für eine Verfeinerung werden Software-/Hardware-Partitionierung sowie Simulations- und Prüfungsaufgaben bei der Entwicklung auf höchster Abstraktionsebene bis zur Registerübergabe in einer einzelnen Umgebung unterstützt.