VU Technische Grundlagen der Informatik Übung 4: Schaltwerke 183.579, WS2011 Übungsgruppen: Mo., 21.11. – Fr., 25.11.2011 Aufgabe 1: Schaltwerke - Theoriefragen a) Wodurch unterscheiden sich Schaltnetze und Schaltwerke? Beschreiben Sie das Konzept des Schaltwerks anhand einer Skizze! b) Erläutern Sie die Unterschiede zwischen Moore- und Mealy-Schaltwerk! Aufgabe 2: Zustandsgraph - Wahr oder falsch? Es ist folgender Zustandsgraph für ein Schaltwerk mit den Eingängen X1 und X2 sowie dem Ausgang Y gegeben: Start 00 A0 0 01 10 B0 B0 0 11 Es gilt die folgende Notation: 00 01 10 11 01 10 11 Zustand Y 00 A1 B0 1 00 B1 B0 1 X1X2 11 01 Welche Aussagen treffen zu? Begründen Sie Ihre Antwort! (1) (2) (3) (4) Der Zustandsgraph ist nicht vollständig. 2 richtig 2 falsch Die Ausgabe erfolgt abhängig vom Zustandsübergang. 2 richtig 2 falsch Dem dargestellten Zustandsgraphen liegt ein Mealy-Schaltwerk zugrunde. 2 richtig 2 falsch In Zustand A1 erfolgt die Ausgabe ’01’. 2 richtig 2 falsch 2 richtig 2 falsch 2 richtig 2 falsch 2 richtig 2 falsch Wird in Zustand B1 an X1 ’1’ und an X2 ’0’ eingelesen, erfolgt ein Übergang in Zustand (5) B . 0 Liegt an beiden Eingängen für zwei Takte ’0’ an, befindet sich das Schaltwerk auf jeden (6) Fall in Zustand A . 0 Damit das Schaltwerk startet, muss an allen Eingängen ’0’ anliegen. (7) Aufgabe 3: Zustandsgraph - Mealy vs. Moore Es ist ein synchrones Schaltwerk zu entwerfen, das gleiche Bitfolgen der Länge ≥ 2 erkennt. Tritt eine derartige Bitfolge auf, wird vom Schaltwerk für die weitere Dauer dieser Folge ’1’ ausgegeben, anderenfalls ’0’. Beispiel: Eingang Ausgang (Mealy) Ausgang (Moore) = = = 101001110 000010110 000010110 a) Zeichnen Sie den Zustandsgraphen eines entsprechenden Mealy-Schaltwerks. b) Zeichnen Sie den Zustandsgraphen eines entsprechenden Moore-Schaltwerks. Aufgabe 4: Mealy-Schaltwerk Der folgende Zustandsgraph eines Schaltwerks ist gegeben: 00/1 Start 01/1 S 00,10,11/0 Es gilt die folgende Notation: 10/1 B0 11/1 B1 00,01,11/0 B2 00,01,10/0 01,10,11/0 E0E1/A Zustand a) Analysieren und erklären Sie die Funktion dieses Schaltwerks. b) Erstellen Sie für dieses Schaltwerk eine Tabelle der Zustandsübergänge. Benutzen Sie dafür die nachfolgend angegebene dichte Zustandscodierung: P 0 0 1 1 E0 E1 P Q 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 Q 0 1 0 1 0 1 0 1 S Zustand S B0 B1 B2 1 0 0 1 1 1 0 1 B0 0 0 1 0 0 1 1 0 1 0 1 0 B1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 B2 DP DQ A Aufgabe 5: Mealy-Moore-Transformation Transformieren Sie das Mealy-Schaltwerk aus Beispiel 4 in ein Moore-Schaltwerk. Verwenden Sie dabei die folgende Notation für die Zustände und Zustandsübergänge des Moore-Automaten: Zustand A E 0E 1 Aufgabe 6: Schaltwerke - Timing Es ist folgende Schaltung gegeben: Rot Takt D C A D C B =1 Gelb & Grün 1 Überlegen Sie sich die Funktionsweise der Schaltung, sodass Sie diese in der Übung erklären können und vervollständigen Sie das nachfolgende Timing-Diagramm. Gehen Sie dabei von positiver Flankentriggerung aus. Takt A B Rot Gelb Grün Takt A Aufgabe 7: Schaltwerke - Maximale Traktfrequenz B a) Was ist die maximale Taktfrequenz und was kann passieren, wenn sie nicht eingehalten wird? Rot b) Berechnen Sie die maximale Taktfrequenz für das Schaltwerk aus Aufgabe 6, wobei die folgenden Angaben gelten: Gelb Durchlaufzeit AND-Gatter: 10 ns Grün Durchlaufzeit XOR-Gatter: 15 ns Durchlaufzeit NOT-Gatter: 5 ns Durchlaufzeit D-Latch: 50 ns Vorbereitungzeit D-Latch: 5 ns Haltezeit D-Latch: 3 ns Maximale Taktfrequenz D-Latch: 30 MHz Aufgabe 8: Zustandsgraph eines Mealy-Schaltwerks Zeichnen Sie den Zustandsgraphen eines Mealy-Schaltwerks, das der nachfolgenden Beschreibung entspricht. Das Schaltwerk soll in Abhängigkeit von einem binären Eingang E bestimmte Folgen der Zahlen 2 bis 7 binär ausgeben: • Wenn der Eingang ’0’ ist, sollen der Reihe nach die ungeraden Zahlen in aufsteigender Reihenfolge (dh.: 3 → 5 → 7) ausgegeben werden. Wenn 7 erreicht ist, soll die Sequenz im nächsten Schritt wieder bei 3 beginnen. • Ist der Eingang ’1’, sollen die geraden Zahlen in absteigender Reihenfolge (das bedeutet, 6 → 4 → 2) ausgegeben werden. Sobald 2 erreicht ist, soll die Sequenz im nächsten Schritt wieder bei 6 beginnen. • Wenn sich der Eingang ändert, soll unmittelbar in die Sequenz gewechselt werden, die dem neuen Wert von E entspricht. Die neue Sequenz soll – bezogen auf die zuletzt ausgegebene Zahl – mit der nächstkleineren geraden oder nächstgrößeren ungeraden Zahl aufgenommen und dann folgerichtig fortgesetzt werden. E=0 E=1 E=1 E=1 E=0 E=0 E=0 Beispiel: 3 −−−→ 5 −−−→ 4 −−−→ 2 −−−→ 6 −−−→ 7 −−−→ 3 −−−→ 5 . . . • Vom Anfangszustand ausgehend soll entweder die Zahl 3 oder die Zahl 6 ausgegeben werden, abhängig vom Zustand des Eingangs E. Danach soll die Sequenz wie in den vorherigen Punkten beschrieben fortgesetzt werden. Aufgabe 9: Schaltwerke: Hysteresefunktion Konstruieren Sie ein Moore-Schaltwerk mit einer Ausgangsvariable z und den drei Eingangsvariablen e1 , e2 und e3 . Die Eingangsvariablen werden als dreistellige Binärzahl interpretiert, die einen Eingangswert n := 4 ∗ e1 + 2 ∗ e2 + e3 bildet. Das Schaltwerk soll, gesteuert durch den Eingangswert n, eine Hysterese-Schaltfunktion in der folgenden Weise realisieren: z 1 6 • Ist der Ausgang ’0’, soll er im nächsten Schritt auf ’1’ wechseln, falls n ≥ 5 erfüllt ist. Sonst soll der Ausgang unverändert bleiben. ? ? ? ? 6 6 6 0 0 1 2 3 4 5 6 7 - n • Ist der Ausgang ’1’, soll er im nächsten Schritt auf ’0’ wechseln, sofern die Bedingung n ≤ 3 erfüllt ist. Anderenfalls soll der Ausgang unverändert bleiben. a) Konstruieren Sie einen Moore-Automaten, der die oben beschriebene Aufgabe löst. b) Erstellen Sie die Tabelle der Zustandsübergänge (vgl. Lehrbuch Einführung in die Technische Informatik, S. 112). Verwenden Sie dabei eine dichte Zustandscodierung. Ermitteln Sie außerdem die vereinfachte Zustandsfunktion und die Ausgabefunktion. ¬e2 e2 ¬e2 z }| { ¬e1 e1 ¬e3 e3 ¬e1 | {z } | {z } Q ¬Q c) Entwerfen Sie eine geeignete Schaltung. Verwenden und ergänzen Sie dazu das nachfolgende PAL. e1 1 e2 1 e3 1 Q 1 & & & >1 & >1 Aufgabe 10: Schaltwerksentwicklung - Kaffeemaschine / Teil 1 Entwerfen Sie ein Moore-Schaltwerk für die getaktete Steuerung einer Kaffeemaschine, die folgendermaßen funktionieren soll: Zustandsübergänge erfolgen ausschließlich zum Takt. Nach dem Einschalten befindet sich die Kaffeemaschine solange im Zustand ”Standby”, bis eine Start-Taste gedrückt wird. Die Kaffeemaschine wechselt dann in den Zustand ”Heizen” und beginnt Wasser zu erhitzen. Danach wechselt die Maschine in den Zustand ”Zubereiten”. Wurde der Kaffee erfolgreich zubereitet, kehrt die Kaffeemaschine in den ”Standby”-Modus zurück. Die Kaffeemaschine verfügt über Sensoren zur Erkennung technischer Fehler. Tritt ein technischer Fehler auf, wechselt der Automat unverzüglich in den Zustand ”Fehler” und verharrt dort, bis der Fehler beseitigt ist. Das ist z.B. der Fall, wenn der Wassertank leer ist, ein Defekt im Heizsystem erkannt wird oder der Filter verstopft ist. Wurde der Fehler behoben, kehrt die Kaffeemaschine wieder in den Zustand ”Standby” zurück. Ein Betätigen der Start-Taste in den Zuständen ”Heizen”, ”Zubereiten” oder ”Fehler” hat keine Auswirkungen und wird ignoriert. Zwei Eingangssignale stehen zur Verfügung: Am Signal ”OK” liegt bei Vorliegen eines Fehlers logisch ’0’ an. Das Signal ”Start” liefert den Zustand der Start-Taste. Logisch ’1’ bedeutet, dass die Start-Taste gedrückt wurde. Ausgangsseitig werden 2 LEDs angesteuert: Solange kein Fehler auftritt, soll eine grüne LED aufleuchten. Tritt ein Fehler auf, eine rote. Verwenden Sie folgende Zustandscodierung: Zustand Standby Heizen Zubereiten Fehler Z1 Z0 00 01 10 11 a) Geben Sie den resultierenden Zustandsgraph unter Angabe Ihrer verwendeten Notation an. b) Befüllen Sie nachfolgende Wahrheitstabelle für die Zustandsübergänge. Hinweis: Sofern Sie Don’t Cares verwenden, werden möglicherweise nicht alle Zeilen benötigt! Zustand Z1 Z0 Eingänge OK Start Folgezustand Z’1 Z’0 Ausgänge (in Z’0 bzw. Z’1 ) rote LED grüne LED c) Vereinfachen Sie die Übergangsfunktion mit Hilfe der nachfolgenden KV-Diagramme. Wie lautet die minimierte Übergangsfunktion? Z00 : Z10 : ¬Z0 Z0 ¬Z0 z }| { ¬Z1 Z1 ¬Z0 ¬Z1 | {z } | {z } OK ¬OK ¬Start Z0 ¬Z0 z }| { ¬Z1 Z1 Start ¬Z1 | {z } | {z } OK ¬OK ¬Start Start