Professional Documents
Culture Documents
Digitaltechnik I
Einfuhrung in die sequentielle Logik
Bearbeitet von
Martin Bartels Dipl.{Ing. Matthias Riege
ITEM | Institut f
ur
Theoretische Elektrotechnik
und Mikroelektronik
c Universit
at Bremen, Oktober 2000
Inhaltsverzeichnis
1 Grundlagen 3
1.1 Verwendete Bezeichnungen und Schreibguren . . . . . . . . . . . . . . . . . 3
1.2 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Unterschied zwischen kombinatorischer und sequentieller Logik . . . . 4
1.2.2 Zustandsgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Der Boolesche Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Erklarung der beiden Gleichungen . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Exkurs zur linearen Algebra . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 Bedeutung von Ubergangs- und Ausgangsmatrix . . . . . . . . . . . . 8
1.3.4 Zustandsfolgetafel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Automatenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Mealy{Automat als Modellierung eines Booleschen Algorithmus . . 10
1.4.2 Ableitung weiterer Automatenmodelle aus dem Mealy{Automaten . 11
1.4.3 Sequentielle Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.3.1 Zeitortssequentieller Algorithmus . . . . . . . . . . . . . . . . 13
1.4.3.2 Zeitsequentieller Algorithmus . . . . . . . . . . . . . . . . . . 13
1.4.3.3 Ortssequentieller Algorithmus . . . . . . . . . . . . . . . . . 14
1.4.3.4 Asynchroner Algorithmus . . . . . . . . . . . . . . . . . . . . 14
1.4.4 Stochastischer Boolescher Algorithmus . . . . . . . . . . . . . . . . . 15
2 Zustandsminimierung 19
2.1 Zustandsminimierung bei vollstandig denierten Automaten . . . . . . . . . . 19
2.1.1 Einige Denitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 A quivalenzklassenbestimmung nach Huffman/Mealy . . . . . . . . . 21
2.1.3 Rekursion uber mehrere Schritte . . . . . . . . . . . . . . . . . . . . . 22
2.2 Zustandsminimierung bei unvollstandig denierten Automaten . . . . . . . . 26
2.2.1 Denitionen zur Zustandsminimierung . . . . . . . . . . . . . . . . . . 26
2.2.2 Ermittlung kompatibler Paare nach Paull/Unger . . . . . . . . . . . 29
2.2.3 Verschmelzungsgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.4 Implikationsgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3 Schaltwerkentwurf 37
3.1 Umwandlung Mealy/Moore{Automat . . . . . . . . . . . . . . . . . . . . . 37
3.1.1 Umwandlung eines Moore{ in einen Mealy{Automaten . . . . . . . 37
3.1.2 Umwandlung eines Mealy{ in einen Moore{Automaten . . . . . . . 37
3.2 Zustandskodierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.2 Optimale Zustandskodierung . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.2.1 Ziel der optimalen Zustandskodierung . . . . . . . . . . . . . 41
3.2.2.2 Heuristisches Verfahren . . . . . . . . . . . . . . . . . . . . . 44
3.2.2.3 Weiteres Beispiel zur optimalen Zustandskodierung . . . . . 45
3.3 Entwurf von Synchronschaltwerken . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.1 Entwurf mit getakteten Flip
ops . . . . . . . . . . . . . . . . . . . . . 47
3.3.2 Entwurf mit R{PALs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4 Entwurf von Asynchronschaltwerken . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.1 Laufzeiten in Asynchronschaltwerken . . . . . . . . . . . . . . . . . . . 53
3.4.2 Zustandskodierung bei Asynchronschaltwerken . . . . . . . . . . . . . 56
3.4.3 Analyse von Asynchronschaltwerken . . . . . . . . . . . . . . . . . . . 57
Abbildungsverzeichnis 61
Literaturverzeichnis 63
Kapitel 1
Grundlagen
1.1 Verwendete Bezeichnungen und Schreibguren
Auch wenn zu diesem Zeitpunkt noch nicht der Sinn aller im folgenden aufgefuhrten Begrie
vollig klar sein kann, sollen diese dennoch kurz vorgestellt werden, um die Lesbarkeit dieses
Textes zu erleichtern.
Boole sche Variable. Eine Boolesche Variable kann die Werte 0 oder 1 annehmen.
Sie wird in einfacher kursiver Schrift dargestellt. Es gilt also z. B.: x 2 B mit B = f0; 1g.
Grundlegende Operationen. Die grundlegenden Operationen in der Booleschen
Algebra sind die Disjunktion | meist dargestellt durch _ |, die Konjunktion ^ und
die Negation, z. B. x. Auf die Anwendung dieser Operationen und die Gesetze der
Booleschen Algebra wurde bereits in den Grundlagen eingegangen. Um die Analogie
zur mathematischen Algebra aufzuzeigen, werden in diesem Text fur Disjunktion und
Konjunktion ausschlielich die ebenfalls gebrauchlichen Symbole fur die (hier nicht
lineare) Addition und die Multiplikation verwendet: + fur _ und fur ^. Beispiele:
z1 =x +x 1 2 := x 1 _x 2 (1.1)
z = x x
2 1 2 := x 1 ^x 2 (1.2)
Auerdem ist es ublich, die Antivalenz zweier Variabler durch das Symbol fur die
lineare Addition auszudrucken:
z3 =x 1 x 2 := (x 1 ^ x ) _ (x ^ x )
2 1 2 (1.3)
Vektor. In Analogie zur Mathematik wird in der Booleschen Algebra unter einem
Vektor die geordnete Notation Boolescher Variabler verstanden. Es sind die Darstel-
lung als Zeilen- oder Spaltenvektor moglich. Ein Vektor wird in diesem Text als kursiver
und fetter Kleinbuchstabe dargestellt. Als Beispiel werden die Variablen x , x und x
zu einem Zeilenvektor x und einem Spaltenvektor x zusammengefat:
1 2 3
Z S
0 1
x1
x Z := ( x 1 x2 x3 ) ; x S := @ x2 A (1.4)
x3
Matrix. Wie in der Mathematik ist eine Matrix in der Booleschen Algebra eine ge-
ordnete Notation Boolescher Variabler in einem rechteckigen Schema mit m Zeilen
und n Spalten. In diesem Text wird eine Matrix als kursiver und fetter Grobuchstabe
dargestellt:
0
x11 x12 x1k x1n
1
B x21
B x22 x2k x2n C
C
B .. .. .. ..C
B . . . .
X := B
B x
B i1 xi2 xik
C
C
xin C
C
(1.5)
B . .. .. .. C
@ .. . . . A
xm1 xm2 xmk xmn
Genauso, wie man sich eine Matrix aus Zeilen- oder Spaltenvektoren zusammengesetzt
denken kann, ist es mitunter sinnvoll, einen Zeilen- oder Spaltenvektor im weiteren
Sinne als Matrix mit nur einer Zeile oder Spalte aufzufassen. Dies ist z. B. der Fall,
wenn Rechenvorschriften der Booleschen Algebra verwendet werden sollen, die an die
lineare Algebra angelehnt sind.
1.2 Einfuhrung
1.2.1 Unterschied zwischen kombinatorischer und sequentieller Logik
In der bereits aus den Grundlagen der Digitaltechnik bekannten kombinatorischen Logik wird
ein Eingangsvektor x eindeutig auf einen Ausgangsvektor z abgebildet. Jedem x wird genau
ein z zugeordnet, womit also der Wert von z ausschlielich vom gerade aktuellen Wert von
x abhangt und vorhergehende Werte von x unberucksichtigt bleiben. Man kann sagen, da
eine kombinatorische Schaltung kein Gedachtnis hat. Mit kombinatorischen Schaltungen lat
sich bereits ein breites Feld von Anwendungen abdecken, wie z. B. Code{Umsetzer, Addierer
etc.
Man uberlegt sich jedoch leicht Beispiele, bei denen die kombinatorische Logik uberfordert
ist. Dies sind alle Anwendungen, bei denen der Ausgangsvektor z auch von fruheren Wer-
ten des Eingangsvektors x abhangt. Man stelle sich eine Stehleuchte mit zwei Gluhlampen
vor, die mit einem einzigen Zugschalter geschaltet werden. Die Leuchte sei zunachst vollig
ausgeschaltet. U blicherweise wird nun mit einmaligem Betatigen des Zugschalters die erste
Gluhlampe eingeschaltet, beim nachsten Schalten wird dann die erste Gluhlampe wieder aus-
und die zweite eingeschaltet, und bei der nachsten Betatigung wird dann die erste Gluhlampe
wieder zugeschaltet, so da beide leuchten. Eine weitere Betatigung des Schalters schaltet die
Leuchte wieder vollig aus. Werden Gluhlampen verschiedener Leistung verwendet, so konnen
auf diese Weise neben dem ausgeschalteten Zustand drei verschiedene Helligkeitswerte durch
Betatigung des Zugschalters eingestellt werden. Man kann also sagen, da die Stehleuchte
vier verschiedene Zustande einnehmen kann. Der Zugschalter hat jedoch nur zwei mogliche
Zustande, namlich "nicht betatigt\ und "betatigt\.
Wollte man nun die mechanische Funktion des Schalters durch eine digitale Schaltung
nachbilden , kame man mit Hilfe der kombinatorischen Logik nicht zum Ziel, da sich die zwei
1
moglichen Zustande des Schalters unmoglich eindeutig auf die vier geforderten Zustande
der Gluhlampen abbilden lassen. Oben wurde schon die Reihenfolge genannt, in der die
1
Es soll hier nicht interessieren, ob dieses Vorhaben hinsichtlich Aufwand und Kosten sinnvoll ist, es handelt
sich lediglich um ein einfuhrendes Beispiel.
1.2. Einfuhrung 5
einzelnen Gluhlampen geschaltet werden. Die Mechanik des Schalters mu also neben der
simplen Funktion, einen Stromkreis zu schlieen und wieder zu onen eine weitere Funktion
haben, die es gewahrleistet, da bei einer Betatigung der richtige, auf den vorhergehenden
folgende Zustand ausgelost wird. Der aktuelle Zustand mu also gespeichert werden, damit
der richtige Folgezustand gewahlt werden kann.
Das obige Problem kann nur mit Hilfe einer sequentiellen Schaltung gelost werden, deren
wesentliches Merkmal es ist, innere Zustande bereitzustellen. Eine sequentielle Schaltung
bendet sich stets in genau einem bestimmten Zustand, der zwischengespeichert wird. Die
Schaltung verharrt solange in diesem Zustand, bis die Bedingung fur einen Wechsel in einen
Folgezustand eintritt. Auf diese Weise erhalt die Schaltung ein "Gedachtnis\, wodurch der
Wert des Ausgangsvektors z nicht nur vom aktuellen Wert, sondern auch von fruheren Werten
des Eingangsvektors x abhangt.
Mit der Problematik der Denition der Zustande und der Ubergangsbedingungen sowie
der Zustandsminimierung beschaftigt sich die Automatentheorie. Eine sequentielle Schaltung
wird daher meist einfach als ein Automat bezeichnet, oder genauer gesagt, eine sequentielle
Schaltung ist die technische Realisierung des theoretischen Modells Automat\.
"
1.2.2 Zustandsgraph
Es soll nun versucht werden, die aus dem vorherigen Abschnitt bekannte Stehleuchte zu
beschreiben. Es wird der Eingangsvektor x deniert, der nur eine Variable enthalt: x := ( x ).
x kann also nur zwei Werte annehmen, und es wird vereinbart: x = 0: der Zugschalter wird
nicht betatigt, x = 1: der Schalter wird betatigt. Die Gluhlampen liefern den Ausgangsvektor:
z := ( z z ) mit z = 1: die erste Gluhlampe leuchtet, z = 1: die zweite Gluhlampe
1 2 1 2
Die Knoten des Graphen sind mit den einzelnen Zustanden si beschriftet, die der Auto-
mat einnehmen kann, und denen entsprechend der folgenden Ausgangstafel die Werte von z
zugeordnet sind:
z1 z2
s1 0 0
s2 1 0
s3 0 1
s4 1 1
Die Kanten des Graphen sind mit den Bedingungen fur das Verharren in einem bestimm-
ten Zustand bzw. den Wechsel in den Folgezustand versehen. Diese Bedingungen werden aus
6 Kapitel 1. Grundlagen
dem Wert des Eingangsvektors x abgeleitet. Des weiteren ist hier der jeweilige Wert des
Ausgangsvektors z angegeben, der sich aus dem Folgezustand ergibt.
Die verwendeten Schreibguren sollen noch einmal genau erklart werden. Die Angabe
[x=z ; z ] :\ in der linken oberen Ecke von Abbildung 1.1 sagt aus, mit welchen Groen die
" 1 2
Kanten des Graphen beschriftet sind: Links vom Schragstrich = stehen die Komponenten des
Eingangsvektors, aus denen die Bedingung fur den Ubergang in den jeweiligen Folgezustand
abgeleitet wird. In diesem Fall ist dies nur x. Rechts vom Schragstrich stehen die Komponen-
ten des Ausgangsvektors, der sich nach dem Zustandswechsel ergibt. Nach diesem Schema
erfolgt also die Beschriftung der Kanten des Graphen. Beispielsweise wird so lange im Zu-
stand s verharrt, wie x = 0 ist. Wahrend dieser Zeit sind z = 0 und z = 1 (nur Gluhlampe
3 1 2
2 leuchtet).
Der Zustandsvektor sagt aus, in welchem Zustand sich der Automat bendet, da festgelegt
wird: Bendet sich der Automat im Zustand si , so gilt si = 1 ^ sj = 0 8 j 6= i. Bei n Zustanden
kann s daher genau n Werte annehmen.
Im Falle der Stehleuchte mute man also s := ( s s s s ) denieren und wurde fur
den Fall, da s der aktuelle Zustand ist, s = ( 0 0 1 0 ) erhalten.
1 2 3 4
Gl. (1.6) beschreibt den Ubergang vom aktuellen Zustand in den Folgezustand, indem sie
durch Verknupfung des aktuellen Zustandsvektors s mit der Ubergangsmatrix
F (x) den Wert
des Folgezustandsvektors s liefert. Wie diese Verknupfung (+) zu verstehen ist, beschreibt
+
der folgende Abschnitt (Es ist Gl. (1.15) anzuwenden.). Auf gleiche Weise liefert Gl. (1.7)
den Wert des Ausgangsvektors z durch Verknupfung des aktuellen Zustandsverktors mit der
Ausgangsmatrix G(x).
Man bezeichnet auch s := f (x; s) als Ubergangsfunktion
+ und z := g(x; s) als Aus-
gangsfunktion des Automaten.
Danach ist C vom Typ (m; p). Die Matrizenmultiplikation ist nicht kommutativ, d. h. es ist
im allgemeinen A B 6= B A.
Obwohl dies eigentlich uber
ussig ist, ist in Gl. (1.9) die Hierarchie der Rechenoperationen
durch Klammerung besonders hervorgehoben worden: Zunachst werden die Multiplikationen
ausgefuhrt, und dann werden die so erhaltenen Werte addiert. Um diese Hierarchie auch
in der Schreibgur fur das Matrizenprodukt C = A B zum Ausdruck zu bringen, konnte
man sich etwa die Schreibgur C = A + (B ) uberlegen, oder einfacher: C = A + B . Diese
in der linearen Algebra unubliche Schreibweise | schlielich gibt es hier nur eine Art der
Matrizenmultiplikation | ist in der Booleschen Algebra unverzichtbar, da dort eine Vielzahl
von Moglichkeiten gegeben ist, Matrizen miteinander zu verknupfen. Es werden nun also die
zwei Matrizen A und B eingefuhrt, deren Elemente Boolesche Variable sein sollen. Im
folgenden ist dargestellt, wie Gl. (1.9) fur unterschiedliche Verknupfungen anzuwenden ist : 3
Fuhrt man nun die in der Booleschen Algebra fur _, ^ und 6 haug verwendeten Symbole
+, und ein , so andern sich die obigen Gleichungen wie folgt:
4
1.3.3 Bedeutung von Ubergangs- und Ausgangsmatrix
Weiter oben wurde schon gesagt, da die Bedingung zum Wechsel vom aktuellen Zustand in
den Folgezustand aus dem Eingangsvektor x abgeleitet wird. Da Gl. (1.6) diesen Ubergang
beschreiben soll, mu die Ubergangsmatrix aus den Komponenten von x gebildet werden,
was schon in der Schreibgur F (x) zum Ausdruck kommt. Weil sowohl s als auch s vom +
Typ (1; n) sind, mu F (x) vom Typ (n; n), also eine quadratische Matrix sein:
0
f11 ( x) f12 ( x) f1k ( x) f1n ( x) 1C
Bf (
B 21 x) f22 ( x) f2k ( x) f2n ( x) CC
B
B .. .. .. .. C
. . . . C
F (x) := B
B
B fi1 ( x) fi (x) fik (x) fin (x) C
C (1.19)
B
.. C
2
B .. .. .. C
@ . . . . A
fn (x) fn (x)
1 2 fnk (x) fnn (x)
Die fik (x) sind so zu bilden, da Gl. (1.6) zu jedem Wert von x stets einen Folgezustandsvek-
tor liefert, der wie der aktuelle Zustandsvektor genau eine von null verschiedene Komponente
enthalt.
Bezogen auf das Beispiel der Stehleuchte ist die U bergangsmatrix wie folgt zu wahlen,
wenn s = ( s s s s ) und x = ( x ) ist:
1 2 3 4
0
x x 0 01
B0 x 0C
F (x) = B
@0 0 x xA
x C (1.20)
x 0 0 x
Man erhalt mit Gl. (1.6) und Gl. (1.15) den Folgezustandsvektor:
s+
= (s s s s )
+
1
+
2
+
3
+
4
(1.21)
= (s x + s x s x + s x s x + s x s x + s x)
1 4 1 2 2 3 3 4 (1.22)
Die U bergangsmatrix und ihre Bildung erscheinen zunachst vielleicht etwas kompliziert.
Um sich ihre Bedeutung klarzumachen, empehlt es sich, anhand eines konkreten Zustands-
vektors die Auswirkung der Ubergangsmatrix durchzuspielen. Der aktuelle Zustand sei s ,
also ist s = ( 0 0 1 0 ). Um die durch Gl. (1.15) gegebene Rechenvorschrift graphisch
3
aufzubereiten, wird s in Abbildung 1.2 als Spaltenvektor neben die U bergangsmatrix F (x)
geschrieben.
4
Das Symbol wird verwendet, da der Operator 6 eine (lineare!) Modulo{2{Addition der Operanden
bewirkt.
1.3. Der Boolesche Algorithmus 9
Abbildung 1.2: Zum Verstandnis der Ubergangsmatrix anhand des Beispiels
Nun lauft man ausgehend von der 1 in s durch F (x) hindurch und kann sofort den
Folgezustandsvektor s abtragen, der jetzt noch von x abhangt. Man erkennt, da die U
+ ber-
gangsmatrix im Grunde lediglich eine Tabelle ist, die jedem Zustand in graphisch leicht zu
erfassender Weise die moglichen Folgezustande zuordnet:
% s+ s+ s+
k s+
n
x) (x) f k (x) x)
1 2
In ahnlicher Weise ordnet die Ausgangsmatrix G(x) in Abhangigkeit von x mit Gl. (1.7)
jedem s einen Ausgangsvektor z zu. Da s vom Typ (1; n) und z vom Typ (1; p) ist, mu
G(x) vom Typ (n; p) sein:
0
g11( x) g12( x) x)
g1k ( g1p(x) 1
Bg (
B 21 x) g22( x) x)
g2k ( g2p(x) CCC
B
B .. .. .. .. C
. . . . C
G(x) := B
B
B gi1 ( x) gi (x) gik (x) gip(x) C
C (1.23)
B
.. C
2
B .. .. .. C
@ . . . . A
gn (x) gn (x)
1 2 gnk (x) gnp (x)
% z1 z2 zk zp
s1 g11( x) g12 (x) g k (x) g1p( x)
x) (x) g k (x) x)
1
ist:
0
0 01
B1 0C
G(x) = B@ 0 1A
C (1.24)
1 1
Mit Gl. (1.7) und Gl. (1.15) erhalt man den folgenden Ausgangsvektor:
z = (z z )
1 2 (1.25)
= (s + s s + s )
2 4 3 4 (1.26)
1.3.4 Zustandsfolgetafel
Zur vollstandigen Beschreibung eines Automaten mit Hilfe des Booleschen Algorithmus
sind also die zwei Matrizen F (x) und G(x) erforderlich. Eine in der Literatur sehr haug
verwendete Darstellungsform, die die Aussagen beider Matrizen zusammenfat, ist die Zu-
standsfolgetafel. Tabelle 1.1 zeigt diese fur das Beispiel der Stehleuchte.
[s =z ; z ] :
+
1 2 x! 0 1
s1 s1 =0; 0 s2 =1; 0
s2 s2 =1; 0 s3 =0; 1
s3 s3 =0; 1 s4 =1; 1
s4 s4 =1; 1 s1 =0; 0
Die linke Spalte ist mit den einzelnen Zustanden si , die obere Zeile mit den moglichen
Werten des Eingangsvektors x = ( x ) beschriftet. Der Tabellenrumpf enthalt links vom
Schragstrich die jeweiligen Folgezustande und rechts davon die Werte des Ausgangsvektors
z = ( z z ).
1 2
1.4 Automatenmodelle
1.4.1 Mealy{Automat als Modellierung eines Booleschen Algorithmus
Der einen Automaten beschreibende Boolesche Algorithmus, der durch Gl. (1.6) und Gl.
(1.7) gegeben ist, kann durch ein Automatenmodell beschrieben werden, das das Zusam-
menwirken der Komponenten des Quintupels (s; x; z ; F (x); G(x)) anschaulich darstellt. Das
allgemeinste Automatenmodell ist der Mealy{Automat, den Abbildung 1.3 zeigt.
Der Speicher wird eingefuhrt, um die zeitliche Abfolge von Zustands- und Folgezustands-
vektor auszudrucken. Man uberlegt sich leicht, da s und s unmoglich zum selben Zeit-
+
punkt auftreten konnen. Vielmehr mu der sich nach Gl. (1.6) ergebende Folgezustandsvektor
erst nach einer Verzogerung weitergegeben werden, so da s zum neuen s wird. Wie diese
+
Verzogerung genau zu verstehen ist, wird Thema von Abschnitt 1.4.3 sein. Es sei jedoch schon
darauf hingewiesen, da die Darstellung nach Abbildung 1.3 fur ortssequentielle Algorithmen
ungeeignet ist.
1.4. Automatenmodelle 11
Es ist leicht ersichtlich, warum der Mealy{Automat die allgemeinste Form eines Au-
tomaten ist: Beide Module + F (x) und + G(x) haben x als Parametrisierung und s
als Eingangsgroe. Damit hangen der Ausgangs- und der Folgezustandsvektor sowohl vom
Eingangs- als auch vom aktuellen Zustandsvektor ab.
ob gerade vorher der Schalter betatigt wurde (x = 1) oder ob s schon seit langerer Zeit
2
besteht (x = 0).
Die Zustandsfolgetafel eines Moore{Automaten kann einfacher notiert werden als die
eines Mealy{Automaten. Da z von x unabhangig ist, konnen die Werte fur z aus dem
Tabellenrumpf herausgezogen und an den rechten Rand geschrieben werden. Tabelle 1.1 kann
also in der in Tabelle 1.2 dargestellten Weise vereinfacht werden.
12 Kapitel 1. Grundlagen
Ein weiteres Modell ist der Autonome Automat, dessen Verhalten | wie der Name schon
sagt | von aueren Ein
ussen unabhangig ist: Sowohl der Zustandswechsel als auch die
Bereitstellung des Ausgangsvektors ist unabhangig von einem Eingangsvektor. Ein Beispiel
eines Autonomen Automaten ist ein Multivibrator. Dieser wechselt selbststandig kontinu-
ierlich zwischen zwei Zustanden und liefert entsprechend am Ausgang z = 0 oder z = 1,
wodurch ein periodisches Rechtecksignal entsteht. Man wurde festzulegen haben:
0 1 0
F =
1 0
; G= 1
Gleichsam ein Gegenstuck zum Autonomen Automaten ist der Medwedjew{Automat.
Er hat keinen Ausgang, wodurch die Ausgangsmatrix vollig entfallt. Statt dessen vollzieht sich
der interne Zustandswechsel in Abhangigkeit des Eingangsvektors x. Ein praktisches Beispiel
fur diesen Automatentyp lat sich kaum nden, da jedes technische System nur dadurch
uberhaupt erst sinnvoll wird, da es irgendein Ausgangssignal bereitstellt. Der Medwedjew{
Automat hat eher theoretischen Wert.
Der letzte Typ, die kombinatorische Schaltung, ist eigentlich gar kein Automat, da ihr
das wesentliche Merkmal fehlt, ein Gedachtnis zu haben bzw. innere Zustande bereitzustellen.
Dennoch kann man sich uberlegen, wie man z. B. mit Hilfe eines Mealy{Automaten eine kom-
binatorische Schaltung nachzubilden hatte. Da die kombinatorische Schaltung kein Gedacht-
nis haben soll, genugt es formal, einen einzigen Zustand zu denieren: s := ( s ) = ( 1 ).
1.4. Automatenmodelle 13
[s ] :
+
x! 0 1 z ;z1 2
s1 s1 s2 0; 0
s2 s2 s3 1; 0
s3 s3 s4 0; 1
s4 s4 s1 1; 1
Element eine Boolesche Funktion darstellt, und der wegen s = ( ( ) 1) mit dem Ausgangs-
vektor z identisch ist.
Auf den Zustand sti zum Zeitpunkt t am Ort i folgt also der Zustand sti zu einem spateren
+1
+1
Zeitpunkt t +1 und am Ort i +1. Die Zustande haben die Eigenschaft eines zeitlichen Nachein-
anders und ortlichen Nebeneinanders. Gl. (1.27) und Gl. (1.28) beschreiben eine Verarbeitung
von Parametern, die parallel aufgereiht sind und seriell eintreen. Man spricht daher auch
von einer "Fliebandverarbeitung\.
Wegen der rein seriellen Verarbeitung spricht man von einer "Serienverarbeitung\. Fur den
in Abbildung 1.3 dargestellten Speicher werden in der Praxis Flip
ops verwendet, die den
Folgezustand fur die Dauer eines Taktes halten und nach dessen Ablauf als neuen aktuellen
Zustand bereitstellen.
Zwischen den einzelnen Kammern, denen die Zustande s : : : s zugeordnet sind, bestehen
1 4
Onungen, deren Breite anhand des hinterlegten Rasters abzulesen ist; es gibt Onungen
mit einer Breite von einer und zwei Langeneinheiten. Hiervon soll es abhangen, mit welcher
Wahrscheinlichkeit das Gasmolekul eine Kammer in einer bestimmten Richtung verlassen
wird. Dabei soll es in diesem | sehr einfachen und physikalisch nicht unbedingt korrekten
| Modell nicht interessieren, wie sich das Molekul innerhalb der Kammer verhalt, in der es
sich gerade bendet. Vielmehr soll die Beschreibung dieses Problems es ermoglichen, vorher-
zusagen, wie wahrscheinlich es ist, da das Molekul einen bestimmten Weg durch mehrere
Kammern des Labyrinths nimmt. Die Wahrscheinlichkeit, da das Molekul in der aktuellen
Kammer verharrt, wird also willkurlich zu null gesetzt, und es wird des weiteren einer O-
nung mit einer Breite von zwei Einheiten eine doppelt so hohe Wahrscheinlichkeit fur den
Ubergang
zugeordnet wie einer Onung mit einer Breite von einer Einheit.
Man hat dieses Problem also mit Hilfe eines asynchronen stochastischen Algorithmus zu
beschreiben, dessen Zustandsgraph in Abbildung 1.7 gezeigt ist.
Die Ubergangsmatrix hat fur s := ( s 1 s2 s3 s4 ) die folgende Gestalt:
0 1 0 1
p11 p12 p13 p14 0 2
5
1
5
2
5
B C B C
1 0 0 0
F = BB@ p21
p31
p22
p32
p23
p33
p24
p34
C
C
A
=B
B
@ 1
0 0 1
C
C
A
(1.35)
2 2
Damit lat sich beispielsweise ausrechnen, mit welcher Wahrscheinlichkeit das Molekul aus-
gehend von Kammer s einen direkten Rundkurs durch die Kammern s ! s ! s oder
4 1 3 4
s ! s ! s nimmt:
3 1 4
p4134 = p p p
41 13 34 (1.36)
2 1 1 1
= =
3 5 2 15
0;0667 (1.37)
p4314 = p p p
43 31 14 (1.38)
1 1 2 2
= =
3 5 5 75
0;0267 (1.39)
Wird auch genau ein Abstecher uber die Kammer s zugelassen, erhalt man: 2
umgekehrt.
Das obige Beispiel soll eine kurze Einfuhrung in die Problematik stochastischer Algo-
rithmen geben. In der Praxis werden diese z. B. bei der Analyse von digitalen Schaltungen
angewendet, um abzuschatzen, wie bestimmte Bitfolgen unter dem Ein
u unsicherer Gat-
terubergange (Signalspannung im verbotenen Bereich) weiterverarbeitet werden. Hier ist mit
bedingten Wahrscheinlichkeiten zu arbeiten, was bei groeren Schaltungen schnell einen enor-
men Rechenaufwand zur Folge hat. Das Automatenmodell, das hier zur Anwendung kommt,
ist der Markoff{Automat, auf den im Rahmen dieses Textes nicht naher eingegangen wer-
den soll.
18 Kapitel 1. Grundlagen
Kapitel 2
Zustandsminimierung
Um ein gegebenes Problem mit Hilfe eines Booleschen Algorithmus bzw. eines Automaten
beschreiben zu konnen, ist es notwendig, eine Zuweisung der inneren Zustande vorzunehmen.
Durch die Komplexitat eines Problems und die daraus resultierende mangelnde Ubersicht de-
niert man oftmals eine groere Anzahl von Zustanden als eigentlich notig. Um den Aufwand
bei der technischen Realisierung eines Automaten gering zu halten und damit gleichzeitig
die Zuverlassigkeit zu erhohen, ist es sinnvoll, die Anzahl der Zustande auf das tatsachlich
benotigte Mindestma zu reduzieren.
Hierzu mussen zueinander aquivalente bzw. kompatible Zustande gefunden werden, die
dann durch einen einzigen neuen Zustand ersetzt werden konnen. Anschaulich betrachtet sind
zwei Zustande dann aquivalent, wenn sich ausgehend von jedem der beiden Zustanden bei
einer beliebig langen Folge von Eingangswerten dieselbe Folge von Ausgangswerten einstellt.
Fur diese Aufgabenstellung gibt es eine Reihe von Verfahren sowohl graphischer als auch
algorithmischer Art, die im folgenden vorgestellt werden. Fur die Auswahl eines bestimmten
Verfahrens ist es ausschlaggebend, ob der Automat vollstandig oder unvollstandig deniert
ist. Bei einem vollstandig denierten Automaten wird jeder moglichen Kombination aus Wer-
ten des Eingangsvektors x und des Zustandsvektors s ein Wert des Ausgangsvektors z und
ein Wert des Folgezustandsvektors s zugeordnet. Bei unvollstandig denierten Automaten
+
bleiben bestimmte Kombinationen von x und s in dieser Hinsicht ungenutzt, so da die zu-
gehorigen Folgezustande ahnlich den aus der kombinatorischen Logik bekannten Don't Cares
zur Minimierung genutzt werden konnen.
Sind zwei Zustande k{aquivalent, so sind sie auch l{aquivalent fur alle l < k.
Sind zwei oder mehrere Zustande k{aquivalent fur beliebige Werte von k, so heien
diese Zustande aquivalent und konnen durch einen einzigen Zustand ersetzt werden:
si k sj 8 k 2 N () si sj (2.2)
Zwei Automaten M und M heien genau dann aquivalent, wenn jeder Zustande des
1 2
einen Automaten auf einen zu diesem aquivalenten Zustand des anderen Automaten
eineindeutig (bijektiv) abbildbar ist :1
M1 M () 9' : si 7! sj si 8 si 2 M ; sj 2 M (2.3)
^9 : sj 7! si sj 8 sj 2 M ; si 2 M
2 1 2
2 1
Ein Automat heit stark zusammenhangend, wenn jeder beliebige Zustand von jedem
beliebigen anderen Zustand aus erreichbar ist. Der in Abbildung 2.1 dargestellte zu-
sammenhangende Automat wird stark zusammenhangend, wenn der gestrichelt einge-
bergang wirksam wird.
zeichnete U
Minimaler Automat. Ein Automat heit minimal, wenn er keine zueinander aquiva-
lenten Zustande hat und zusammenhangend ist.
Aquivalenzklassen. Eine Relation
heit Aquivalenzrelation
R auf einer Menge M ,
wenn fur die Menge M die folgenden Eigenschaften gelten:
1. Re
exivitat: R : a 7! a 8 a 2 M
2. Symmetrie: R : a 7! b () R : b 7! a 8 a; b 2 M
3. Transitivitat: R : a 7! b ^ R : b 7! c () R : a 7! c 8 a; b; c 2 M
Ist R eine Aquivalenzrelation auf der Menge M , so teilt sie die Menge M in disjunktive
Aquivalenzklassen.
1
9
: a 7! b 8 a 2 A; b 2 B bedeutet: Es existiert eine Funktion
, die jedes Element a der Menge A
2.1.2 Aquivalenzklassenbestimmung nach Huffman/Mealy
Es sei nochmals darauf hingewiesen, da dieses Verfahren nur fur vollstandig denierte Au-
tomaten anwendbar ist, da hier keine Ausnutzung undenierter Folgezustande stattnden
kann.
Das Verfahren der Auquivalenzklassenbestimmung nach Huffman/Mealy soll anhand
des Beispiels eines (Moore{)Automaten erlautert werden, dessen Zustandsfolgetafel wie folgt
gegeben ist:
[s =z ] : x! 0 1 z
+
s s s 0 0 0 1
s s s 1 1 3 2
s s s 1 2 4 1
s s s 0 3 6 5
s s s 0 4 0 1
s s s 1 5 3 6
s s s 1 6 4 5
mit P bereits die erste Aufteilung in Teilmengen ergibt, da Zustande, denen ungleiche Aus-
1
gangsvektoren zugeordnet sind, mit Sicherheit nicht aquivalent sind. Die in diesen Teilmengen
enthaltenen Zustande sind jeweils k{aquivalent mit k = 1, also 1{aquivalent.
(s0 s1 s2 s3 s4 s5 s6 ) =P 0
z! 0 1 1 0 0 1 1
x# (s0 s3 s ) (s
4 1 s2 s5 s6 ) = P1
0 s0 s6 s0 s3 s4 s3 s4
s+
1 s1 s5 s1 s2 s1 s6 s5
(s0 s4 ) (s3 ) (s1 s2 s5 s6 ) = P2
0 s0 s0 s6 s3 s4 s3 s4
s+
1 s1 s1 s5 s2 s1 s6 s5
(s0 s4 ) (s3 ) (s1 s5 ) (s2 s6 ) =
3
P
0 s0 s0 s6 s3 s3 s4 s4
s+
1 s1 s1 s5 s2 s6 s1 s5
(s0 s4 ) (s3 ) (s1 s5 ) (s2 s6 ) = P4 =P 3
Die Aquivalenzklassen hoherer Ordnung werden nun folgendermaen bestimmt: Unter
der mit P beschrifteten Zeile sind gema der Zustandsfolgetafel die Folgezustande notiert.
aus P fur x = const
1
Es wird nun uberpruft, ob die Folgezustande einer Aquivalenzklasse 1
samtlich in der gleichen Folge{Aquivalenzklasse liegen. Ist dies nicht der Fall, so wird eine ent-
sprechende Unterteilung vorgenommen, wodurch man die Aquivalenzklassen der nachsthoher-
en Ordnung (P ) erhalt. In P liegen die Folgezustande von (s ; s ; s ) fur x = 1 alle in
2 1 0 3 4
s0 die Klasse (s ; s ; s ) angelaufen. Daher ist (s ; s ; s ) entsprechend den Spalten von Ta-
0 3 4 0 3 4
belle 2.1 zur Gewinnung von P in (s ; s ) und (s ) aufzuteilen. Wieder werden darunter die
2 0 4 3
entsprechenden Folgezustande notiert. Ebenso geht man im nachsten Schritt fur die Klasse
(s ; s ; s ; s ) vor, die fur P in (s ; s ) und (s ; s ) aufzuteilen ist.
1 2 5 6 3 1 5 2 6
Aquivalenzklassen
Man erhalt also:
Pk = f(s ; s ); (s ; s ); (s ; s ); (s )g
0 4 1 5 2 6 3 8k (2.4)
Gl. (1.6) und Gl. (1.7) mit den bereits aus Abschnitt 1.4.3.2 bekannten Zeitindizes versehen:
st +1
= st + F xt (2.5)
zt = st + G xt (2.6)
Betrachtet man nun eine bei t = 0 beginnende Reihe von k aufeinander folgenden Zeit-
punkten, also t 2 f0; 1; 2; : : : ; k 1g, so erhalt man beginnend mit dem Anfangszustand
s eine Zustandsfolge s ; s ; : : : ; sk , die man mit Gl. (2.5) in Form eines Gleichungssystems
0 1 2
anschreiben kann:
s = s + F x
1 0 0
s = s + F x2 1 1
.. (2.7)
.
sk = sk + F xk 1 1
Ebenso erhalt man mit Gl. (2.6) die Folge der Ausgangsvektoren z ; z ; : : : ; z k : 0 1 1
z 0
= s + G x
0 0
z 1
= s + G x
1 1
.. (2.8)
.
zk 1
= sk 1
+ G xk 1
Jede Zeile dieser beiden Gleichungssysteme beschreibt nach wie vor nur eine Rekursion
uber einen Schritt. Daher werden jetzt die Zeilen so aufeinander angewendet, da man eine
2.1. Zustandsminimierung bei vollstandig denierten Automaten 23
Beschreibung erhalt, die ausgehend allein von dem Anfangszustand s durch Rekursion uber 0
s2
= s + F x + F x
0 0 1
.. (2.9)
.
sk = s + F x + F x + : : : + F xk
0 0
1
1
z 0
= s + G x
0 0
z 1
= s + F x + G x
0 0 1
.. (2.10)
.
zk 1
= s + F x + F x + : : : + F xk
0 0 1 2
+ G xk 1
Die jeweils letzte Zeile dieser beiden Gleichungssyteme stellt eine allgemeine Beschreibung
des Automaten fur beliebige k > 0 dar, die jedoch etwas unhandlich ist. Es werden daher
folgende abkurzende Schreibguren eingefuhrt:
k := F x 0
+ F x 1
+ : : : + F xk 1
(2.11)
k
:= k 1
+ G xk 1
(2.12)
Man beachte, da in k und k immer noch die Folge der Eingangsvektoren x ; x ; : : : ; xk 0 1 1
enthalten ist!
Damit ergibt sich eine recht einfache Beschreibung eines zeitsequentiellen Booleschen
Algorithmus uber k Schritte:
sk = s + k
0
(2.13)
z k 1
= s + k
0
(2.14)
Es kann nun ein Schema zur Berechnung der Folge von Ausgangsvektoren aufgeschrieben
werden (Der Pfeil ! bedeutet "wird verrechnet mit\):
s 0
! x +G 0
= s +
0 1
= z 0
#
+ F x ! +G x s + z
0 1
= 0 2
= 1
#
+ F x ! +G x s + z
1 2
= 0 3
= 2
# (2.15)
.. .. .. ..
. . . .
#
+ F xk 2
! +G xk 1
= s +
0 k
= zk 1
.. .. .. ..
. . . .
Es ist an dieser Stelle jedoch uninteressant, welche konkreten Werte der Ausgangsvektor
im einzelnen annimmt. Statt dessen sollen aquivalente Zustande gefunden werden, und es
ist daher erforderlich, aquivalente Zeilen in der Matrix k zu nden. Dazu wird in jedem
der oben angegebenen Berechnungsschritte aus der | je nach Aufgabenstellung durchaus
kompliziert aufgebauten | Matrix k eine einfache Matrix P k konstruiert, deren Elemente
24 Kapitel 2. Zustandsminimierung
nur Nullen und Einsen sind. P k hat die gleiche Zeilenanzahl wie k und wird so konstruiert,
da fur aquivalente Zeilen in k auch in P k entsprechende gleiche Zeilen gesetzt werden;
diese "Kodeworter\ durfen beliebig gewahlt werden. Des weiteren braucht auch nicht mehr
von einem bestimmen Anfangszustand s (siehe obiges Schema) ausgegangen zu werden,
0
es genugt die Auswertung der Matrizen F (x) und G(x) zur Gewinnung der Matrix P k .
Dementsprechend wird das obige Schema wie folgt vereinfacht (7! bedeutet "wird abgebildet
auf\):
G(x) = G (x) 7! P 0 1
F (x) + P = G (x) 7! P
1 1 2
F (x) + P = G (x) 7! P
2 2 3
.. .. (2.16)
. .
F (x) + P k = Gk (x) 7! P k
1 1
.. ..
. .
Zunachst wird also die Ausgangsmatrix G(x) auf die Matrix P abgebildet, die dann in 1
der ersten Rekursion auf die U bergangsmatrix F (x) angewendet wird. Hieraus erhalt man
die Matrix G (x), die naturlich von G(x) = G (x) verschieden ist, und die auf P fur die
1 0 2
notiert werden. Die so erhaltene neue Matrix wird nach aquivalenten Zeilen durchsucht,
woraus sich entsprechende aquivalente Kodeworter in P k ergeben. Dieser Ablauf wird weiter
unten noch anhand des Beispiels aus dem vorhergehenden Abschnitt veranschaulicht. Unter
Verwendung des gerade besprochenen Bildungsgesetzes kann das Schema wie folgt notiert
werden:
G (x) 7! P 1
F (x) + P = G (x)
1 1
;
P G (x) 7! P 1 1 2
;
F (x) + P 2
= G (x)
2
P G (x)
2 2
7! P 3
.. .. .. (2.17)
. . .
Gk (x) ; P
F (x) + P k 1
= 1 k 1
Gk (x) 7! P k
1
.. .. ..
. . .
Beim Durcharbeiten dieses Schemas stellt man fur ein bestimmtes k irgendwann fest,
da sich P k und P k nicht mehr voneinander unterscheiden. Es lassen sich dann aus der
1
Struktur von P k die Klassen k{aquivalenter Zustande ablesen, die gleichzeitig die Klassen
aquivalenter Zustande sind.
Das Verfahren der Rekursion uber mehrere Schritte wird nun anhand des Beispiel aus
Abschnitt 2.1.2 erklart. Aus der dort dargestellten Zustandsfolgetafel entwickelt man fur
s := ( s s s s s s s ) die U bergangs- und die Ausgangsmatrix des gegebenen
0 1 2 3 4 5 6
Moore{Automaten:
0 1 0 1
x x 0 0 0 0 0 0
B0 0 x x 0 0 0C B1C
B C B C
B0 x 0 0 x 0 0C B1C
B C B C
F (x) := BB 0 0 0 0 0 x x CC ; G(x) := BBB 0 CCC
B C
(2.18)
Bx x 0 0 0 0 0C B0C
B C B C
@0 0 0 x 0 0 xA @1A
0 0 0 0 x x 0 1
2.1. Zustandsminimierung bei vollstandig denierten Automaten 25
Es wird jetzt das in Gl. (2.17) gegebene Schema angewendet. Zuerst wird aus G(x) die
Matrix P gebildet, die die gleichen aquivalenten Zeilen aufweist wie G(x):
1
Gx (
z }| {
)
z }| {
P 1
0 1 0 1
0 1 0
B1C B0 1C
B C B C
B1C B0 1C
B C B C
B C
B0C
B C
7! B
B1
B
0CC
C
B0C B1 0C
B C B C
@1A @0 1A
1 0 1
Dann wird das Rechenschema aus Gl. (2.17) solange weitergefuhrt, bis man fur ein be-
stimmtes k den Fall P k = P k erhalt: 1
z
F}|x
( )
{
P
z0 }| 1{
1
z
G}|x 1
( )
{ z
P}|
2
{
0 1 0 1 0
x x 0 0 0 0 0 1 0 x x 1 0 01
B0 0 x x 0 0 0C B0 1C Bx
C B xC B0 1 0C
B C B C B C
B0 x 0 0 x 0 0C B0 1C Bx xC B0 1 0C
B C B C B C B C
xC+ B1 7!
B C B C B
B0
B
0 0 0 0 x
C B
0CC
= B0
B
1C
C
C
B
B0
B
0 1CC
C
Bx
B x 0 0 0 0 0CC
B1
B 0C B
C
Bx xC
C
B1
B 0 0CC
@0 0 0 x 0 0 xA @0 1A @x xA @0 1 0A
0 0 0 0 x x 0 0 1 x x 0 1 0
+
z
F}|x
( )
{ z
P}| 2
{ z
G}|x 2
( )
{ z
P}| 3
{
0 1 0 1 0 1 0
x x 0 0 0 0 0 1 0 0 x x 0 1 0 0 01
B0 0 x x 0 0 0C B0 1 0C B0 x xC B0 1 0 0C
B C B C B C B C
B0 x 0 0 x 0 0C B0 1 0C Bx x 0C B0 0 1 0C
B C B C B C B C
xC+B0 7!
B C B C B
B0
B
0 0 0 0 x
C B
0 1CC
= B0
B
1 0C
C
C
B
B0
B
0 0 1CC
C
Bx
B
x 0 0 0 0 0CC
B1
B
0 0CC
Bx
B
x 0C
C
B1
B
0 0 0CC
@0 0 0 x 0 0 x A @0 1 0 A @0 x xA @0 1 0 0A
0 0 0 0 x x 0 0 1 0 x x 0 0 0 1 0
+
z
F}|x
( )
{ z
P}| 3
{ z0
G}|x 3
( )
{ z
P }|P4
=
3
{
0 1 0 1 1 0
x x 0 0 0 0 0 1 0 0 0 x x 0 0 1 0 0 01
B0 0 x x 0 0 0C B0 1 0 0C B0 0 x xC B0 1 0 0C
B C B C B C B C
B0 x 0 0 x 0 0C B0 0 1 0C Bx x 0 0C B0 0 1 0C
B C B C B C B C
xC+ B0 7!
B C B C B C B
B0
B
0 0 0 0 x
C B
0 0 1CC
= B0
B
x x 0C
C
B0
B
0 0 1CC
C
Bx
B
x 0 0 0 0 0CC
B1
B 0 0 0CC
Bx
B
x 0 0CC
B1
B 0 0 0CC
@0 0 0 x 0 0 x A @0 1 0 0 A @0 0 x xA @0 1 0 0A
0 0 0 0 x x 0 0 0 1 0 x x 0 0 0 0 1 0
Im letzten Schritt ergibt sich also P k = P k mit k = 4. Da die Zeilen von P k den einzel-
1
nen Zustanden s ; : : : ; s entsprechen und gleiche Zeilen auf aquivalente Zustande hinweisen,
0 6
erhalt man die folgenden aquivalenten Paare, die bereits aus dem vorhergehenden Abschnitt
bekannt sind:
Pk = f(s ; s ); (s ; s ); (s ; s ); (s )g
0 4 1 5 2 6 3 8 k (2.19)
26 Kapitel 2. Zustandsminimierung
Man erkennt, da sich die Aquivalenzklassen der einzelnen Ordnungen in der gleichen Wei-
se entwickeln wie beim Verfahren von Huffman/Mealy, welches jedoch mit einem deutlich
geringeren Schreib- und Rechenaufwand auskommt und bei relativ einfachen Automaten auch
noch recht ubersichtlich ist.
Sollen kompliziertere Automaten minimiert werden, so bietet sich aber das hier vorge-
stellte Verfahren an, da es streng algorithmisiert ist und daher leicht programmiert werden
kann.
Mit den gefundenen Aquivalenzklassen kann nun der minimierte Automat bestimmt wer-
den. Dazu werden in der Ubergangsmatrix F (x) aus Gl. (2.18) diejenigen Spalten disjunktiv
verknupft (+), die aquivalenten Zustanden zugeordnet sind. Dann werden in F (x) und G(x)
die Zeilen gestrichen, die zu den durch Aquivalenz uber
ussig gewordenen Zustanden gehoren.
Man erhalt so mit s = ( s + s s + s s + s s ):
min 0 4 1 5 2 6 3
0
x x 0 01 0
01
B0 0 x xC B1C
F min (x) = B
@ x x 0 0A
C; G min (x) = B
@1A
C (2.20)
0 x x 0 0
Eine Menge von Zustanden ist genau dann kompatibel, wenn fur jeden moglichen Ein-
gangsvektor die zugehorigen Folgezustande kompatibel und wenn alle fur diese Zustande
denierten Ausgangsvektoren (fur alle Eingangsvektoren) gleich sind.
Uberdeckung.
Eine Uberdeckung ist eine Klasse von Mengen kompatibler Zustande.
Vollstandigkeit der Uberdeckung.
Eine Uberdeckung heit vollstandig, wenn jeder
Zustand des betrachteten Automaten in einer Menge der Uberdeckung enthalten ist.
Geschlossenheit der Uberdeckung.
Eine Uberdeckung heit geschlossen, wenn fur
jeden Eingangsvektor und jede Zustandsmenge der Uberdeckung die Folgezustande in
derselben Zustandsmenge der Uberdeckung enthalten sind.
Die meisten der eben genannten Begrie werden in Abbildung 2.2 noch einmal veranschau-
licht.
Kg := fK ; K ; K ; : : :; Km g
0 1 2 1 (2.21)
Durch Zusammenfassen von geeigneten kompatiblen Paaren zu kompatiblen Mengen erhalt
man die Menge der "Maximum Compatibles\ K . Die Anzahl der Elemente von K stellt
mc mc
eine Obergrenze der Zustandszahl dar, die in einigen Fallen sogar noch hoher sein kann als die
ursprungliche Zustandszahl. Die Untergrenze ist gegeben durch die Anzahl der Elemente einer
Menge K , die gerade diejenige Minimalanzahl von Mengen kompatibler Zustande enthalt,
u
so da jeder Zustand des ursprunglichen Automaten wenigstens einmal erfat ist. Damit
stellt K eine Untermenge von K dar (K K ) und reprasentiert die vollstandige
u mc u mc
28 Kapitel 2. Zustandsminimierung
Uberdeckung. K beschreibt jedoch wiederum nicht die Minimalanzahl der Zust
u ande, da
weiterhin gefordert werden mu, da alle ursprunglichen Zustandsubergange erhalten bleiben
(Geschlossenheit der Uberdeckung). Die tatsachliche Minimalanzahl der Zustande, gegeben
durch die Anzahl der Elemente einer Menge K , liegt zwischen diesen Grenzen :
min
2
pwr (K ) pwr (K
u min ) pwr (K ) ;
mc Ku K mc (2.22)
Die Begrie K , K , K und K werden im dritten Beispiel von Abschnitt 2.2.2 und
g mc u min
2. Vollstandigkeit. Jeder Zustand mu bei der Erstellung des zustandsminimierten Au-
tomaten berucksichtigt sein: Ein einzelner Zustand wird entweder unverandert uber-
nommen oder geht in der Zusammenfassung mit anderen Zustanden auf.
3. Geschlossenheit. Jeder Zustandsmenge mu fur jeden Eingangsvektor eindeutig eine
Folgezustandsmenge zugeordnet werden.
2
pwr (A): Machtigkeit der Menge A, Anzahl der Elemente in A
2.2. Zustandsminimierung bei unvollstandig denierten Automaten 29
Das Verfahren verwendet eine Kompatibilitatstafel in Form einer Halbmatrix, wie sie in
Abbildung 2.4 dargestellt ist.
Die Halbmatrix enthalt fur jedes Zustandspaar genau eine Zelle und liefert letztlich eine
Darstellung, ob und unter welchen Bedingungen zwei Zustande kompatibel sind. Um dies zu
erreichen, geht man wie folgt vor:
1. Zunachst werden alle Zustandspaare ausgekreuzt (), die wegen unterschiedlicher Aus-
gangsvektoren mit Sicherheit inkompatibel sind: Nach dem Verfahren von Huffman/
Mealy in Abschnitt 2.1.2 w urde man entsprechend mit P = f(s ; s ; s ); (s ; s )g die
1 0 1 2 3 4
stammen.
2. Als nachstes werden die verbleibenden Zellen daraufhin untersucht, inwiefern sie kom-
patible Paare beschreiben. Ein bedingungslos kompatibles
p Paar ist (s ; s ), das in Ab-
1 2
bildung 2.4 entsprechend gekennzeichnet wird ( ). Des weiteren ndet man Paare, die
nur unter bestimmten Bedingungen kompatibel sind; dies ist zum Beispiel das Paar
30 Kapitel 2. Zustandsminimierung
(s ; s ), das kompatibel ware, wenn die Zustande s und s kompatibel waren. Dies
0 1 1 4
entnimmt man leicht der obigen Zustandfolgetafel, wonach s und s dieselben Folge- 0 1
zustande hatten, wenn s s ware. Man sagt, die Kompatibilitat von s und s fordert
1 4 0 1
oder impliziert die Kompatibilitat von s und s . Entsprechend wird die Bedingung
3
1 4
"s ; s \ in die Zelle der Halbmatrix eingetragen, die das Paar (s ; s ) beschreibt.
1 4 0 1
3. Schlielich wird gepruft, ob die gefundenen Implikationen zulassig sind. Dazu werden
alle eingetragenen Bedingungen gestrichen, die durch bereits getrichene Paare gege-
ben sind. Oft mu die Kompatibilitatstafel hierzu mehrmals durchgegangen werden.
Sobald in einer Zelle wenigstens eine Bedingung gestrichen ist, ist das entsprechende
Zustandspaar nicht mehr kompatibel.
Die schlielich verbleibenden Zellen beschreiben die kompatiblen Zustandspaare; im
Beipiel ist dies nur (s ; s ). 1 2
Beispiel 2. Es wird jetzt ein weiteres Beispiel eines vollstandig denierten Automaten
vorgestellt, das noch zusatzliche Zusammenhange verdeutlichen soll. Der Automat ist durch
folgende Zustandsfolgetafel gegeben:
[s =z ] :
+
x0 x1 ! 00 01 11 10
s0 s3 =0 s3 =0 s0 =0 s5 =0
s1 s2 =1 s3 =0 s5 =0 s4 =1
s2 s2 =1 s3 =0 s0 =0 s4 =1
s3 s3 =0 s1 =0 s5 =0 s0 =0
s4 s2 =1 s5 =0 s0 =0 s4 =1
s5 s3 =0 s3 =0 s5 =0 s0 =0
s6 s6 =0 s6 =0 s0 =0 s0 =0
s7 s1 =1 s3 =0 s0 =0 s4 =1
Man erhalt daraus die in Abbildung 2.5 dargestellte Kompatibilitatstafel, in der die Zellen
der bedingt kompatiblen Paare gestrichelt markiert sind.
Es ergeben sich das unbedingt kompatible Paar (s ; s ) sowie die bedingt kompatiblen
0 5
bildung 2.6 dargestellte Zusammenhang besteht (Der Pfeil ! bedeutet fordert die Kom-
"
patibilitat von\.).
Oensichtlich kann ein Paar die Komptibilitat eines Paares fordern, das seinerseits wieder
die Kompatibilitat weiterer Paare fordert. Damit jedoch die Bedingung der Vollstandigkeit
erfullt ist, mussen auch alle Forderungen bzw. Implikationen erfullt sein; die geschieht in der
in Abbildung 2.6 dargestellten Kette letztlich durch das Paar (s ; s ) . 0 5
Diese Uberlegungen werden im Abschnitt 2.2.4 uber den Implikationsgraph, der der Fin-
dung einer geschlossenen U berdeckung dient, weitergefuhrt.
Daruber hinaus fallt auf, da die Zustande s , s und s samtlich miteinander paarweise
1 2 7
kompatibel sind und daher zusammengefat werden konnen. Man beachte, da eine groere
Anzahl von Zustanden nur dann zu einer Aquivalenzklasse zusammengefat werden darf,
wenn jeder der beteiligten Zustande mit jedem anderen paarweise kompatibel ist!
berdeckung (Maximum Com-
Man erhalt in diesem Beispiel also schlielich die folgende U
patibles):
Kmc = f(s ; s ); (s ; s ; s ); (s ); (s ); (s )g
0 5 1 2 7 3 4 6 (2.23)
3
implizieren: mit einschlieen, einbeziehen, mit meinen (von lat. implicare, "hineinwickeln\)
2.2. Zustandsminimierung bei unvollstandig denierten Automaten 31
Beispiel 3. Es folgt jetzt erstmals ein Beispiel eines unvollstandig denierten Automaten,
das verdeutlichen soll, in welcher Weise die nicht denierten Zustande eines solchen Automa-
ten Verwendung nden. Der Automat ist durch folgende Zustandsfolgetafel gegeben:
[s =z ] :
+
x0 x1 ! 00 01 10 11
s0 s2 =1 s4 =1 s1 =1
s1 s4 =0
s2 s5 =0 s5 =1
s3 s1 =1
s4 s5 =0 s0 =0 s3 =1
s5 s2 =0 s1 =0 s2 =1
Zur Zustandsminimierung konnen diese undenierten Folgezustande gut verwendet wer-
den, da fur sie analog zu den Don't Cares\ der kombinatorischen Logik beliebige konkrete
"
Folgezustande und Ausgangsvektoren angenommen werden konnen. In diesem Beispiel kann
die Zustandsfolgetafel im Fall der Zustande s und s im Geiste wie folgt erganzt werden,
4 5
s5 s =02 s =05 s =0 s =1
1 2
Analoge Uberlegungen bei den ubrigen hinsichtlich Kompatitbilitat zu prufenden Zu-
standspaaren fuhren zu der in Abbildung 2.7 gezeigten Halbmatrix.
Man erhalt die kompatiblen Paare, die man zur Gesamtklasse K der kompatiblen Paare g
zusammenfassen kann:
Kg = f(s ; s ); (s ; s ); (s ; s ); (s ; s ); (s ; s ); (s ; s ); (s ; s ); (s ; s ); (s ; s )g
0 1 0 2 0 3 1 2 1 3 1 4 2 3 2 5 4 5 (2.24)
Daraus bildet man durch Zusammenfassen samtlich paarweise kompatibler Zustande die Men-
ge K der "Maximum Compatibles\:
mc
Kmc = f(s ; s ; s ; s ); (s ; s ); (s ; s ); (s ; s )g
0 1 2 3 1 4 2 5 4 5 (2.25)
Die Menge, die gerade die Mengen kompatibler Zustande enthalt, so da alle Zustande erfat
sind, ist K : u
Ku = f(s ; s ; s ; s ); (s ; s )g
0 1 2 3 4 5 (2.26)
2.2.3 Verschmelzungsgraph
Der Verschmelzungsgraph bietet | zumindest fur Automaten mit nicht allzu vielen Zu-
standen | die Moglichkeit, die "Maximum Compatibles\ direkt abzulesen, wahrend das
2.2. Zustandsminimierung bei unvollstandig denierten Automaten 33
Verfahren nach Paull/Unger nur die kompatiblen Paare liefert. Daruber hinaus gibt der
Verschmelzungsgraph eine wesentlich anschaulichere Darstellung der Kompatibilitaten eines
Automaten als die Kompatibilitatstafel (Halbmatrix) nach Paull/Unger.
Der Verschmelzungsgraph hat auf den ersten Blick groe Ahnlichkeit mit dem Zustands-
graphen, ist jedoch im Gegensatz zu diesem ein ungerichteter Graph und macht keine Aussage
uber Zustandsubergange usw. sondern uber Kompatibilitaten von Zustandspaaren. Die Kno-
ten des Verschmelzungsgraphen sind die Zustande des zu untersuchenden Automaten, und
jede Kante kennzeichnet ein (u. U. bedingt) kompatibles Zustandspaar.
Fur das dritte Beispiel aus Abschnitt 2.2.2 hat der Verschmelzungsgraph das in Abbildung
2.8 gezeigte Aussehen.
Das Vorgehen zur Erstellung des Graphen ist im Prinzip das gleiche wie beim Verfahren
von Paull/Unger. Nachdem fur jeden Zustand des Automaten ein Knoten gezeichnet ist,
werden ausgehend von der Zustandsfolgetabelle und unter Ausnutzung undenierter Folge-
zustande kompatible Paare miteinander verbunden. Handelt es sich um ein bedingt kompa-
tibles Paar, so wird die Implikation an der Kante notiert. Schlielich werden die Kanten,
die sich aus unberechtigten Implikationen ergeben haben, wieder gestrichen. Im Beispiel ist
hiervon nur eine Kante betroen, diese ist in Abbildung 2.8 gestrichelt markiert. Gegebenen-
falls mu der Graph mehrmals durchgegangen werden, um alle unzulassigen Implikationen zu
erfassen. Wenn dieser Proze abgeschlossen ist, konnen am Verschmelzungsgraphen folgende
Informationen abgelesen werden:
1. Jede noch verbliebene Kante kennzeichnet ein kompatibles Paar. Man erhalt so die
Gesamtklasse K der kompatiblen Paare, die im Falle des Beispiels schon in Abschnitt
g
Abschnitt 2.2.2). Man beginnt hierbei mit dem Polygon hochster Ordnung (Knoten-
zahl). Polygone geringerer Ordnung, die lediglich einen Subgraphen eines anderen Po-
lygons hoherer Ordnung darstellen, werden ignoriert.
4 Im herkommlichen Sinne bilden zwei Ecken naturlich kein Polygon, da ein "Zweieck\ keine Flache auf-
spannt. Im Fall des Verschmelzungsgraphen soll der Beri aber so allgemein gefat werden, damit die Bedin-
berdeckung erfullt bleibt.
gung der Vollstandigkeit der U
34 Kapitel 2. Zustandsminimierung
die durch Uberschneidung Polygone hoherer Ordnung miteinander verbinden, ohne da
durch die Streichung Zustande verloren gehen (Bedingung der Vollstandigkeit). So er-
gibt sich die Menge K (Abschnitt 2.2.2).
u
Hier enden die Leistungen des Verschmelzungsgraphen. Weiter oben wurde schon gesagt, da
die tatsachliche Minimalanzahl der Zustande gegeben ist durch die Anzahl der Elemente einer
Menge K mit pwr (K ) pwr (K ) pwr (K ), da auch die Bedingung der Geschlos-
min u min mc
senheit erfullt sein mu. Im Falle des Beispiels enthalt K = f(s ; s ; s ; s ); (s ; s )g zwar
u 0 1 2 3 4 5
alle Zustande des Ursprungsautomaten, jedoch entnimmt man aus dem Verschmelzungsgra-
phen in Abbildung 2.8, da die kompatible Menge (s ; s ; s ; s ) nicht nur die Kompatibilitat
0 1 2 3
des bereits in K enthaltene Paares (s ; s ), sondern auch die der Paare (s ; s ) und (s ; s )
u 4 5 1 4 2 5
fordert. Diese letzten beiden Paare stellen Bedingungen dar, die eigentlich mit enthalten
sein muten, da die kompatible Menge (s ; s ; s ; s ) nur mittels aller durch sie geforderten
0 1 2 3
2.2.4 Implikationsgraph
Der Implikationsgraph ist ein gerichteter Graph, der eine Aussage uber die Reihenfolge der
Implikationen kompatibler Zustandspaare eines Automaten macht. Mit seiner Hilfe konnen
viel einfacher als mit dem Verschmelzungsgraphen vollstandige und geschlossene Uberdeckun-
gen gefunden werden, die eine minimale Anzahl von kompatiblen Paaren enthalten (K ). min
Jeder Knoten des Implikationsgraphen ist ein (im allgemeinen bedingt) kompatibles Zu-
standspaar des Automaten. Die Kanten des Graphen bezeichnen die Richtung der Impli-
kationen zwischen den einzelnen Zustandspaaren. Jede gerichtete Kante (Pfeil !) macht
die Aussage "Paar (si ; sj ) fordert (impliziert) die Kompatibilitat von Paar (sk ; sl )\. Jeder
(nicht unbedingt zusammenhangende) Subgraph im Implikationsgraphen, der alle Zustande
der ursprunglichen Automaten enthalt, und aus dem kein Pfeil herausweist, reprasentiert
eine vollstandige und geschlossene Uberdeckung, da dann alle Forderungen hinsichtlich der
Kompatibilitat weiterer Paare erfullt sind. Den Implikationsgraphen fur das dritte Beispiel
aus dem vorhergehenden Abschnitt zeigt Abbildung 2.9.
Man entnimmt diesem die beiden vollstandigen und geschlossenen Uberdeckungen (ge-
strichelt)
Kmin1 = fsa1 ; sb1; sc1 g := f(s ; s ); (s ; s ); (s ; s )g
0 1 2 3 4 5 (2.27)
und K min2 = fsa ; sb ; sc
2 2 2 g := f(s ; s ); (s ; s ); (s ; s )g:
0 3 1 4 2 5 (2.28)
Auerdem ist in der Abbildung eine weitere Uberdeckung (strichpunktiert) eingezeichnet,
die zwar alle Zustande des Ausgangsautomaten enthalt, jedoch nicht geschlossen ist, da |
erkennbar an den aus dem Subgraphen herausfuhrenden Pfeilen | insgesamt drei implizierte
Bedingungen in der Uberdeckung nicht enthalten sind, womit die Bedingung der Geschlos-
senheit verletzt ist.
Mit den gefundenen Uberdeckungen K und K
min1 lassen sich nun vereinfachte Zu-
min2
standsfolgetafeln aufstellen:
Kmin1 : [s =z ] :
+
x0x1 ! 00 01 10 11
sa1 sc1 =0 sb1 =1 sc1 =1 sa1 =1
sb1 sc1 =0 sc1 =1 sa1 =1
sc1 sb1 =0 sc1 =0 sa1 =0 sb1 =1
Kmin2 : [s =z ] :
+
x0x1 ! 00 01 10 11
sa2 sc2 =1 sb2 =1 sb2 =1
sb2 sb2 =0 sc2 =0 sa2 =0 sa2 =1
sc2 sc2 =0 sc2 =1 sb2 =0 sc2 =1
36 Kapitel 2. Zustandsminimierung
Kapitel 3
Schaltwerkentwurf
3.1 Umwandlung Mealy/Moore{Automat
Es wurde schon angedeutet, da Mealy{ und Moore{Automat gleichwertig sind und daher
ineinander uberfuhrt werden konnen. Hierauf soll an dieser Stelle noch einmal eingegangen
werden. Die bei der Umwandlung erhaltenen Ergebnisse konnen im allgemeinen noch ver-
einfacht werden, da sich gelegentlich aquivalente Zustande ergeben. Die hierfur benotigten
Denitionen und Verfahren der Zustandsminimierung wurden im vorausgehenden Kapitel
behandelt.
s s s s z
0 3 1 0 0
s s s s z
1 2 1 2 1
s s s s z
2 0 3 1 2
3 0 3 3 3
Es ist jedem Wert si ein Wert z i zugeordnet. Da beim Mealy{Automaten z i sowohl von
si als auch von xj abhangt, wird bei der Umwandlung in einen Mealy{Automaten in der
obigen Zustandsfolgetafel jedem Paar si ; xj der entsprechende Wert z i zugeordnet, so da
man folgende Tafel erhalt:
[s =z ] :
+
x! x x x
s s =z s =z s =z
0 1 2
s s =z s =z s =z
0 3 3 1 1 0 0
s s =z s =z s =z
1 2 2 1 1 2 2
s s =z s =z s =z
2 0 0 3 3 1 1
3 0 0 3 3 3 3
s s =z s =z
0 1 0 2 1
s s =z s =z
1 0 2 0 1
2 2 0 0 1
Fur den Moore{Automaten werden die neuen Zustande s0i eingefuhrt, und man erhalt
die folgende Tafel:
[s0 =z ] :
+
x! x x z
(x ; s ) 7! s0 s0 s0 z
0 1
(x ; s ) 7! s0 s0 s0 z
0 0 0 1 4 0
(x ; s ) 7! s0 s0 s0 z
0 1 1 0 3 2
(x ; s ) 7! s0 s0 s0 z
0 2 2 2 5 0
(x ; s ) 7! s0 s0 s0 z
1 0 3 2 5 1
(x ; s ) 7! s0 s0 s0 z
1 1 4 0 3 1
1 2 5 0 3 1
Wie bereits erwahnt, kann nun noch uberpruft werden, ob in den nach der Umwandlung er-
haltenen Automaten aquivalente Zustande enthalten sind, wofur z. B. das bereits vorgestellte
Verfahren nach Huffman/Mealy geeignet ist.
3.2 Zustandskodierung
3.2.1 Einfuhrung
Der Zustandsvektor s ist deniert als ein Boolescher Vektor, bei dem stets genau eine
Komponente von null verschieden ist. Damit konnen durch einen Zustandsvektor mit m
Komponenten auch nur m verschiedene Zustande ausgedruckt werden. Wurde man obige
Festlegung fallenlassen, waren aber 2m verschiedene Werte fur s moglich. Da die Kompo-
nenten des Zustandsvektors ublicherweise mit Hilfe von Flip
ops gespeichert werden, liegt es
aus Ersparnisgrunden nahe, einen Vektor einzufuhren, der mit einer entsprechend geringeren
Anzahl von Komponenten alle Zustande des Automaten darstellen kann.
Diesen Vektor deniert man als den U bergangsvektor u, und fuhrt zusatzlich die Kodier-
matrix C ein. Abbildung 3.1 zeigt einen Mealy{Automaten, bei dem mit Hilfe dieser neuen
Groen eine Zustandskodierung vorgenommen wurde.
Es ist zu erkennen, da zur Beschreibung des eigentlichen Automaten weiterhin der
herkommliche Zustandsvektor s verwendet wird, so da wie bisher Gl. (1.6) und Gl. (1.7)
benutzt werden konnen. Die Zustande werden jedoch in Form des U bergangsvektors u ge-
speichert, in welchem der Zustandsvektor unter Verwendung der Kodiermatrix C wie folgt
kodiert ist:
u s + C
= (3.1)
s u C
= T
(3.2)
Hierbei ist C die Transponierte der Matrix C , also diejenige Matrix, bei der gegenuber C
T
Zeilen und Spalten vertauscht sind. Durch Einsetzen in Gl. (1.6) und Gl. (1.7) erhalt man
die folgende Darstellungsform, die den Automaten jetzt mit Hilfe des Ubergangsvektors u
beschreibt:
u +
= u C + F (x) + C
T
(3.3)
z = u C + G(x)
T
(3.4)
3.2. Zustandskodierung 39
C mu demnach eine Matrix vom Typ (m; n) sein. Des weiteren mu gefordert werden, da
2
die Zeilen von C paarweise verschieden sind, wenn davon ausgegangen wird, da der zu be-
schreibende Automat keine paarweise aquivalenten Zustande hat. Die Elemente von C sind
der Einfachheit halber die Booleschen Konstanten 0 und 1, und man wahlt C ublicherweise
wie folgt, wenn die im nachsten Abschnitt behandelte optimale Zustandskodierung zunachst
auer acht gelassen wird:
0
0 01
0 B0 1C
C (m = 2) := 1
; C (m 2 [3; 4]) := B@ 1 0A
C;
0
1 1
0 0 01
B0 0 1C
B C (3.5)
B0 1 0C
B C
B
1C
C (m 2 [5; 8]) := BBB 01 1
0 0C
C
C
; :::
B C
B1 0 1C
B C
@1 1 0A
1 1 1
Ist z. B. ein Zustandsvektor mit m = 4 Komponenten, also s = (s0 s1 s2 s3 ), zu
kodieren, so wurde man nach Gl. (3.1) erhalten:
0
0 01
B0 1C
u = (s 0 s1 s2 s ) + B
3 @1 0A
C (3.6)
1 1
1
d xe ist die kleinste ganze Zahl x.
40 Kapitel 3. Schaltwerkentwurf
# Gl. (1.15)
= (s + s s + s )
2 3 1 3 (3.7)
= (u u ) 0 1 (3.8)
In umgekehrter Richtung gilt mit Gl. (3.2):
0 0 1 1
s = (u 0 u1 )
0 1 0 1
(3.9)
# Gl. (1.17)
= (u u u u u u
0 1 0 1 0 1 u0 u1 ) (3.10)
= (s s s s ) 0 1 2 3 (3.11)
Die Form von Gl. (3.2) scheint zunachst etwas ungewohnlich. Bekanntlich gilt in der li-
nearen Algebra A A = I wobei A die Invertierte der Matrix A und I die Einheits-
1 1
oder Identitatsmatrix ist. Damit mute man Gl. (3.2) eigentlich in der Form s = u + C 1
anschreiben konnen. Dies ist jedoch nicht moglich, da die Matrix C u. a. quadratisch sein
mute, um invertierbar zu sein, was sie jedoch nach Gl. (3.5) oensichtlich niemals ist. Uber-
dies ist die Operation + nicht linear, weshalb obige aus der linearen Algebra abgeleiteten
Uberlegungen unzulassig sind.
Um zu zeigen, da statt dessen tatsachlich Gl. (3.2) verwendet werden mu, wird im
folgenden exemplarisch ausgehend von Gl. (3.7) und Gl. (3.8) der zwischen Gl. (3.10) und
Gl. (3.11) bestehende Zusammenhang errechnet. Aus Gl. (3.7) und Gl. (3.8) erhalt man:
s2 + s3
=u ; u0= s s (3.12)
;
0 2 3
s +s =u
1 3 1 u = s s
1 1 3 (3.13)
Damit werden die einzelnen Komponenten des Vektors in Gl. (3.10) gebildet. Dabei wird je-
desmal die Denition des Zustandsvektors s verwendet, wonach stets genau eine Komponente
von s 1 ist und alle ubrigen 0 sind:
u0 u1 = s s s 1 2 3 (3.14)
# Denition von s
;u 0 u 1 := s 0 (3.15)
u0 u1 = s s (s + s )
2 3 1 3 (3.16)
= s s s 1 2 3 (3.17)
# Denition von s
;u 0 u 1 := s 1 (3.18)
u0 u1 = s s (s + s )
1 3 2 3 (3.19)
= s s s 2 1 3 (3.20)
# Denition von s
;u 0 u 1 := s 2 (3.21)
u0 u1 = (s + s ) (s + s )
2 3 1 3 (3.22)
= s s +s s +s s +s
1 2 2 3 1 3 3 (3.23)
= s s +s 1 2 3 (3.24)
3.2. Zustandskodierung 41
# Denition von s
;u 0 u
1 := s 3 (3.25)
Damit ist fur das Beispiel eines aus vier Komponenten bestehenden Zustandsvektors die
Gultigkeit von Gl. (3.2) gezeigt. Mit Hilfe der vollstandigen Induktion lat sich diese Gultig-
keit nun fur beliebige s und C beweisen, wenn man dazu die in Gl. (3.5) gegebene Bil-
dungsvorschrift fur die Matrix C verwendet: Oensichtlich erhalt man nach Gl. (3.5) eine
Kodiermatrix der nachst{hoheren Ordnung, indem man die Kodiermatrix der aktuellen Ord-
nung zweimal untereinander schreibt und links eine weitere Spalte anfugt, die in der oberen
Halfte mit Nullen und in der unteren mit Einsen gefullt ist. Auf einen solchen Beweis soll
aber im Rahmen dieses Textes verzichtet werden.
In der Praxis wird der strengen Beschreibung nach Gl. (3.3) und Gl. (3.4) ubrigens kei-
ne groere Beachtung geschenkt. Vielmehr wird der Automat gleich unter ausschlielicher
Verwendung des Ubergangsvektors u beschrieben, so da der ursprungliche Zustandsvek-
tor s schlielich nicht mehr explizit auftaucht. Mit Hilfe einer kodierten U bergangsfunktion
f (x; u) und einer kodierten Ausgangsfunktion g (x; u) kann man also einfach schreiben :
c c 2
u+
= f (x; u)
c
(3.26)
z = g (x; u)
c
(3.27)
Damit kann das in Abbildung 3.2 dargestellte Blockschaltbild gezeichnet werden. Diese
vereinfachte Beschreibung wird im folgenden stets angewendet, wenn ein Automat mit Hilfe
eines Ubergangsvektors u beschrieben werden soll.
paarweise verschiedene Kodeworter, die den Zeilen der Kodiermatrix C entsprechen. Uber-
legungen aus der Kombinatorik sowie die Tatsache, da bestimmte Arten der Codierung in
Bezug auf die zu verwendende Schaltnetzstruktur gleichwertig sind, fuhren zu der Erkenntnis,
da es insgesamt k technisch relevante Moglichkeiten der Zustandskodierung gibt mit
(2n 1)!
k= ; n = dlog (m)e: (3.28)
(2n m)!n! 2
Anstatt obige Gl. in einem Exkurs in die Kombinatorik exakt abzuleiten, soll kurz erklart wer-
den, wie k(m; n) durch Ausprobieren graphisch\ bestimmt werden kann, und insbesondere,
"
welche Kodierungsalternativen sich im einzelnen ergeben.
1. Man zeichnet einen Kreis und unterteilt diesen in 2n Sektoren, die den einzelnen Ko-
dewortern bzw. den moglichen Werten von u entsprechen.
2. Auf die Sektoren verteilt man die m zu kodierenden inneren Zustande des Automaten,
wobei jeder Sektor mit hochstens einem Zustand belegt wird. Fur m < 2n bleiben auf
diese Weise naturlich auch Sektoren unbesetzt.
3. Die vorhergehenden beiden Schritte wiederholt man in der gegebenen Reihenfolge so
oft, bis man alle Belegungen des Kreises gefunden hat, die im Sinne der Geometrie
zueinander samtlich paarweise inkongruent sind: Zwei solcher Kreise sind genau dann
zueinander inkongruent, wenn sie sich in Bezug auf ihre Sektorenbelegung mit Hilfe der
Kongruenzabbildungen Drehung, Spiegelung und Parallelverschiebung nicht aufeinan-
der abbilden lassen.
;
Dieser Sachverhalt ist in Abbildung 3.3 fur den Fall n = 2 ( 2n = 4 Kreissektoren)
veranschaulicht. Um den Aspekt der Geometrie besonders hervorzuheben, sind die
Zustande nicht schriftlich eingetragen, sondern durch unterschiedliche Fullmuster sym-
bolisiert.
Alle durch Drehung oder/und Spiegelung der Ursprungskreisgur erzeugten neuen Fi-
guren reprasentieren keine weiteren relevanten Kodierungsmoglichkeiten, da hierbei die
Abfolge der Zustande auf dem Kreis beibehalten bleibt und so immer wieder dieselben
Zustandspaare logisch benachbarte Kodeworter erhalten.
3.2. Zustandskodierung 43
Man ndet auf diese Weise, da sich fur m = 3; 4 und n = 2 nicht mehr als k(m; n) = 3
zueinander paarweise inkongruente Kreisguren ergeben, die den technisch relevanten
Moglichkeiten der Kodierung entsprechen. Dieses Ergebnis wird in Abschnitt 3.2.2.3
noch in einem Beispiel angewendet.
Durch Auswertung von Gl. (3.28) stellt man allerdings fest, da es fur m 5 schwie-
rig wird (k 140), durch Ausprobieren aller Alternativen | einige sind in Abbildung 3.4
zu sehen | diejenige zu nden, die mit dem geringstmoglichen technischen Aufwand reali-
siert werden kann. Um eben diese optimale Zustandskodierung zu nden, die sich mit einer
moglichst einfachen kombinatorischen Schaltung aufbauen lat, wird im folgenden ein heuri-
stisches Verfahren vorgestellt, das auf der Optimierung des zugehorigen Karnaugh/Veitch{
(KV{) Diagramms beruht.
Es soll daher an das aus den Grundlagen der Digitaltechnik bekannte KV{Diagramm
noch einmal erinnert werden. Das KV{Diagramm ist eine Moglichkeit der graphischen Be-
schreibung einer kombinatorischen Schaltung und besteht aus einem rechteckigen Schema
mit einer bestimmten Anzahl von in Zeilen und Spalten angeordneten Feldern. Jedes KV{
Diagramm beschreibt die Abbildung eines Eingangsvektors x mit n Komponenten auf genau
ein Ausgangsbit z . Dazu werden die Zeilen und Spalten des Diagramms so mit den Werten
der einzelnen Komponenten von x beschriftet, da sich fur jeden der 2n moglichen Werte von
x genau ein Feld ergibt. Das KV{Diagramm kann zur Minimierung einer kombinatorischen
Funktion verwendet werden, indem fur jeden Minterm der ausgezeichneten disjunktiven Nor-
malform der Funktion in dem entsprechenden Feld eine 1 und in allen ubrigen eine 0 notiert
wird. Benachbarte Einsen werden nun zu moglichst wenigen und moglichst groen Rechtecken
der Seitenlange 2 ( = 0; 1; 2; : : :) zusammengefat. Jedes so gebildete Rechteck reprasentiert
einen Term, der disjunktiv in die minimierte Funktion eingeht.
In dem in Abbildung 3.5 dargestellten Beispiel mit z = z (x := ( x x x x )) erhalt
0 1 2 3
da ein moglichst eng gepacktes Auftreten von Einsen im KV{Diagramm ein Kriterium fur
eine besonders einfache Gestalt der minimierten Schaltfunktion und damit fur eine technische
Realisierung mit besonders wenigen Gattern ist.
Aufbauend auf dieser Uberlegung werden im folgenden Abschnitt drei Regeln formuliert,
deren Anwendung auf eine moglichst einfache technische Realisierung der Schaltfunktionen
zur Zustandskodierung fuhren soll, indem eine besonders gunstige Konstellation der Einsen
in den zugehorigen KV{Diagrammen angestrebt wird.
44 Kapitel 3. Schaltwerkentwurf
Regel 1. Zustande, die fur gleiche Eingangsvektoren gleiche Folgezustande besitzen, sol-
len logisch benachbarte Kodeworter erhalten, also solche Kodeworter, die sich an moglichst
wenigen Stellen unterscheiden.
Als Beispiel dient der in Abbildung 3.6 durch eine Zustandsfolgetafel gegebene Auto-
mat. Nach dieser Regel sollten also s und s benachbarte Codeworter erhalten, da sich
0 1
in beiden Fallen fur x = 0 der Folgezustand s = s einstellt. Fur x = 1 ergeben sich je-
+
2
doch die unterschiedlichen Folgezustande s und s , die wiederum | siehe Abbildung 3.6 |
1 3
die Folgezustande s oder s haben. Es ist also sinnvoll, auch fur diese beiden letztgenann-
2 3
ten Zustandspaare logisch benachbarte Kodeworter vorzusehen, sofern dies moglich ist. Bei
komplexeren als dem im Beispiel genannten Automaten geht bei der Verfolgung der Nachbar-
schaftsempfehlung uber mehrere Schritte anhand der Zustandsfolgetafel schnell die Ubersicht
verloren. Leichter zu handhaben ist der Implikationsgraph, auf dem Regel 2 aufbaut:
Regel 2. Es ist ein Implikationsgraph des Automaten ahnlich wie in Abschnitt 2.9 zu zeich-
nen, jedoch ohne Beachtung der Werte des Ausgangsvektors, sondern in Abhangigkeit des
Eingangsvektors. Zustandspaare, deren Kompatibilitat durch ein nach Regel 1 als benachbart
deniertes Paares impliziert wird, sollten nach Moglichkeit ebenfalls benachbart sein.
Abbildung 3.7 zeigt den Implikationsgraphen fur das Beispiel. Man entnimmt diesem nach
3.2. Zustandskodierung 45
Regel 2 sofort die Zustandspaare, die schon oben durch (mitunter umstandliche) Analyse der
Zustandsfolgetafel gefunden wurden: Die Kompatibilitat von (s ; s ) fordert die Kompatibi-
0 1
litat von (s ; s ), welches wiederum die von (s ; s ) fordert. Bei diesem letzten Paar endet
1 3 2 3
jedoch die Moglichkeit, die Nachbarschaft weiterer Paare zu fordern, da die Kompatibilitat
dieses Paares nach Abbildung 3.7 oensichtlich in Abhangigkeit von x durch unterschiedliche
Paare impliziert wird. U berhaupt nimmt die Wirksamkeit der Nachbarschaftsempfehlung von
Paar zu Paar immer mehr ab. Schlielich konnen nicht in letzter Konsequenz alle Zustande
des Automaten logisch benachbarte Kodeworter erhalten.
Regel 3. Zustande, die fur logisch benachbarte Eingangsvektoren Folgezustande des glei-
chen gegenwartigen aktuellen Zustandes sind, sollten benachbarte Kodeworter erhalten.
Im Beispiel sind dies nach Abbildung 3.6 oensichtlich (s ; s ) und (s ; s ).
1 2 2 3
hier s = ( s0 s1 s2 s3 )
und daher der Uberfuhrungsvektor u = ( u u )): 0 1
[s =z ] : x!
+
0 1
s s =0 s =0 0 1 2
s s =0 s =1 1 3 0
s s =1 s =0 2 0 3
s s =1 s =1 3 3 1
Aus dem im Zusammenhang mit Abbildung 3.3 vorgestellten Verfahren ergeben sich die
folgenden drei technisch relevanten Kodierungsmoglichkeiten:
u u ! 00 01 11 10
0 1
Moglichkeit A s s s s 0 1 2 3
Moglichkeit B s s s s 0 1 3 2
Moglichkeit C s s s s 0 3 1 2
In der folgenden Tabelle ist dargestellt, welche Zustandspaare nach welchen in Abschnitt
3.2.2.2 formulierten Regeln logisch benachbarte Kodeworter erhalten sollten und bei welchen
der drei Kodierungsmoglichkeiten diese Forderungen erfullt sind.
Regel Zustandspaar A B C
1 (s ; s ) 1
3
2 (s ; s )
0 1
(s ; s ) 0
2
(s ; s )
2 3
3 (s ; s ) 0 3
(s ; s ) 1 2
(s ; s ) 1
3
Da die Einhaltung von Regel 1 die hochste und von Regel 3 die niedrigste Prioritat geniet,
ist oensichtlich Kodierungsart B die gunstigste, gefolgt von A und C. Damit ergibt sich fur
den Fall B folgende Zustandsfolgetafel bezuglich des Ubergangsvektors u = (u ; u ): 0 1
[(u u ) =z ] :
0 1
+
x! 0 1
(s 7!) 00 01=0 10=0
0
Daraus lat sich die Kodiermatrix C direkt ablesen, die nur zufallig die gleiche Form hat wie
in Gl. (3.5) vorgegeben:
0
0 01
C = BB@ 01 10 CCA (3.29)
1 1
Jetzt konnen auch die Booleschen Gln. ermittelt werden, die den Automaten mit Hilfe
des Ubergangsvektors u beschreiben. Aus der Zustandsfolgetafel lassen sich die in Abbildung
3.9 gezeigten KV{Diagramme extrahieren.
Eingangsseparation
FF{Typ Charakteristische Gleichung u := 0 u := 1
JK u = ju+ku
+
j=u k=u + +
T u = tu+tu = tu
+
t=u u +
D u = du+du = d
+
d=u +
SR u = s u + r u mit s r = 0 s = u u r = u u
+ ! + +
fallt auf, da die Eingangsgroen der Flip
ops in den charakteristischen Gleichungen im allg.
nicht explizit stehen. Es mussen daher die Eingangsgroen aus der charakteristischen Glei-
chung des jeweiligen Flip
optyps separiert werden. Dazu wird die charakteristische Gleichung
fur u := const betrachtet (siehe die rechte Halfte von Tabelle 3.1).
Die Erlauterung der Schaltwerksynthese mit getakteten Flip
ops erfolgt anhand eines
Beispiels. Es ist ein Moore{Automat gegeben, der einen sechsstelligen Ringzahler (Modulo{
6{Zahler) darstellt, der in Abhangigkeit des Eingangsvektors x = ( x ) aufwarts (x = 0) oder
abwarts (x = 1) zahlt. Die Zustandsfolgetafel ist die folgende:
[s =z
+
dez ]: x! 0 1 z dez
s0 s1 s5 0
s1 s2 s0 1
s2 s3 s1 2
s3 s4 s2 3
s4 s5 s3 4
s5 s0 s4 5
die, wie man im folgenden sehen wird, wie Don't Cares behandelt werden und daher
besonders beachtet werden mussen: Beim Einschalten der Versorgungsspannung des
Schaltwerks werden die einzelnen Flip
ops zufallig einen beliebigen Zustand einneh-
men, unter Umstanden also auch einen der ungenutzten. Da die gewunschte Funktion
des Schaltwerks sich aber nur im Bereich der genutzten Zustande abspielt, ist es un-
erlalich, da der Automat bei konstantem Eingangsvektor irgendwann mit Sicherheit
einen der genutzten Zustande einnimmt. Dies kann direkt geschehen, es darf aber auch
zuvor eine Reihe weiterer ungenutzter Zustande durchlaufen werden.
3.3. Entwurf von Synchronschaltwerken 49
Tabelle 3.2 zeigt die Zustandsfolgetafel des Beispielautomaten mit kodierten Zustanden.
An Stelle der undenierten Folgezustande (ursprunglich Don't Cares) der ungenutzten
Zustande sind bereits in Klammern () konkrete Werte eingetragen, die sich aus der
nachfolgend vorgenommenen Ermittlung der U bergangsfunktion u (u) mit Hilfe von
+
KV{Diagrammen ergeben.
x u2 u1 u0 u+
2
u+
1
u+
0
0 0 0 0 0 0 1
0 0 0 1 0 1 0
0 0 1 0 0 1 1
0 0 1 1 1 0 0
0 1 0 0 1 0 1
0 1 0 1 0 0 0
0 1 1 0 (1) (1) (1)
0 1 1 1 (0) (0) (0)
1 0 0 0 1 0 1
1 0 0 1 0 0 0
1 0 1 0 0 0 1
1 0 1 1 0 1 0
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 (0) (0) (1)
1 1 1 1 (1) (1) (0)
Tabelle 3.2: Kodierte Zustandsfolgetafel, Beispiel zur Schaltwerksynthese mit Flip ops
2. Bestimmung der minimierten Ubergangsfunktion. Aus Tabelle 3.2 entwickelt
man die in Abbildung 3.10 gezeigten KV{Diagramme.
Zur Aufstellung der minimierten U bergangsfunktion u (x; u) werden die den unge-
+
noch explizit von ui bzw. ui abhangen | in Abbildung 3.10 durch dicke Trennlinien
angedeutet.
Dabei werden die Don't Cares willkurlich auf konkrete Werte gesetzt, was dazu fuhrt,
da den ungenutzten Zustanden bestimmte Folgezustande zugewiesen werden. Es mu
nun uberpruft werden, ob die ungenutzten Zustande bei konstantem x mit Sicherheit
verlassen werden. In Tabelle 3.2 sind die willkurlich gesetzten Werte der Don't Cares in
Klammern angegeben. Damit ergeben sich ausgehend von den ungenutzten Zustanden
folgende Uberg ange:
x=0 ; u: (1 1 0) ! (1 1 1) ! (0 0 0) (3.33)
x=1 ; u: (1 1 1) ! (1 1 0) ! (0 0 1) (3.34)
50 Kapitel 3. Schaltwerkentwurf
Man erkennt, da bei konstantem Eingangsvektor spatestens nach einem ungenutzten
Zwischenzustand ein denierter Zustand angelaufen wird, so da der Automat seine
gewunschte Funktion aufnimmt. Die gefundenen minimierten Funktionen konnen also
unverandert beibehalten werden | andernfalls hatte man sich eine andere Ausnutzung
der Don't Cares uberlegen mussen. Man erhalt also aus Abbildung 3.10:
u+
0
= u 0 (3.35)
u1
+
= u (x u + x u ) + u (x u u + x u u )
1 0 0 1 0 2 0 2 (3.36)
u+
2
= u (x u + x u ) + u (x u u + x u u )
2 0 0 2 0 1 0 1 (3.37)
3. Bestimmung der Eingangsbeschaltung der Flip
ops. Zur Realisierung des Mo-
dulo{6{Zahlers sollen JK{Flip
ops verwendet werden. Um deren Eingangsbeschaltung
zu ermitteln, sind insbesondere die Gleichungen fur die Eingangsseparation aus Tabelle
3.1 wichtig:
i (ui
u+ := 0) = ji (3.38)
ui (ui := 1) = ki
+
(3.39)
3.3. Entwurf von Synchronschaltwerken 51
Damit bestimmt man die Beschaltung der Flip
opeingange ji und ki in Abhangigkeit
von x und u:
u+
0
(u0
:= 0) = j 0 = 1 (3.40)
u (u := 1) = k
+
0 0 0 = 1 (3.41)
u+
1
(u1 := 0) = j 1 = x u0 u2 + x u0 u2 (3.42)
= (x u ) (u
0 0 u ) 2 (3.43)
u1 (u1
+
:= 1) = k 1 = xu +xu
0 0 (3.44)
= x u0 (3.45)
u+
2
(u2 := 0) = j 2 = x u0 u1 + x u0 u1 (3.46)
= (x u ) (x u )
0 1 (3.47)
u2 (u2
+
:= 1) = k 2 = xu +xu
0 0 (3.48)
= x u0 (3.49)
Aus den so gewonnenen Schaltfunktionen entnimmt man, da sich zur Realisierung
des kombinatorischen Anteils des Schaltwerks Antivalenz{ und Und{Gatter anbieten.
Damit kann man die in Abbildung 3.11 gezeigte Schaltung aufbauen.
4. Dekodierung der Ausgange. Wenn die Aufgabenstellung dies erfordert, wird jetzt
noch mit Hilfe weiterer kombinatorischer Logik eine Abbildung des Ubergangsvektors u
52 Kapitel 3. Schaltwerkentwurf
Fur das Beispiel aus dem vorhergehenden Abschnitt soll die Beschaltung der Und{Matrix
uberlegt werden. Wegen der einfachen Form der charakteristischen Gleichung des D{Flip
ops
(u = d, siehe Tabelle 3.1) konnen die U
+ bergangsfunktionen in der disjunktiven Normal-
form direkt aus den KV{Diagrammen in Abbildung 3.10 abgelesen werden, ohne da die
sonst wegen der Eingangsseparation notigen Beschrankungen beachtet werden mussen | die
in Abbildung 3.10 eingetragenen Trennlinien durfen bei der Zusammenfassung von Termen
uberschritten werden. Man erhalt:
u+
0
=d 0 = u 0 (3.50)
u =d
+
1 1 = xu u +xu u +xu u u +xu u
0 1 0 2 0 1 2 0 1 (3.51)
u =d
+
2 2 = xu u +xu u u +xu u +xu u
0 2 0 1 2 0 1 0 2 (3.52)
Damit werden allerdings die ungenutzten Zustande in anderer Weise verlassen, als im
vorhergehenden Abschnitt. Jedoch wird auch diesmal spatestens nach einem Zwischenschritt
3.4. Entwurf von Asynchronschaltwerken 53
ein denierter Zustand erreicht, so da die gefundenen Schaltfunktionen nicht abgeandert
werden mussen:
x=0 ; u: (1 1 0) ! (1 1 1) ! (1 0 0) (3.53)
x=1 ; u: (1 1 1) ! (1 1 0) ! (0 1 1) (3.54)
Die gefundenen Schaltfunktionen werden in der in Abbildung 3.13 gezeigten Weise in
der Und{Matrix des R{PAL{Bausteins realisiert. Zur Einkopplung der Eingangsgroe x wird
ein Ruckfuhrungszweig ohne Flip
op verwendet. Meist stellt der Baustein noch eine weitere
Matrix zur Verfugung, mit der aus dem Ubergangsvektor u der Ausgangsvektor z erzeugt
werden kann. Hierauf soll in diesem Beispiel abermals verzichtet werden.
sich also direkt eine Beschreibung nach Gl. (3.26) und Gl. (3.27).
In den Grundlagen der Digitaltechnik wurden bereits Hazards bei kombinatorischen Schal-
tungen behandelt. Ein Hazard entsteht, wenn sich nur eine Komponente des Eingangsvektors
andert und dadurch ein anderer Primterm der Schaltfunktion angesprochen wird als vor der
nderung. Durch unterschiedliche Gatterlaufzeiten der Teilschaltnetze, die diese Primterme
A
54 Kapitel 3. Schaltwerkentwurf
Selbst wenn bei einem Asynchronschaltwerk der Eingangsvektor x frei von Hazards ist
und die in Abschnitt 1.4.3.4 formulierten Voraussetzungen gelten, kann das Schaltverhalten
des Ubergangsvektors u immer noch zu Fehlfunktionen des Schaltwerks fuhren: Obwohl
(d)
es beim Schaltwerkentwurf im allg. zu vermeiden ist, da sich bei der Verarbeitung von x
einerseits und u andererseits Hazards einstellen, so kann es doch vorkommen, da durch das
Fehlen einer expliziten Verzogerung bzw. eines Speichers der neue Wert von u vorliegt, bevor
die Verarbeitung von x abgeschlossen ist. Man spricht in diesem Fall von einem essentiellen
Hazard. Dieser wirkt sich dahingehend aus, da nicht wie gewunscht z = z (x; u) sondern
z = z(x; u ) gebildet wird. Im allg. ist naturlich u 6= u und damit z(x; u) 6= z(x; u ). In
d d d
letzter Konsequenz wird also auch nicht der richtige Folgezustand u = u (x; u) gebildet
d d
sondern u = u (x; u ). Als einzige Losung dieses Problems bietet es sich an, die beim
dd dd d
erst dann vorliegt, wenn die Verarbeitung von x vollstandig abgeschlossen ist. Der sicherste
und am einfachsten zu kontrollierende Ausweg besteht sicherlich darin, auf ein taktgesteuertes
Sychronschaltwerk auszuweichen. Hierbei ist die Dauer eines Taktes so zu wahlen, da sie mit
Sicherheit die Gesamtlaufzeit des Schaltwerkes ubersteigt. Obwohl sich so zwangslaug eine
geringere Verarbeitungsgeschwindigkeit einstellt, wird dieser Weg im Sinne der Zuverlassigkeit
in der Praxis allgemein bevorzugt (sequentielle Rechenschaltungen, Steuerungen, . . . ).
Ist das Problem der essentiellen Hazards gelost, so ergeben sich hinsichtlich der Zu-
standsubergange in einem Asynchronschaltwerk verschiedene Moglichkeiten. Gegeben sei eine
nderung des Eingangsvektors x von xa nach xb , wodurch ein Wechsel vom aktuellen stabi-
A
len Zustand ua in einen stabilen Folgezustand ub bewirkt werden soll. Es ergeben sich drei
Falle:
1. Es ndet kein Lauf statt. Der Wechsel von ua nach ub vollzieht sich direkt, ohne
uber instabile Zwischenzustande zu fuhren. Dafur ist es notwendig, da sich ub von ua
in nur einer Komponente unterscheidet.
2. Es ndet ein Lauf statt. Ein Lauf uber instabile Zwischenzustande kann zwei Ursa-
chen haben:
ub ist zwar durch den Entwurf als unmittelbar auf ua folgender stabiler Zustand
festgelegt, jedoch unterscheidet er sich von ua bedingt durch die Kodierung in mehr
als einer Komponente. Dadurch kommt es zu einem Wettlauf (engl. race) um die
Verarbeitungsreihenfolge der einzelnen Komponenten entlang der Schaltungspfade,
was dazu fuhrt, da sich im ungunstigsten Fall (n 1) instabile Zwischenzustande
einstellen, wenn sich n Komponenten von u andern. Es sei z. B. ua := ( 0 1 0 )
und ub := ( 1 0 1 ). Ein moglicher Lauf ware in diesem Fall:
(0 1 0) ! (0 1 1) ! (0 0 1) ! (1 0 1)
ub ist schon aus Grunden des Entwurfs von ua aus nur uber wenigstens einen in-
stabilen Zwischenzustand zu erreichen. Ist wieder der Fall gegeben, da sich ub von
ua in mehr als einer Komponente unterscheidet, so sind diese instabilen Zwischen-
zustande nicht eindeutig festgelegt, da sie wieder von der Verarbeitungsreihenfolge
abhangen.
Laufe uber instabile Zwischenzustande lassen sich in Abhangigkeit ihrer Auswirkung
auf die Funktion des Schaltwerks wie folgt klassizieren:
(a) Unkritischer Lauf. Unabhangig davon, welche instabilen Zustande durchlaufen
werden, wird schlielich immer der durch den Entwurf festgelegte stabile Zustand
ub angelaufen. In diesem Fall ist in bezug auf die Zustandsabfolge keine Korrektur
des Entwurfs notig.
(b) Kritischer Lauf. Der stabile Zustand, der am Ende des Laufs eingenommen wird,
hangt von den durchlaufenen instabilen Zwischenzustanden ab. Man spricht in
diesem Fall von einem kritischen Lauf (engl. critical race), da es von der Verarbei-
tungsreihenfolge der Komponenten von u abhangt, ob schlielich der im Entwurf
vorgesehene stabile Zustand angelaufen wird, oder ein anderer. Es ist daher eine
Korrektur des Entwurfs notig.
Im nachfolgenden Abschnitt wird ein Verfahren zur Vermeidung kritischer Laufe, bei
dem eine geschickte Neuzuweisung bestimmter instabiler Zustande vorgenommen wird, naher
erlautert.
56 Kapitel 3. Schaltwerkentwurf
Betrachtet man nun noch die instabilen Zustande, so stellt man fest, da in den meisten
Fallen ein stabiler Folgezustand angelaufen wird, ohne da sich mehr als eine Komponente
von u andert. Zum Beispiel ist u (x = ( 0 1 ) ; u = ( 0 1 )) = ( 1 1 ). Allerdings ndet
d
man auch zwei Falle (in der Zustandsfolgetafel kursiv ), in denen sich beide Komponenten
andern:
u (x = ( 1
d
1 ) ; u = ( 0 0 )) = ( 1 1 ) (3.55)
u (x = ( 0
d
0 ) ; u = ( 1 1 )) = ( 0 0 ) (3.56)
Diese beiden kritischen Laufe mussen uber geeignete Zwischenzustande "umgelenkt\ werden,
um zu erreichen, da sich bei jedem Schritt nur eine Komponente von u andert. Obwohl diese
Manipulation der Zustandsabfolge die Funktion des Automaten verandert | der dadurch
entstehende Automat ist naturlich nicht mehr aquivalent zum Ursprungsautomaten |, ist
sie durchaus erlaubt, da sie ja nur instabile Zustande betrit. Schlielich sind in der Praxis
nur die stabilen Zustande von Interesse, da nur diese bei konstantem x auf Dauer erhalten
bleiben und damit das fur den Anwender interessante Ausgangssignal (z ) liefern.
Im Falle der kritischen Laufe ist also in die Zustandsfolgetafel jeweils ein geeigneter insta-
biler Zwischenzustand einzutragen, so da sich einerseits schrittweise immer nur eine Kom-
ponente von u andert, andererseits aber am Ende der richtige stabile Zustand angelaufen
wird. Im Beipiel setzt man also:
u (x = ( 1
d
1 ) ; u = ( 0 0 )) = ( 0 1 ) (3.57)
u (x = ( 0
d
0 ) ; u = ( 1 1 )) = ( 1 0 ) (3.58)
Im Grunde ist die korrekte Funktion des Automaten jetzt gesichert, da ausgehend von
jedem beliebigen Anfangszustand unabhangig von der Verarbeitungsreihenfolge der Kom-
ponenten von u der richtige stabile Zustand angelaufen wird, und es wurde vollkommen
3.4. Entwurf von Asynchronschaltwerken 57
ausreichen, nur fur diese stabilen Zustande konkrete Werte von z vorzusehen. Man konnte
in allen ubrigen Fallen Don't Cares setzen, was eine wesentlich bessere Moglichkeit eronen
wurde, eine besonders einfache, mit geringem Gatteraufwand zu realisierende Schaltfunkti-
on fur z zu nden. In der Praxis kommt es jedoch oft vor, da z noch von nachfolgenden
Schaltwerken weiterverarbeitet werden mu, so da auch die in den instabilen Zustanden
kurzzeitig vorliegenden Werte von z beachtet werden mussen. In diesem Fall ist es sinnvoll,
fur jeden instabilen Zustand denjenigen Wert von z vorzusehen, der am Ende des Laufes im
stabilen Zustand vorliegen wird. Neben der korrekten Funktion nachfolgender Schaltungen
erhalt man so den Vorteil, da z schon vor Ende eines Laufes in korrekter Form vorliegt; die
Verarbeitungsgeschwindigkeit erhoht sich also.
Im vorliegenden Beispiel soll dieser Aspekt jedoch vernachlassigt werden. Die statisch
korrekte Funktion der Schaltung wird als ausreichend angesehen, und es werden daher in
den instabilen Zustanden fur z Don't Cares gesetzt. Man erhalt so einschlielich der oben
beschriebenen Behebung der beiden kritschen Laufe die folgende Zustandsfolgetafel:
[(u ; u ) =z ] :
0 1
d
x0 ; x1 ! 0; 0 0; 1 1; 1 1; 0
0; 0 0; 0=0 0; 0=0 0 ; 1 = 0; 1=
0; 1 0; 1=1 1; 1= 1; 1= 0; 1=1
1; 1 1; 0= 1; 1=1 1; 1=1 1; 0=
1; 0 0; 0= 0; 0= 1; 0=0 1; 0=0
Daraus lassen sich die in Abbildung 3.16 gezeigten KV{Diagramme extrahieren, mit denen
man die Schaltfunktionen fur u , u und z bestimmen kann.
d
0
d
1
sichtlichen Fallen mu dazu gegebenenfalls die Schaltung umgezeichnet werden, um bei den
einzelnen Teilblocken der Schaltung die gewohnte Baum{ahnliche Struktur zu erhalten, an
dessen "Wurzeln\ sich die ui =ui nden. Es werden dann die ui (u; x) gebildet und damit
d d
die Zustandsfolgetafel aufgestellt, aus der man die stabilen Zustande und eventuelle Laufe
ablesen kann.
Nachdem jedem moglichen Wert von u ein Zustand sk zugewiesen ist, kann der Zustands-
graph gezeichnet werden, in dem zweckmaigerweise nur die stabilen Zustande Berucksichti-
gung nden.
58 Kapitel 3. Schaltwerkentwurf