Technische Grundlagen der Informatik 5. Musterlösung â Automaten ...
Technische Grundlagen der Informatik 5. Musterlösung â Automaten ...
Technische Grundlagen der Informatik 5. Musterlösung â Automaten ...
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