Technische Grundlagen der Informatik
Technische Grundlagen der Informatik
Technische Grundlagen der Informatik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
7.0 Endliche Zustandsautomaten und Steuerwerke<br />
Die Ziele dieses Kapitels sind:<br />
☺ Aufbau und Funktionsweise von Schaltwerken zu verstehen<br />
☺ Verschiedene Realisierungsmöglichkeiten von Schaltwerken mittels<br />
Zustandsautomaten kennen zu lernen<br />
- Mealy- Automat<br />
- Moore-Automat<br />
- Medwedjew-Automat<br />
☺ Beschreibungen von Zustandsautomaten kennen zu lernen<br />
- Graphische Methoden<br />
- Tabellendarstellung ( Automatentabelle )<br />
- Darstellung mittels Schaltfunktionen<br />
☺ Synthese von Zustandsautomaten<br />
☺ Analyse von Zustandsautomaten<br />
☺ Untersuchung des Zeitverhaltens von synchronen Zustandsautomaten<br />
☺ Lernen Zustandsautomaten als Steuerwerk ein zu setzen<br />
Seite 7 - 0<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
7.1 Schaltwerke<br />
Im Gegensatz zu Schaltnetzen, hängen die Ausgänge von Schaltwerken<br />
nicht nur von den Eingangswerten ab, son<strong>der</strong>n auch noch von dem<br />
jeweiligen, aktuellen, inneren Zustand. Daher bestehen Schaltwerke aus<br />
Schaltnetzen, um den Folgezustand und die Ausgangswerte zu berechnen,<br />
und aus Schaltglie<strong>der</strong>n, um den inneren Zustand speichern zu können.<br />
Auch unterscheidet man noch zwischen synchronen und asynchronen<br />
Schaltwerken. Bei synchronen Schaltwerken wird, im Gegensatz zu<br />
asynchronen Schaltwerken, die Weiterschaltung des inneren Zustandes<br />
von einem äußeren Takt vorgegeben. Der zeitliche Ablauf in synchronen<br />
Schaltwerken ist daher leicht nachvollziehbar. Die folgende Abbildung<br />
zeigt den prinzipiellen Aufbau eines Schaltwerkes in <strong>der</strong> Huffmann-<br />
Normalform.<br />
Ein Schaltwerk besteht also aus Speicherglie<strong>der</strong>n um den aktuellen<br />
Zustand zu speichern, und aus einem Schaltnetz, das abhängig vom<br />
aktuellen Zustand, und den Eingangswerten, die Ausgangswerte und den<br />
Folgezustand berechnet. Das Schaltnetz kann in zwei Schaltnetze<br />
aufgeteilt werden. Ein Schaltnetz berechnet die Ausgangswerte und das<br />
an<strong>der</strong>e Schaltnetz berechnet den Folgezustand. Dies ist in nachfolgen<strong>der</strong><br />
Abbildung als Blockschaltbild dargestellt.<br />
Seite 7 - 1<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Die unterschiedlich auftretenden Schaltwerkstypen unterscheiden sich in<br />
ihrer Ausgangsfunktion, also <strong>der</strong> Art und Weise wie die Ausgänge<br />
berechnet werden. Schaltwerke werden mit sogenannten Zustandsautomaten<br />
realisiert, auf die im folgenden näher eingegangen wird.<br />
7.2 Zustandsautomaten<br />
Unter einem Automaten versteht man im Allgemeinen eine<br />
Modellmaschine, die ein System beschreibt. Ein Automat reagiert auf eine<br />
Eingabe und produziert eine Ausgabe, die von <strong>der</strong> Eingabe und vom<br />
momentanen Zustand des Systems abhängt.<br />
Ein Automat wird endlicher Automat genannt, wenn die Menge <strong>der</strong><br />
möglichen Eingabezeichen ( das Eingabealphabet ), die Menge <strong>der</strong><br />
möglichen Ausgabezeichen ( das Ausgabealphabet) und die Zustandsmenge<br />
endlich ist. Formal kann ein endlicher Automat M beschrieben<br />
werden durch:<br />
Seite 7 - 2<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Allen synchronen Zustandsautomaten ist gemeinsam, dass die<br />
Zustandsweiterschaltung durch die ansteigende o<strong>der</strong> abfallende Flanke<br />
eines äußeren Taktsignals erfolgt. Die unterschiedlichen Automatentypen<br />
unterscheiden sich durch die unterschiedlichen Ausführungen <strong>der</strong><br />
Ausgangsfunktion. Diese werden im nachfolgenden näher vorgestellt.<br />
Mealy-Automat<br />
Der Mealy-Automat stellt den universellsten Automatentyp dar. Er wird<br />
durch folgende Schaltfunktionen bestimmt:<br />
Damit ergibt sich für das Blockschaltbild des Mealy-Automaten:<br />
Die Ausgangsfunktion hängt beim Mealy-Automaten nicht nur vom<br />
aktuellen Zustand, son<strong>der</strong>n auch von den jeweiligen Eingangswerten ab.<br />
Die Ausgänge des Mealy-Automaten reagieren also, sofort, nach <strong>der</strong><br />
Verzögerung im Ausgangsschaltnetz, auf Än<strong>der</strong>ungen <strong>der</strong> Eingangssignale.<br />
Seite 7 - 3<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Moore-Automat<br />
Der Moore-Automat wird durch folgende Schaltfunktionen bestimmt:<br />
Damit ergibt sich für das Blockschaltbild des Moore-Automaten:<br />
Die Ausgangsfunktion hängt beim Moore-Automaten nicht direkt von den<br />
Eingangssignalen, son<strong>der</strong>n nur vom aktuellen Zustand ab. Eine<br />
Beeinflussung <strong>der</strong> Ausgangswerte durch die Eingangssignale erfolgt nur<br />
indirekt über den Folgezustand. Daher reagiert ein Moore-Automat mit<br />
seinen Ausgabewerten erst in <strong>der</strong> folgenden Taktperiode auf Än<strong>der</strong>ungen<br />
<strong>der</strong> Eingangswerte. Vom Gesichtspunkt <strong>der</strong> logischen Funktionalität sind<br />
beide Automatentypen gleichwertig, und können ineinan<strong>der</strong> umgewandelt<br />
werden. Der Mealy-Automat kommt in <strong>der</strong> Regel mit weniger Zuständen<br />
aus, und besitzt ein einfacheres Übergangschaltnetz als <strong>der</strong> Moore-<br />
Automat. Dafür ist das Ausgangsschaltnetz des Moore-Automaten<br />
einfacher und seine Ausgabewerte werden quasi-synchron, nach <strong>der</strong><br />
Verzögerung im Ausgangschaltnetz, nur direkt abhängig vom aktuellen<br />
Zustand, ausgegeben. Um beim Mealy-Automaten synchrone Ausgangswerte<br />
zu erhalten, müssen diese am Ausgang über ein synchron<br />
geschaltetes Register ausgegeben werden.<br />
Seite 7 - 4<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Medwedjew-Automat<br />
Der Medwedjew-Automat wird durch folgende Schaltfunktionen<br />
bestimmt:<br />
Damit ergibt sich für das Blockschaltbild des Medwedjew-Automaten:<br />
Die Ausgangsfunktion ist identisch mit dem Zustand, d. h. das<br />
Ausgangschaltnetz fehlt, und die Ausgangssignale ergeben sich direkt aus<br />
<strong>der</strong> Codierung des Zustandes.<br />
Seite 7 - 5<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Beschreibung von Zustandsautomaten<br />
Es gibt verschiedene Möglichkeiten Zustandsautomaten zu beschreiben.<br />
Nachfolgend sind einige aufgeführt auf die mehr o<strong>der</strong> weniger ausführlich<br />
eingegangen wird.<br />
1.) Graphische Darstellungen<br />
- Zustandsübergangsgraphen<br />
- ASM (Algorithmic State Machine ) –Graphen<br />
- Petri-Netze<br />
- Schaltpläne<br />
2.) Tabellendarstellungen<br />
- Zustandsübergangstabelle, Ausgangswertetabelle (Automatentabelle),<br />
Implementierungstabelle<br />
- KV-Diagramme<br />
3.) Schaltfunktionen<br />
Zustandsübergangsgraph<br />
Ein Zustandsübergangsgraph, o<strong>der</strong> einfacher Zustandsgraph, beschreibt<br />
das Verhalten eines Zustandsautomaten in graphischer Darstellung. Er<br />
besteht aus Knoten und Kanten. Die Knoten werden als Kreise gezeichnet<br />
und stellen die inneren Zustände des Zustandsautomaten dar. Die Kanten<br />
werden als richtungsweisende Linien zwischen den Knoten gezeichnet,<br />
und sie stellen die Übergänge zwischen den Zuständen dar.<br />
Grundform eines Zustandsgraphen<br />
Die Eingangswerte, die zu Zustandsän<strong>der</strong>ungen führen werden an die<br />
Kanten geschrieben. Die Ausgangswerte werden bei Mealy-Automaten<br />
ebenfalls an die Kanten geschrieben. Bei Moore-Automaten werden die<br />
Ausgangswerte entwe<strong>der</strong> zu den Zuständen in die Knoten o<strong>der</strong> an die<br />
Knoten geschrieben. Bei Medwedjew-Automaten entsprechen die<br />
Ausgangswerte <strong>der</strong> jeweiligen Zustandskodierung.<br />
Seite 7 - 6<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
In nachfolgen<strong>der</strong> Abbildung ist <strong>der</strong> Zustandsgraph eines Moore-<br />
Automaten a) und eines äquivalenten Mealy-Automaten b) dargestellt.<br />
Der Takt wird in Zustandsgraphen nicht dargestellt. Von einem in den<br />
nächsten Zustand weitergeschaltet wird jedoch nur, wenn die Zustandsübergangsbedingungen<br />
erfüllt sind, und wenn eine Taktweiterschaltung<br />
durch eine ansteigende bzw. abfallende Taktflanke erfolgt. Sind die<br />
Zustandsübergangsbedingungen nicht erfüllt, dann verweilt <strong>der</strong> Automat<br />
solange im jeweiligen Zustand bis sie erfüllt sind.<br />
Automatentabelle<br />
Aus dem Zustandsgraphen kann man die Automatentabelle erzeugen und<br />
umgekehrt. Eine Automatentabelle enthält zwei Einzeltabellen:<br />
1.) Die Zustandsübergangstabelle, die den Folgezustand abhängig vom<br />
momentanen Zustand und den Eingangswerten angibt.<br />
2.) Die Ausgangswertetabelle, in <strong>der</strong> die Ausgangswerte abhängig vom<br />
Zustand, beim Mealy-Automaten zusätzlich abhängig von den<br />
Eingangswerten, aufgeführt sind.<br />
In nachfolgen<strong>der</strong> Abbildung sind die Automatentabellen <strong>der</strong><br />
Zustandsautomaten dargestellt, <strong>der</strong>en Zustandsgraphen zuvor diskutiert<br />
wurden. Bei a) steht die Automatentabelle des Moore-Automaten. Bei b)<br />
steht die Automatentabelle des Mealy-Automaten. Mit n ist <strong>der</strong> aktuelle<br />
Schaltzustand bezeichnet. Mit n+1 ist <strong>der</strong> Schaltzustand des<br />
Folgezustandes bezeichnet.<br />
Seite 7 - 7<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Die Zustandsübergangstabelle dient als Ausgangspunkt zur Herleitung <strong>der</strong><br />
Schaltfunktion des Folgezustandes, woraus das entsprechende Schaltnetz<br />
hergeleitet wird. Mit Hilfe <strong>der</strong> Ausgangswertetabelle wird die<br />
Schaltfunktion des Ausgangsschaltnetzes hergeleitet.<br />
Synthese von Zustandsautomaten<br />
Die Synthese von Zustandsautomaten bedeutet, dass aus einer<br />
funktionellen, verbalen Beschreibung ein Schaltwerk zu entwerfen ist.<br />
Dabei empfiehlt es sich systematisch vorzugehen, wie z.B. nachfolgend<br />
aufgeführt:<br />
1.) Es ist die Zustandsmenge zu ermitteln und eine Festlegung des<br />
Anfangszustandes vor zu nehmen.<br />
2.) Die Eingangs- und Ausgangsgrößen sind fest zu legen.<br />
3.) Der Zustandsgraph ist zu zeichnen.<br />
4.) Die Anzahl <strong>der</strong> Zustände ist zu minimieren, d.h. mehrfach<br />
vorkommende, äquivalente Zustände werden eliminiert.<br />
5.) Die Zustandskodierung ist fest zu legen.<br />
6.) Die Zustandsübergangstabelle ist zu erstellen.<br />
7.) Aus <strong>der</strong> Zustandsübergangstabelle ist, unter Berücksichtigung des<br />
Schaltverhaltens <strong>der</strong> ausgewählten Flip-Flops, die sogenannte<br />
Implementierungstabelle zu erstellen. Bei Verwendung von D-Flip-<br />
Flops entfällt dieser Schritt, da in diesem Fall beide Tabellen gleich<br />
sind.<br />
8.) Aus <strong>der</strong> Implementierungstabelle sind die Übergangsschaltfunktionen<br />
her zu leiten, die zusammen mit dem Schaltverhalten <strong>der</strong><br />
Flip-Flops den Folgezustand bestimmen. Diese Schaltfunktionen<br />
werden auch Anregungsfunktionen ( excitation<br />
Seite 7 - 8<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
functions ) genannt, da sie die Eingangswerte für die Flip-Flops<br />
liefern, und daher bei Schaltvorgängen Än<strong>der</strong>ungen am Ausgang<br />
<strong>der</strong> Flip-Flops hervorrufen.<br />
9.) Die Ausgangswahrheitstabelle ist aufzustellen.<br />
10.) Die Ausgangsschaltfunktion ist aus <strong>der</strong> Ausgangswahrheitstabelle<br />
herzuleiten.<br />
11.) Der Zustandsautomat ist in einem Schaltplan darzustellen. Dazu<br />
sind die Schaltfunktionen in die entsprechenden Schaltnetze zu<br />
übertragen, und es sind die Speicherglie<strong>der</strong> und alle Verbindungen<br />
zu zeichnen.<br />
Bei <strong>der</strong> Codierung <strong>der</strong> Zustände werden die vorkommenden Zustände mit<br />
binärwertigen Ausdrücken bezeichnet. Mehrere unterschiedliche<br />
Codierungsmöglichkeiten werden angewendet:<br />
● Durchnummerierende, binäre Codierung: Bei dieser Codierung<br />
werden die Zustände einfach <strong>der</strong> Reihe nach durchnummeriert. Für n<br />
Zustände werden dann log 2 (n) Flip-Flops benötigt.<br />
● Benachbarte, binäre Codierung: Bei dieser Codierungsart wird die<br />
Codierung eines Zustandes und seines Folgezustandes <strong>der</strong>art gewählt, dass<br />
sich <strong>der</strong> Wert möglichst nur bei einer Bitposition än<strong>der</strong>t (z.B. Gray-Code ).<br />
Dies führt zu einem geringeren Schaltungsaufwand.<br />
● One-Hot-Codierung: Bei dieser Codierungsart wird jedem Zustand<br />
eine eigene Bitposition zugeordnet. Dadurch wird jedem Zustand ein<br />
eigenes Flip-Flop zugeordnet. Dies führt zu einfachen, leicht nachzuvollziehenden<br />
Übergangsschaltnetzen, die kurze Schaltzeiten ermöglichen.<br />
● Ausgangssignalbezogene Codierung: Bei dieser Codierungsart wird<br />
die Codierung auf die benötigten Ausgangssignale abgestimmt. Diese<br />
findet z. B. beim Medwedjew-Automaten Anwendung.<br />
Synthese eines einfachen Moore-Automaten<br />
Die einzelnen Synthese-Schritte sollen anhand <strong>der</strong> Synthese eines Modulo-<br />
6-Aufwärtszählers verdeutlicht werden. Mit einem asynchronen Reset R<br />
soll <strong>der</strong> Zähler in den Ausgangszustand , den Zustand Zahl null, gebracht<br />
werden können. Mit einem Eingangssignal C ( Count-Enable ) soll eine<br />
Zählerfreigabe erfolgen. Die Zustandsmenge entspricht den sechs Zahlen 0<br />
Seite 7 - 9<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
bis 5. Neben dem jeweiligen Zahlenausgang, soll es noch ein Ausgang Y<br />
geben, <strong>der</strong> anzeigt, wenn die Zahl 5 als Zählergebnis vorliegt. Da <strong>der</strong><br />
jeweilige Zählerstand ausgegeben werden soll, ist es sinnvoll für die<br />
Codierung <strong>der</strong> Zustände die durchnummerierende, binäre Codierung zu<br />
wählen. In <strong>der</strong> nachfolgenden Abbildung ist <strong>der</strong> Zustandsübergangsgraph<br />
des Modulo-6-Aufwärtszählers dargestellt.<br />
Für die Implementierung werden D-Flip-Flops mit asynchronem Rücksetzeingang<br />
(Clear) verwendet. Die Zustandsübergangstabelle und die Implementierungstabelle<br />
sind dann identisch, weil bei D-Flip-Flops gilt:<br />
Q n+1 = D. Zustandsübergangstabelle und Implementierungstabelle sind in<br />
nachfolgen<strong>der</strong> Abbildung dargestellt.<br />
Seite 7 - 10<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Mittels KV-Diagrammen ergeben sich daraus die Übergangsschaltfunktionen<br />
in disjunktiver Minimalform.<br />
D 2 = (¬C∧Q 2 )∨(Q 2 ∧¬Q 0 )∨(C∧Q 1 ∧Q 0 )<br />
D 1 = (¬C∧Q 1 )∨(Q 1 ∧¬Q 0 )∨(C∧¬Q 2 ∧ ¬Q 1 ∧Q 0 )<br />
D 0 = (¬C∧Q 0 )∨(C ∧¬Q 0 ) = C XOR Q 0<br />
Die Ausgangswahrheitstabelle ist in nachfolgen<strong>der</strong> Abbildung dargestellt.<br />
Aus <strong>der</strong> Ausgangswahrheitstabelle ergibt<br />
sich sofort die Ausgangsschaltfunktion.<br />
Y = Q 2 ∧¬Q 1 ∧Q 0<br />
Beim zeichnen des Schaltplans empfiehlt es sich zuerst die Flip-Flops ein<br />
zu zeichnen. Dann sind die Übergangsschaltfunktionen und die<br />
Ausgangsschaltfunktion ein zu zeichnen. In nachfolgen<strong>der</strong> Abbildung ist<br />
<strong>der</strong> Schaltplan dargestellt, den man für den Modulo-6-Zähler erhält.<br />
Seite 7 - 11<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Analyse von Zustandsautomaten<br />
Einen Zustandsautomaten zu analysieren bedeutet sein Schaltverhalten zu<br />
untersuchen und zu beschreiben.<br />
Folgendes systematische Vorgehen ist zu empfehlen:<br />
1.) Aus dem Schaltnetz <strong>der</strong> Übergangslogik sind die Anregungsfunktionen<br />
herzuleiten.<br />
2.) Unter Verwendung <strong>der</strong> Übergangsfunktion <strong>der</strong> jeweiligen Flip-<br />
Flops sind aus den Anregungsfunktionen die Zustandsübergangsfunktionen<br />
zu ermitteln.<br />
3.) Mit Hilfe <strong>der</strong> Zustandsübergangsfunktionen kann die Zustandsübergangstabelle<br />
aufgestellt werden.<br />
4.) Aus dem Schaltnetz sind die Ausgangsschaltfunktionen herzuleiten.<br />
5.) Mit Hilfe <strong>der</strong> Ausgangsschaltfunktionen kann die Ausgangswertetabelle<br />
aufgestellt werden.<br />
6.) Mittels <strong>der</strong> Zustandsübergangstabelle und <strong>der</strong> Ausgangswertetabelle<br />
kann <strong>der</strong> Zustandsgraph gezeichnet werden und das Zeitverhalten<br />
des Automaten kann analysiert werden.<br />
In <strong>der</strong> folgenden Abbildung ist <strong>der</strong> Schaltplan eines Zustandsautomaten<br />
dargestellt, <strong>der</strong> analysiert werden soll.<br />
Seite 7 - 12<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Aus dem Schaltplan lassen sich sofort die Anregungsfunktionen <strong>der</strong> D-<br />
Flip-Flops entnehmen. Sie lauten:<br />
D 1 = (¬C∧Q 1 )∨(Q 1 ∧¬Q 0 )∨(C∧¬Q 1 ∧Q 0 )<br />
D 0 = (¬C∧Q 0 )∨ (C∧¬Q 0 )<br />
Da die Übertragungsfunktion für D-Flip-Flops Q n+1 = D lautet, ergeben<br />
sich sofort die Zustandsübergangsfunktionen des Automaten:<br />
Q 1n+1 = (¬C∧Q 1 )∨(Q 1 ∧¬Q 0 )∨(C∧¬Q 1 ∧Q 0 )<br />
Q 0n+1 = (¬C∧Q 0 )∨ (C∧¬Q 0 )<br />
Mit <strong>der</strong>en Hilfe lässt sich die Zustandsübergangstabelle erstellen, die in<br />
nachfolgen<strong>der</strong> Abbildung dargestellt ist.<br />
Die Ausgangschaltfunktion lässt sich unmittelbar dem Schaltplan<br />
entnehmen. Sie lautet: Y = Q 1 ∧Q 0<br />
Daraus ergibt sich die Ausgangswahrheitstabelle, die in nachfolgen<strong>der</strong><br />
Abbildung dargestellt ist.<br />
Seite 7 - 13<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Da nun die komplette Automatentabelle aus Zustandsübergangstabelle und<br />
Ausgangswahrheitstabelle vorliegt, sind alle Informationen vorhanden um<br />
den Zustandsübergangsgraph zu zeichnen. In nachfolgen<strong>der</strong> Abbildung ist<br />
<strong>der</strong> Zustandsübergangsgraph des untersuchten Automaten dargestellt.<br />
Zur vollständigen Analyse kann man noch ein Impulsdiagramm erstellen,<br />
um das Verhalten des Automaten als Funktion <strong>der</strong> Zeit zu untersuchen. Ein<br />
solches Impulsdiagramm ist in nachfolgen<strong>der</strong> Abbildung dargestellt.<br />
Da <strong>der</strong> Ausgang nicht von den Eingängen abhängt, und auch nicht<br />
identisch ist mit den Zuständen, handelt es sich um einen Moore-<br />
Automaten. Dies ergibt sich auch aus <strong>der</strong> zeitlichen Analyse des<br />
Impulsdiagramms. Der Automat besitzt zudem ein asynchrones Reset mit<br />
dem er in den Anfangszustand versetzt werden kann. Es handelt sich bei<br />
dem Automaten um einen Modulo-4-Aufwärtszähler.<br />
Seite 7 - 14<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Ungenutzte Zustandskodierungen in Zustandsautomaten<br />
Wird eine bestimmte Kodierung für die Zustände festgelegt, so kommt es<br />
vor, dass einige Kodierungswerte ungenutzt bleiben, da es weniger<br />
relevante Zustände als mögliche Kodierungswerte gibt. Wenn sichergestellt<br />
ist, dass <strong>der</strong> Zustandsautomat nie in einen Zustand gelangen kann,<br />
<strong>der</strong> einer solchen Kodierung entspricht, dann kann man diese Zustände bei<br />
<strong>der</strong> Synthese als „dont’t-care“-Zustände betrachten.<br />
Kann ein Zustandsautomat in einen solchen Zustand gelangen, dann ist bei<br />
<strong>der</strong> Synthese sicherzustellen, dass er ohne Bedingung sofort von diesem<br />
Zustand in den Startzustand übergeht. Dazu werden diese Zustände bei <strong>der</strong><br />
Synthese explizit <strong>der</strong>art berücksichtigt, dass ihr Folgezustand <strong>der</strong><br />
Startzustand ist.<br />
Zeitverhalten von synchronen Zustandsautomaten<br />
Bei Zustandsautomaten hängt <strong>der</strong> Folgezustand Q n+1 vom aktuellen<br />
Zustand Q n ab, d. h. <strong>der</strong> aktuelle Zustand wird in das Schaltnetz zurückgekoppelt,<br />
das den Folgezustand berechnet. Aufgrund dieser Rückkopplung<br />
ergeben sich zwei zeitliche Rückkopplungsbedingungen, die erfüllt<br />
sein müssen, damit ein Zustandsautomat fehlerfrei funktionieren kann.<br />
Zeitverhältnisse bei einem synchronen Zustandsautomaten<br />
Wird bei <strong>der</strong> n-ten Taktflanke <strong>der</strong> n-te Zustand aktualisiert, so benötigt das<br />
Zustandssignal zunächst die Laufzeit T CO ( CO = Clock to Output ) bis zum Ausgang<br />
des Flip-Flops, weiter wird bis zum Eingang des Übergangsschaltnetzes die Laufzeit<br />
T wd1 ( wd = wire delay ) benötigt.<br />
Seite 7 - 15<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Für die Berechnung des Folgezustandes im Übergangsschaltnetz wird die<br />
Zeit T pd ( pd = propagation delay ) benötigt. Das berechnete Signal des<br />
Folgezustandes benötigt dann die Laufzeit T wd2 , um über die entsprechende<br />
Leiterbahn, zum Eingang des Flip-Flops zu gelangen. Dort muss<br />
das Signal mindestens während <strong>der</strong> Set-up-Time T SU anliegen, damit das<br />
Flip-Flop sicher schalten kann. Daher ergibt sich insgesamt für die<br />
Periodendauer T cycle die Zeitbedingung ( 1. Rückkopplungsbedingung ):<br />
Zudem muss sichergestellt sein, dass während <strong>der</strong> „Hold-Time“ T h des<br />
Flip-Flops nicht bereits <strong>der</strong> neue Folgezustand am Eingang des Flip-Flops<br />
anliegen kann. Daraus ergibt sich die 2. Rückkopplungsbedingung:<br />
Da für die Kodierung <strong>der</strong> Zustände in <strong>der</strong> Regel mehrere Flip-Flops<br />
notwendig sind, ist zusätzlich noch die unterschiedliche Laufzeit des<br />
Taktsignals ( clock ) zu den verschiedenen Flip-Flops zu berücksichtigen.<br />
Diese Differenz in den Clock-Laufzeiten wird Taktsignalverschiebung<br />
(„Clock-Skew“ ) genannt. Diese Taktsignalverschiebung kann zum einen<br />
die Taktperiode des Zustandsautomaten vergrößern, und zum an<strong>der</strong>en kann<br />
sie zu einer Verkürzung <strong>der</strong> Rückkopplungszeit führen, was in <strong>der</strong> zweiten<br />
Rückkopplungsbedingung zu berücksichtigen ist.<br />
Damit lauten die beiden vollständigen Rückkopplungsbedingungen:<br />
Da die Ausgangssignale eines Automaten nicht zurückgekoppelt werden,<br />
sind <strong>der</strong>en Verzögerungen unkritisch für den Betrieb eines Automaten.<br />
Seite 7 - 16<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Zustandsautomaten1als Steuerwerke, mikroprogrammierte Steuerwerke<br />
Zustandsautomaten werden dazu verwendet um Steuerwerke zu realisieren.<br />
Steuerwerke steuern den Ablauf eines o<strong>der</strong> mehrerer Vorgänge. Zur<br />
Implementierung von Steuerwerken stehen grundsätzlich drei unterschiedliche<br />
Möglichkeiten zur Verfügung:<br />
1.) Die Schaltfunktionen, die mittels Synthese ermittelt werden, werden als<br />
Netzliste in eine Hardware umgesetzt, d. h. es liegt dann eine fest<br />
„verdrahtete“ Hardware vor. Eine solche Lösung wird angewendet,<br />
wenn ein schnelles und nicht zu großes Steuerwerk gewünscht wird,<br />
das nicht mehr angepasst werden muss.<br />
2.) Das Steuerwerk wird als Mikroprogrammsteuerwerk realisiert. Hierbei<br />
werden die Schaltfunktionen durch die „Programmierung“ von Festwertspeichern,<br />
die unter Umständen wie<strong>der</strong>programmierbar sind,<br />
realisiert. Diese Methode wird bei sehr großen Schaltwerken angewendet.<br />
Diese Schaltwerke können bei <strong>der</strong> Verwendung von wie<strong>der</strong>programmierbaren<br />
Festwertspeichern auch leicht abgeän<strong>der</strong>t werden.<br />
Ein solches Steuerwerk arbeitet in <strong>der</strong> Regel langsamer als ein fest<br />
„verdrahtetes“ Steuerwerk, da ein Lesevorgang relativ lange dauert.<br />
3.) Realisierung des Steuerwerkes mittels einmal o<strong>der</strong> mehrfach<br />
„programmierbarer“ Logikbausteine wie: CPLD’s (Complex<br />
Programmable Logic Devices ) o<strong>der</strong> FPGA’s ( Field Programmable<br />
Gate Arrays). Die Verwendung von mehrfach „programmierbaren“<br />
Bausteinen erlaubt die Realisierung sehr schneller Steuerwerke, die bei<br />
Bedarf an eine geän<strong>der</strong>te Aufgabenstellung angepasst werden können.<br />
Sie erlauben damit eine Kompromisslösung zwischen den fest<br />
verdrahteten und mikroprogrammierten Steuerwerken zu realisieren.<br />
Mikroprogrammierte Steuerwerke<br />
Bei mikroprogrammierten Steuerwerken kommen Festwertspeicher zum<br />
Einsatz, die, wenn sie nur einmal beschrieben werden können, als ROMs<br />
(Read Only Memorys) bezeichnet werden. In den Speicherzeilen <strong>der</strong><br />
ROMs wird eine sogenannte Mikroinstruktion, die den Folgezustand und<br />
die Werte <strong>der</strong> Steuervariablen zum jeweilig aktuellen Zustand enthält,<br />
gespeichert. Zum Auswählen <strong>der</strong> jeweiligen Speicherzeile dient ein<br />
Adressdeko<strong>der</strong>. Die Adresse setzt sich aus dem aktuellen Zustand und den<br />
Statusvariablen als Eingangsvariablen zusammen.<br />
Seite 7 - 17<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Nachfolgende Abbildung zeigt den schematischen Aufbau, die Struktur <strong>der</strong><br />
ROM-Adressierung und den Inhalt einer Mikroinstruktion eines<br />
mikroprogrammierten Steuerwerkes.<br />
Wie <strong>der</strong> Abbildung zu entnehmen ist, werden über das ROM <strong>der</strong><br />
Folgezustand und die jeweiligen Steuervariablen ermittelt. Der<br />
Folgezustand wird im Adressregister als aktueller Zustand gespeichert und<br />
steht damit als Teil <strong>der</strong> Adresse zur Auswahl <strong>der</strong> Mikroinstruktion zur<br />
Verfügung. Das ROM übernimmt offensichtlich die Aufgaben des<br />
Übergangsschaltnetzes und des Ausgangschaltnetzes. Die Funktionsweise<br />
und die Programmierung eines mikroprogrammierten Steuerwerks werden<br />
nachfolgend anhand eines einfachen Beispiels erläutert. Nachfolgende<br />
Abbildung zeigt die Aufgabenstellung und den Zustandsgraphen einer<br />
einfachen Fahrstuhlsteuerung.<br />
Seite 7 - 18<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Das Steuerwerk besitzt zum einen die beiden Eingangssignale B 0 und B 1 ,<br />
über die im jeweiligen Stockwerk <strong>der</strong> Bedarf des Fahrstuhls angemeldet<br />
wird. Zum an<strong>der</strong>en zeigen die beiden Eingangssignale L 0 und L 1 an, ob <strong>der</strong><br />
Fahrstuhl im Erdgeschoss, Index 0, o<strong>der</strong> im ersten Stock, Index 1, steht.<br />
Als Ausgangs- und damit Steuersignale dienen die beiden Signale U ( Up )<br />
und D ( Down ), mit denen <strong>der</strong> Motor gesteuert wird, ob er den Aufzug<br />
aufwärts, U = 1 und D = 0, o<strong>der</strong> abwärts, U = 0 und D = 1, fahren sollen.<br />
Für das gesamte Steuerwerk werden vier Zustände verwendet.<br />
‣ Im Zustand q 1 q 2 = 00 befindet sich <strong>der</strong> Aufzug in <strong>der</strong><br />
Aufwärtsbewegung bis <strong>der</strong> erste Stock erreicht ist ( L 1 = 1) .<br />
‣ Im Zustand q 1 q 2 = 10 befindet sich <strong>der</strong> Fahrstuhl im ersten Stock<br />
und bleibt dort solange bis ein Fahrgast im Erdgeschoss einen<br />
Fahrtwunsch signalisiert ( B 0 = 1 ).<br />
Seite 7 - 19<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
‣ Im Zustand q 1 q 2 = 11 befindet sich <strong>der</strong> Aufzug in <strong>der</strong><br />
Abwärtsbewegung bis das Erdgeschoss erreicht ist ( L 0 = 1 ).<br />
‣ Im Zustand q 1 q 2 = 01 befindet sich <strong>der</strong> Fahrstuhl im Erdgeschoss<br />
und bleibt dort solange bis ein Fahrgast im ersten Stock einen<br />
Fahrtwunsch signalisiert ( B 1 = 1 ).<br />
Folgende Abbildung zeigt die Umsetzung des diskutierten<br />
Zustandsautomaten in ein mikroprogrammiertes Steuerwerk.<br />
Die Eingangssignale L 0 , L 1 , B 0, B 1 und die beiden aktuellen Zustandswerte<br />
q 0 und q 1 dienen <strong>der</strong> ROM-Adressierung um die passende Mikroinstruktion<br />
aus zu wählen, die den Folgezustand und die Werte <strong>der</strong> Steuersignale U<br />
und D enthält. Diese direkte Umsetzung eines Zustandsautomaten in ein<br />
mikroprogrammiertes Steuerwerk ist auf <strong>der</strong> einen Seite zwar recht einfach<br />
auf <strong>der</strong> an<strong>der</strong>en Seite benötigt sie aber ein unnötig großes ROM, da sie 2 n<br />
Speicherzeilen vorhalten muss, wobei n die Anzahl <strong>der</strong> Adressbits ist. Die<br />
meisten dieser Speicherzeilen sind jedoch mit identischen Inhalten belegt.<br />
Aus diesem Grund empfiehlt es sich ein sogenanntes adressmodifizierendes<br />
mikroprogrammiertes Steuerwerk ein zu setzen.<br />
Seite 7 - 20<br />
© R. Latz
„<strong>Technische</strong> <strong>Grundlagen</strong> <strong>der</strong> <strong>Informatik</strong> (TGI)“<br />
Prof. Dr. R. Latz<br />
____________________________________________________________________________________________________________<br />
Bei einem solchen Steuerwerk wird nur noch <strong>der</strong> aktuelle Zustand zur<br />
Adressierung des ROMs herangezogen. Die nachfolgende Abbildung zeigt<br />
das Instruktionsformat eines adressmodifizierenden mikroprogrammierten<br />
Steuerwerks. Zudem ist die Umsetzung des Fahrstuhlautomaten in ein<br />
solches Steuerwerk gezeigt.<br />
Über die Kontrollflussvariablen werden in jedem Zustand die<br />
Verzweigungsbedingungen, d. h. die Werte <strong>der</strong> jeweils relevanten<br />
Eingangssignale ermittelt, um den entsprechenden Folgezustand aus zu<br />
wählen. Dazu steuern die Kontrollflussvariablen einen Multiplexer an<br />
dessen Eingänge die entsprechenden Verzweigungsbedingungen anliegen.<br />
Je nachdem, ob die Bedingung erfüllt ist o<strong>der</strong> nicht, wird zum Verzweigungszustand<br />
o<strong>der</strong> zum konsekutiven Folgezustand übergegangen.<br />
Seite 7 - 21<br />
© R. Latz