01.01.2015 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!