08.03.2014 Aufrufe

Technische Grundlagen der Informatik 5. Musterlösung – Automaten ...

Technische Grundlagen der Informatik 5. Musterlösung – Automaten ...

Technische Grundlagen der Informatik 5. 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>5.</strong> Musterlösung – <strong>Automaten</strong> und PAL<br />

Wintersemester 2010/11<br />

Aufgabe 1 Moore- vs. Mealy-Automat<br />

Vergleichen Sie die beiden <strong>Automaten</strong>typen bezüglich ihres Ausgangsverhaltens.<br />

a) Moore:<br />

1. Ausgänge hängen nur vom aktuellen Zustand ab<br />

2. Ausgänge än<strong>der</strong>n sich immer synchron zum Takt<br />

3. Ausgänge werden an den Knoten notiert<br />

b) Mealy:<br />

1. Ausgänge hängen vom aktuellen Zustand und den Eingängen ab<br />

2. Ausgänge können sich innerhalb eines Taktes mehrmals än<strong>der</strong>n, wenn sich das Eingangssignal än<strong>der</strong>t<br />

3. meist mit weniger Zuständen implementierbar<br />

4. Ausgänge werden an den Kanten notiert<br />

Aufgabe 2 <strong>Automaten</strong>entwurf<br />

Entwerfen Sie einen <strong>Automaten</strong>, <strong>der</strong> eine Kaffeemaschine steuert. Folgende Spezifikation ist gegeben: Ein externes Steuergerät<br />

wird zur Abrechnung verwendet, die Kaffeemaschine wird erst aktiviert wenn von diesem Gerät das Start-Signal<br />

auf logisch 1 gesetzt wird. Danach wird <strong>der</strong> Boiler aktiviert (Ausgang B). Wenn das Wasser kocht (Eingang B_ready),<br />

wird die Pumpe aktiviert (Ausgang P) und ein Timer gestartet. Nach dem Ablauf eines Timers, signalisiert durch T_ready<br />

wird die Maschine wie<strong>der</strong> in den Startzustand zurückgesetzt.<br />

a) Geben Sie das Zustandsübergangsdiagramm an.<br />

Der Automat wurde als Moore-Automat implementiert. Es ist ebenfalls eine Mealy-Implementierung möglich.<br />

RESET<br />

00<br />

Start<br />

T_ready<br />

01<br />

B<br />

B_ready<br />

10<br />

P<br />

b) Geben Sie die Zustandsübergangstabelle an. Verwenden Sie eine binäre Zustandskodierung.<br />

Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Marc Stöttinger stoettinger@iss.tu-darmstadt.de · (0 61 51) 16-70470 1


Zustand Eingänge nächster Zustand<br />

S 1 S 0 Start B_ready T_ready S ′ 1<br />

S ′ 0<br />

0 0 0 X X 0 0<br />

0 0 1 X X 0 1<br />

0 1 X 0 X 0 1<br />

0 1 X 1 X 1 0<br />

1 0 X X 0 1 0<br />

1 0 X X 1 0 0<br />

c) Geben Sie die boole’schen Gleichungen für die Zustandsübergänge und die Ausgänge an.<br />

S ′ 0 = S 1S 0 Start + S 1 S 0 B_ready<br />

S ′ 1 = S 1S 0 B_ready + S 1 S 0 T_ready<br />

B = S 0<br />

P = S 1<br />

d) Realisieren Sie den Automat. Verwenden Sie dazu D-Flip-Flops und Gatter.<br />

Zur besseren Übersichtlichkeit sind die Rückkopplungen <strong>der</strong> Flip-Flop-Ausgänge nicht eingezeichnet. So ist z.B. S 0<br />

mit dem Ausgang Q des Flip-Flops S 0 verbunden.<br />

B_ready<br />

1<br />

S 0<br />

S 1<br />

&<br />

≥ 1<br />

D<br />

Q<br />

S 0<br />

S 0<br />

B<br />

S 0<br />

Q<br />

C LK<br />

Q<br />

Start<br />

S 0<br />

S 1<br />

&<br />

S 1<br />

B_ready<br />

S 0<br />

S 1<br />

&<br />

≥ 1<br />

C LK<br />

D<br />

S 1<br />

Q<br />

P<br />

S 1<br />

T_ready<br />

1<br />

S 0<br />

S 1<br />

&<br />

Aufgabe 3 Noch ein Automat<br />

Gegeben ist folgendes Zustandsübergangsdiagramm:<br />

A<br />

RESET<br />

00<br />

0<br />

B<br />

A<br />

01<br />

0<br />

B<br />

10<br />

1<br />

2 Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Marc Stöttinger stoettinger@iss.tu-darmstadt.de · (0 61 51) 16-70470


a) Beschreiben Sie die Funktion des <strong>Automaten</strong>.<br />

Der Ausgang wird für einen Takt auf 1 gesetzt, wenn <strong>der</strong> Automat die Sequenz A=1 und im nächsten Takt B=1<br />

gesehen hat.<br />

b) Geben Sie die Zustandsübergangstabelle und boole’sche Gleichungen für die Funktionen an.<br />

Zustand Eingänge nächster Zustand<br />

S 1 S 0 A B S ′ 1<br />

S ′ 0<br />

0 0 0 X 0 0<br />

0 0 1 X 0 1<br />

0 1 X 0 0 0<br />

0 1 X 1 1 0<br />

1 0 X X 0 0<br />

S ′ 1 = S 0B<br />

S ′ 0 = S 0S 1 A<br />

c) Geben Sie die Ausgangstabelle und die Ausgangsfunktion an.<br />

Zustand Ausgang<br />

S 1 S 0 F<br />

0 0 0<br />

0 1 0<br />

1 0 1<br />

F = S 1<br />

Aufgabe 4 Zustandskodierung<br />

Wie viele Flip-Flops sind mindestens nötig, um einen Automat mit 5 Zuständen zu realisieren?<br />

Es werden 3 Flip-Flops bei Binärkodierung benötigt. Bei Verwendung <strong>der</strong> One-Hot-Codierung sind es <strong>5.</strong><br />

Aufgabe 5 Funktionale Programmierung<br />

Realisieren Sie die folgenden Funktionen auf dem PAL (übernächste Seite). Achten Sie beim Minimieren darauf, kritische<br />

Übergänge zu vermeiden.<br />

Hinweis: Das Symbol ⊕ kennzeichnet die XOR-, das Symbol | die NAND-Funktion.<br />

a) F(A, B, C, D) = (A + B + C + D)(A + ¯B + C + D)(A + ¯B + C + ¯D)(Ā + ¯B + C + ¯D)<br />

(Ā + B + C + ¯D)(Ā + ¯B + ¯C + ¯D)(Ā + B + ¯C + D)<br />

AB<br />

C D<br />

00<br />

A<br />

00 01 11 10<br />

0 0 1 1<br />

C<br />

01<br />

11<br />

10<br />

1 0 0 0<br />

1 1 0 1<br />

1 1 1 0<br />

D<br />

B<br />

F(A, B, C, D) = ĀC + Ā¯BD + BC ¯D + A¯C ¯D + ¯BC D + AB ¯D<br />

Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Marc Stöttinger stoettinger@iss.tu-darmstadt.de · (0 61 51) 16-70470 3


) G(A, B, C, D) = A(B + ¯C D) + C D(A + B)(C + Ā)<br />

= AB + A¯C D + (AC D + BC D)(C + Ā)<br />

= AB + A¯C D + AC D + AĀC D + BC D + ĀBC D<br />

= AB + AD + BC D<br />

AB<br />

C D<br />

00<br />

A<br />

00 01 11 10<br />

0 0 1 0<br />

C<br />

01<br />

11<br />

10<br />

0 0 1 1<br />

0 1 1 1<br />

0 0 1 0<br />

D<br />

B<br />

G(A, B, C, D) = AB + AD + BC D<br />

c) H(A, B) = (A|A)|(B|B) = Ā|¯B<br />

= Ā¯B<br />

= A + B<br />

d) I(A, B) = (A ⊕ B) ⊕ A = (A¯B + ĀB) ⊕ A<br />

= (A¯B + ĀB)Ā + (A¯B + ĀB)A<br />

= ĀB + (Ā + B)(A + ¯B)A<br />

= ĀB + (Ā¯B + AB)A<br />

= ĀB + AB<br />

= B<br />

e) J(A, B, C, D) = ((A + B + ¯D)(A + C))⊕((B + ¯C)(A + B + ¯C))<br />

= (Ā¯BD + Ā¯C) ⊕ (¯BC + Ā¯BC)<br />

= (Ā¯BD + Ā¯C) ⊕ ¯BC<br />

= (Ā¯BD + Ā¯C)¯BC + (Ā¯BD + Ā¯C)¯BC<br />

= (Ā¯BD + Ā¯C)(B + ¯C) + (A + B + ¯D)(A + C)¯BC<br />

= Ā¯B ¯C D + ĀB ¯C + Ā¯C + (A + AC + AB + BC + A¯D + C ¯D)¯BC<br />

= Ā¯B ¯C D + ĀB ¯C + Ā¯C + A¯BC + A¯BC + A¯BC ¯D + ¯BC ¯D<br />

= Ā¯C + A¯BC + ¯BC ¯D<br />

AB<br />

C D<br />

00<br />

A<br />

00 01 11 10<br />

1 1 0 0<br />

C<br />

01<br />

11<br />

10<br />

1 1 0 0<br />

0 0 0 1<br />

1 0 0 1<br />

D<br />

B<br />

J(A, B, C, D) = Ā¯C + A¯BC + ¯BC ¯D + Ā¯B ¯D<br />

4 Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Marc Stöttinger stoettinger@iss.tu-darmstadt.de · (0 61 51) 16-70470


A B C D f 1 f 2 j 1<br />

1 1 1 1 1 1 1<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

&<br />

≥ 1 ≥ 1 ≥ 1 ≥ 1 ≥ 1 ≥ 1 ≥ 1 ≥ 1<br />

f 1 f 2<br />

F G H I j 1 J<br />

Abbildung 1: PAL zur Realisierung <strong>der</strong> Funktionen F bis J<br />

Alexan<strong>der</strong> Bie<strong>der</strong>mann bie<strong>der</strong>mann@iss.tu-darmstadt.de · Marc Stöttinger stoettinger@iss.tu-darmstadt.de · (0 61 51) 16-70470 5

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!