08.03.2014 Aufrufe

Technische Grundlagen der Informatik 8. Musterlösung – Automaten

Technische Grundlagen der Informatik 8. Musterlösung – Automaten

Technische Grundlagen der Informatik 8. Musterlösung – Automaten

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.

Prof. Dr.-Ing. Sorin A. Huss<br />

<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong><br />

<strong>8.</strong> Musterlösung – <strong>Automaten</strong><br />

Wintersemester 2010/11<br />

Aufgabe 1 Moore-Automat<br />

Eine Moore-Maschine hat zwei Eingänge x 0 und x 1 und einen Ausgang y. Geben Sie das Zustandsübergangsdiagramm<br />

gemäß <strong>der</strong> folgenden Spezifikation an.<br />

Der Ausgang ist konstant, wenn nicht eine <strong>der</strong> folgenden Sequenzen auftritt:<br />

1. Die Sequenz x 0 x 1 = 00, 11 bewirkt y = 0.<br />

2. Die Sequenz x 0 x 1 = 01, 11 bewirkt y = 1.<br />

3. Die Sequenz x 0 x 1 = 10, 11 bewirkt einen Wechsel des Ausgangswerts, y = y.<br />

Der Automat lässt sich bis auf folgendes Zustandsübergangsdiagramm vereinfachen:<br />

00,11<br />

S 0<br />

0<br />

RESET<br />

00<br />

11<br />

01,10<br />

S 1<br />

0<br />

01,10<br />

00,10<br />

S 3<br />

1<br />

00,10<br />

11<br />

S 2<br />

1<br />

01<br />

01,11<br />

Abbildung 1: Zustandsübergangsdiagramm des Moore-<strong>Automaten</strong><br />

(Die Angaben an den Pfeilen bezeichnen x 0 x 1 . Die untere Angabe in den Zuständen ist <strong>der</strong> Wert <strong>der</strong> Ausgabe y.)<br />

Aufgabe 2 Cheaten<br />

a) Sie haben das alte Konami-Spiel Gradius für das NES in Ihrem Schrank gefunden. Sie erinnern Sich daran, wie es<br />

möglich war, während des Pausierens des Spiels den bekannten Konami-Code einzugeben, <strong>der</strong> Ihnen viele Power-<br />

Ups beschert. Dies können Sie beliebig oft tun, falls Ihnen beispielsweise die Munition ausgeht. Zeichnen Sie den<br />

entsprechenden Moore-<strong>Automaten</strong> dazu, <strong>der</strong> alle Eingaben akzeptiert, die <strong>der</strong> NES-Controller bietet und durch<br />

das Abspielen eines Tons die korrekte Reihenfolge des Codes bestätigt (beispielsweise durch Setzen <strong>der</strong> Ausgabe<br />

auf Sound).<br />

Hinweis: Der Code lautet ↑ ↑ ↓ ↓ ← → ← → B A<br />

Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710 1


START<br />

z0<br />

z1 z2 z3 z4 z5 z6 z7 z8 z9 z10<br />

UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />

Sound<br />

b) Schade, Ihr NES funktioniert lei<strong>der</strong> nicht mehr. Dank eines großen glücklichen Zufall haben Sie Zugang zur alten<br />

verlassenen Spielhalle in Ihrer Stadt, in <strong>der</strong> auch ein Gradius-Spielautomat steht. Wie bei den TRON-<strong>Automaten</strong>,<br />

die nebendran stehen, verlangen Cheats noch das Dagegentreten gegen den <strong>Automaten</strong>, um zu funktionieren (o<strong>der</strong><br />

um in eine Cyberwelt eingezogen zu werden). Dabei kann <strong>der</strong> Tritt zu jedem Zeitpunkt <strong>der</strong> Code-Eingabe erfolgen.<br />

Zeichnen Sie den Moore-<strong>Automaten</strong>, <strong>der</strong> Ihnen die Power-Ups für Gradius in <strong>der</strong> verlassenen Spielhalle beschert.<br />

START<br />

z0<br />

UP<br />

UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />

z1 z2 z3 z4 z5 z6 z7 z8 z9 z10<br />

KICK KICK KICK KICK KICK KICK KICK KICK KICK KICK KICK<br />

z11 z12 z13 z14 z15 z16 z17 z18 z19 z20<br />

z21<br />

UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A<br />

Sound<br />

c) Ihr sehr alter Bekannter Simon stellt ihnen eine Quest. Er behauptet, <strong>der</strong> Automat lässt sich mit erheblich weniger<br />

als 22 Zuständen realisieren, indem einfach nur ein neuer Zustand zu dem <strong>Automaten</strong> aus a) hinzugefügt wird,<br />

<strong>der</strong> den Tritt darstellt. Hat er Recht o<strong>der</strong> denken Sie eher, dass da ein Fluch aus ihm spricht? Begründen Sie ihre<br />

Antwort.<br />

Nein, es ist keine Minimierung möglich. Wollte Simon nur einen zusätzlichen Zustand einführen, um das Treten<br />

zu implementieren, müsste er die vorher zuletzt gedrückte Taste speichern. Ansonsten könnte man beispielsweise<br />

vom ersten UP direkt zu A springen und die Tasten dazwischen einfach auslassen.<br />

Aufgabe 3 Vergleichen von Moore- und Mealy-<strong>Automaten</strong><br />

Vergleichen Sie Moore- und Mealy-<strong>Automaten</strong> bzgl. <strong>der</strong> nachfolgenden Kriterien.<br />

a) Welche Unterschiede besitzen die Ausgaben vor Moore- und Mealy-<strong>Automaten</strong>?<br />

Der Moore-Automat hat ein synchrones Ausgabeverhalten. Die Ausgabe des nächsten Taktzyklus wird kombinatorisch<br />

in dem aktuellen Taktzyklus berechnet und synchron zum Takt in das Ausgaberegister übernommen.<br />

Än<strong>der</strong>ungen am Eingang eines Moore-<strong>Automaten</strong> wirken sich auf den Ausgang somit frühstens zum nächsten<br />

Taktzyklus aus.<br />

Ein Mealy-Automat hat ein asynchrones Ausgabeverhalten. Die Ausgabe ist kombinatorisch anhand <strong>der</strong> Eingänge<br />

und des Zustands festgelegt. Somit wirken sich Än<strong>der</strong>ungen am Eingang eines Mealy-<strong>Automaten</strong> direkt auf den<br />

Ausgang aus.<br />

b) Warum ist es problematisch, wenn einer o<strong>der</strong> mehrere Mealy-<strong>Automaten</strong> rückgekoppelt werden?<br />

Werden Mealy-<strong>Automaten</strong> zurückgekoppelt, d. h. <strong>der</strong> Ausgang wirkt direkt auf den Eingang des <strong>Automaten</strong>, so<br />

kann es passieren, dass <strong>der</strong> Ausgang des Mealy-<strong>Automaten</strong> ein Schwingverhalten aufweist: Die asynchonen Ausgaben<br />

nehmen Aufgrund <strong>der</strong> reinen kombinatorischen Verschaltung evtl. keine stabilen Ausgabewerte an.<br />

c) Warum besitzt ein Mealy-Automat gegenüber einem Moore-Automat normalerweise weniger Zustände bei gleicher<br />

Ausgabesequenz?<br />

Gleiche Ausgaben in unterschiedlichen Zuständen können in einem Mealy <strong>Automaten</strong> evtl. zu einem Zustand<br />

zusammengefasst werden.<br />

2 Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710


d) Können Sie einen Fall angeben, bei dem <strong>der</strong> minimale Mealy-Automat mehr Zustände als <strong>der</strong> minimale Moore-<br />

Automat besitzt?<br />

Nein, dies gibt es nicht. Der Beweis bleibt dem Leser überlassen.<br />

Beweisidee als Hilfestellung:<br />

Betrachten Sie zuerst einen <strong>Automaten</strong> mit nur einem Zustand. Zeigen Sie, dass es keinen Mealy-Automat mit<br />

mehr Zuständen gibt.<br />

Betrachten Sie nun einen möglichen Moore-<strong>Automaten</strong> mit n Zuständen bei n verschiedenen Ausgaben. Erweitern<br />

Sie nun den Moore-Automat um einen weiter Zustand n + 1 und betrachten Sie dabei die auftretenden<br />

verschiedenen Fälle:<br />

1. Der neue Zustand erzeugt die Ausgabe n + 1.<br />

2. Der neue Zustand erzeugt die Ausgabe i und ist über eine Transition mit dem Zustand i verbunden.<br />

3. Der neue Zustand erzeugt die Ausgabe i und ist über keine Transition mit dem Zustand i verbunden.<br />

Folgern Sie nun das es keinen Mealy-Automat gibt, <strong>der</strong> mehr Zustände als <strong>der</strong> Moore-Automat besitzt.<br />

e) Wie kann man einen Moore-<strong>Automaten</strong> in einen Mealy-<strong>Automaten</strong> überführen?<br />

Um einen Moore-<strong>Automaten</strong> in einen Mealy-<strong>Automaten</strong> zu überführen, muss die Ausgabe des Zielzustandes an die<br />

Transition geschrieben werden. Dies soll am Beispiel aus Aufgabe Aufgabe 1 gezeigt werden.<br />

00,11<br />

00|0,11|0<br />

01,10<br />

S 1<br />

0<br />

00<br />

11<br />

01,10<br />

S 0<br />

0<br />

S 2<br />

1<br />

00,10<br />

11<br />

RESET<br />

01<br />

S 3<br />

1<br />

00,10<br />

01|0,10|0<br />

00|0<br />

01|0,10|0<br />

00|1,10|1<br />

S 1<br />

S 0 RESET<br />

11|1<br />

11|0<br />

01|1<br />

S 2<br />

S 3<br />

00|1,10|1<br />

01|1,11|1<br />

01,11<br />

Abbildung 2: Überführung eines Moore- in einem Mealy-<strong>Automaten</strong><br />

Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Felix Deichmann deichmann@iss.tu-darmstadt.de · (0 61 51) 16-6710 3

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!