Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de
Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de
Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Vom UML-Mo<strong>de</strong>ll einer Zustandsmaschine zu <strong>de</strong>ren<br />
VHDL- und SystemC-Architektur<br />
Kombination aus Entity und Architecture in VHDL<br />
entspricht [7]). Dieser beinhaltet alle relevanten Ein-<br />
/Ausgangssignale, sowie ein Zustandsspeicherregister,<br />
welches ebenfalls über einen Aufzählungstyp<br />
realisiert wird. Die Umsetzung <strong>de</strong>s getakteten und<br />
kombinatorischen Prozesses ist i<strong>de</strong>ntisch zu <strong>de</strong>r in<br />
VHDL. Bei <strong>de</strong>r Umsetzung von hierarchischen<br />
Zustandsmaschinen müssen die Konstruktoren <strong>de</strong>r<br />
Unterzustandsmaschinen-Module (SystemC spezifisch)<br />
über <strong>de</strong>n Konstruktor <strong>de</strong>r Hauptzustandsmaschine<br />
aufgerufen und in diesem die Ein-/Ausgangs-,<br />
sowie die Steuersignalzuweisung von <strong>de</strong>r<br />
Haupt- zu <strong>de</strong>n Unterzustandsmaschinen vorgenommen<br />
wer<strong>de</strong>n.<br />
Listing 1: Grundkonzept einer Zustandsmaschine in VHDL<br />
3. Automatischer Entwurf von Zustandsmaschinen<br />
mit UML<br />
<strong>Der</strong> Generator-Workflow <strong>de</strong>s automatischen Entwurfs<br />
von Zustandsmaschinen mit UML besteht aus <strong>de</strong>n<br />
folgen<strong>de</strong>n drei Hauptbestandteilen<br />
• Met<strong>am</strong>o<strong>de</strong>ll <strong>de</strong>r Zustandsmaschine<br />
• Mo<strong>de</strong>ll-zu-Mo<strong>de</strong>ll-Transformation <strong>de</strong>s UML-Eingangsmo<strong>de</strong>ll<br />
in ein Zwischenmo<strong>de</strong>ll für die<br />
nachgeschaltete Quellco<strong>de</strong>erzeugung<br />
• Template-basierte Quellco<strong>de</strong>- und Testbench-<br />
Erzeugung<br />
3.1. Das Met<strong>am</strong>o<strong>de</strong>ll <strong>de</strong>r Zustandsmaschine<br />
Die Grundlage <strong>de</strong>s mehrstufigen Generierungsprozesses<br />
stellt ein Met<strong>am</strong>o<strong>de</strong>ll (Mo<strong>de</strong>ll <strong>de</strong>s Mo<strong>de</strong>lls)<br />
<strong>de</strong>r Zustandsmaschine dar. Dessen Aufgabe ist die<br />
Spezifikation <strong>de</strong>r Struktur einer Zustandsmaschine<br />
und aller weiteren für <strong>de</strong>n Generatorprozess<br />
relevanten Eigenschaften <strong>de</strong>s UML-Eingangsmo<strong>de</strong>lls.<br />
Mithilfe dieses Met<strong>am</strong>o<strong>de</strong>lls kann die Vollständigkeit<br />
<strong>de</strong>s UML-Eingangsmo<strong>de</strong>lls, im Hinblick auf <strong>de</strong>n<br />
Generierungsprozess, verifiziert und gegebenenfalls<br />
vorhan<strong>de</strong>ne Mängel <strong>de</strong>m Benutzer mittels Warnungen<br />
o<strong>de</strong>r Fehlermeldungen angezeigt wer<strong>de</strong>n. Das<br />
Met<strong>am</strong>o<strong>de</strong>ll <strong>de</strong>r Zustandsmaschine ist ebenfalls in<br />
UML umgesetzt wor<strong>de</strong>n und besteht aus einem<br />
Struktur-/Klassendiagr<strong>am</strong>men, welches in Bild 1<br />
dargestellt ist. Die wichtigsten semantischen/<br />
funktionalen Aspekte <strong>de</strong>s Met<strong>am</strong>o<strong>de</strong>lls <strong>de</strong>r<br />
Zustandsmaschine sollen im Folgen<strong>de</strong>n kurz<br />
vorgestellt wer<strong>de</strong>n. Ausgangspunkt ist die<br />
Betrachtung, welche spezifischen Eigenschaften<br />
<strong>eines</strong> Zustan<strong>de</strong>s berücksichtigt wer<strong>de</strong>n müssen. Dies<br />
sind <strong>de</strong>r eigentliche Zustand selbst, ein Start- und ein<br />
Stopzustand sowie Transitionen und Ereignisse.<br />
Diese Anfor<strong>de</strong>rungen wer<strong>de</strong>n entsprechend im<br />
Met<strong>am</strong>o<strong>de</strong>ll berücksichtigt. Die Hauptklasse<br />
StateMachine muss hierzu min<strong>de</strong>stens einen State<br />
beinhalten (existenzielle Abhängigkeit), wobei es sich<br />
bei States um eine abstrakte Klasse han<strong>de</strong>lt, welche<br />
ihre Eigenschaften an die spezialisierten Klassen<br />
SimpleState, StartState und StopState vererbt.<br />
Außer<strong>de</strong>m besitzt StateMachine Abhängigkeiten<br />
(Aggregationen) zu <strong>de</strong>n Klassen Action und Signal.<br />
Je<strong>de</strong>r State kann Transitionen besitzen, jedoch nur<br />
SimpleState darf Aktionen auslösen, da die<br />
Pseudozustän<strong>de</strong> (Start-/Stoppzustän<strong>de</strong>) in UML<br />
lediglich zur Ablaufsteuerung verwen<strong>de</strong>t wer<strong>de</strong>n. Die<br />
Aktionen, die aus einem normalen Zustand<br />
(SimpleState) aus möglich sind, wer<strong>de</strong>n unterschie<strong>de</strong>n<br />
in doActions und entry-/exitActions. Die<br />
ersteren sind während <strong>de</strong>r ges<strong>am</strong>ten Ausführungsdauer<br />
<strong>de</strong>s Zustands aktiv, während die letzteren<br />
lediglich beim Betreten o<strong>de</strong>r vor <strong>de</strong>m Verlassen <strong>de</strong>s<br />
Zustands ausgeführt wer<strong>de</strong>n. Je<strong>de</strong>r normale Zustand<br />
kann außer<strong>de</strong>m wie<strong>de</strong>r beliebig viele Unterzustandsmaschinen<br />
(subStateMachine) beinhalten. Je<strong>de</strong><br />
Transition kann genau ein Event besitzen, auf das sie<br />
sensitiv ist. Ein Event ist genau<br />
MPC-Workshop, Juli 2009<br />
73