You are on page 1of 65

Skript zur Lehrveranstaltung

Digitaltechnik I
Einfuhrung in die sequentielle Logik

Prof. Dr.{Ing. W. Anheier

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 Schreib guren . . . . . . . . . . . . . . . . . 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 de nierten Automaten . . . . . . . . . . 19
2.1.1 Einige De nitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 A quivalenzklassenbestimmung nach Huffman/Mealy . . . . . . . . . 21
2.1.3 Rekursion uber mehrere Schritte . . . . . . . . . . . . . . . . . . . . . 22
2.2 Zustandsminimierung bei unvollstandig de nierten Automaten . . . . . . . . 26
2.2.1 De nitionen 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 Schreib guren
Auch wenn zu diesem Zeitpunkt noch nicht der Sinn aller im folgenden aufgefuhrten Begri e
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

Hat ein Boolescher Vektor x n Komponenten, so mu in Analogie zu oben x 2 Bn


sein.
4 Kapitel 1. Grundlagen

 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 o nen 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
be ndet 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 De nition 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 de niert, 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

leuchtet. Eine anschauliche (graphische) Beschreibungsmoglichkeit eines Automaten ist der


Zustandsgraph, den Abbildung 1.1 fur das Beispiel der Stehleuchte zeigt.

Abbildung 1.1: Zustandsgraph der Stehleuchte

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 Schreib guren 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).

1.3 Der Boolesche Algorithmus


Der oben vorgestellte Zustandsgraph ist | wie der Name schon sagt | eine graphische Be-
schreibungsmoglichkeit eines Automaten, also eine Art der Beschreibung, die die Anschauung
anspricht. Sie ist jedoch nicht direkt geeignet, mit Hilfe von algorithmisierten Verfahren be-
arbeitet zu werden oder selbst algorithmisiert zu werden. Beispielsweise ist eine Analyse des
so beschriebenen Automaten mit Methoden der Booleschen Algebra oder eine Umsetzung
in ein Computerprogramm nicht moglich.
Der im folgenden vorgestellte Boolesche Algorithmus dagegen verwendet Methoden, die
an die lineare Algebra angelehnt sind und ermoglicht daher eine algorithmisch exakte Be-
schreibung eines Automaten, die sich auch in ein fur Digitalrechner verstandliches Format
umsetzen lat. Dies ist wunschenswert, da man in der Praxis im allgemeinen digitale Systeme
vor ndet, deren Beschreibung als Zustandsgraph wegen der enormen Anzahl der moglichen

Zustande und der dazu im quadratischen Verhaltnis stehenden Anzahl der Uberg ange kaum
noch ubersichtlich und z. B. zur Fehlersuche geeignet ware.

1.3.1 Erklarung der beiden Gleichungen


Ein Boolescher Algorithmus wird beschrieben durch ein Quintupel
(s; x; z ; F (x); G(x))
mit beiden Gleichungen
s +
= s + F (x) (1.6)
z = s + G(x) (1.7)
Hierin bedeuten:
s :
(+)
(Folge-)Zustandsvektor,
x: Eingangsvektor,
z: Ausgangsvektor,
F (x): 
Ubergangsmatrix
und G(x): Ausgangsmatrix.
Zunachst fallt auf, da ein weiterer Vektor eingefuhrt wird, namlich der Zustandsvektor
s. Hat der zu beschreibende Automat n Zustande, so ist s der folgende Zeilenvektor:
s = (s 1 s2  si  sn ) (1.8)
1.3. Der Boolesche Algorithmus 7

Der Zustandsvektor sagt aus, in welchem Zustand sich der Automat be ndet, da festgelegt
wird: Be ndet 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 ) de nieren 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.

1.3.2 Exkurs zur linearen Algebra


Aus der linearen Algebra ist die Matrizenmultiplikation bekannt [3]. Gegeben seien zwei
Matrizen A = ( aik ) vom Typ (m; n) und B = ( bik ) vom Typ (n; p). Es soll nun das
2

Matrizenprodukt C = ( cik ) := A  B nach der Rechenvorschrift "Zeile multipliziert mit


Spalte\ gebildet werden. Man erhalt fur cik :

cik = (ai  b k ) + (ai  b k ) + : : : + (ain  bnk )


1 1 2 2 (1.9)
n
X
= ai  bk (1.10)
 =1

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 Schreib gur fur das Matrizenprodukt C = A  B zum Ausdruck zu bringen, konnte
man sich etwa die Schreib gur 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

C := A _ ^B ; cik = (ai ^ b k) _ (ai ^ b k ) _ : : : _ (ain ^ bnk ) (1.11)


;
1 1 2 2

C := A ^ _B cik = (ai _ b k) ^ (ai _ b k ) ^ : : : ^ (ain _ bnk ) (1.12)


;
1 1 2 2

C := A^  B cik = (ai  b k) ^ (ai  b k ) ^ : : : ^ (ain  bnk ) (1.13)


;
1 1 2 2

C := A_ 6 B cik = (ai 1 6 b k) _ (ai 6 b k ) _ : : : _ (ain 6 bnk )


1 2 2 (1.14)
..
.
2
Diese Matrizen sollen hier mit einem Unterstrich notiert werden, um zu kennzeichnen, da zunachst gilt:
aik ; bik 
2 R. Danach wird dann der Ubergang zum Fall aik ; bik 2 B erlautert.
3
Zur Erinnerung: Es gilt a  b := (a ^ b) _ (a ^ b) = a  b + a  b und entsprechend a 6 b := a  b + a  b.
8 Kapitel 1. Grundlagen

Fuhrt man nun die in der Booleschen Algebra fur _, ^ und 6 hau g verwendeten Symbole
+,  und  ein , so andern sich die obigen Gleichungen wie folgt:
4

C := A + B ; cik = (ai  b k ) + (ai  b k ) + : : : + (ain  bnk ) (1.15)


;
1 1 2 2

C := A  +B cik = (ai + b k )  (ai + b k )  : : :  (ain + bnk ) (1.16)


;
1 1 2 2

C := A  B cik = (ai  b k )  (ai  b k )  : : :  (ain  bnk ) (1.17)


;
1 1 2 2

C := A + B cik = (ai  b k ) + (ai  b k ) + : : : + (ain  bnk )


1 1 2 2 (1.18)
..
.


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 Schreib gur 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, emp ehlt 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

s1 f11 ( f12 f1n (


x) (x)    f k (x)    x)
1

s2 f21 ( f22 2 f2n (


.. .. .. .. ..
. . . . .
si fi (x) fi (x)
1 2  fik (x)  fin (x)
.. .. .. .. ..
. . . . .
sn fn (x) fn (x)
1 2  fnk (x)  fnn (x)

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)

Auch G(x) ist im Grunde eine Zuordnungstabelle:

% z1 z2  zk  zp
s1 g11( x) g12 (x)    g k (x)    g1p( x)
x) (x)    g k (x)    x)
1

s2 g21( g22 2 g2p(


.. .. .. .. ..
. . . . .
si gi (x) gi (x)
1 2  gik (x)  gip(x)
.. .. .. .. ..
. . . . .
sn gn (x) gn (x)
1 2  gnk (x)  gnp (x)

Im Beispiel der Stehleuchte hat die Ausgangsmatrix folgende Gestalt, wenn z = ( z 1 z2 )


10 Kapitel 1. Grundlagen

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 hau g
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

Tabelle 1.1: Zustandsfolgetafel der Stehleuchte

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

Abbildung 1.3: Mealy{Automat

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.

1.4.2 Ableitung weiterer Automatenmodelle aus dem Mealy{Automaten


Aus dem Mealy{Automaten lassen sich formal weitere Automatenmodelle ableiten. Diese
sind in Abbildung 1.4 zusammengefat.
Das bekannteste Derivat ist der Moore{Automat, dessen Ausgangsvektor ausschlielich
vom inneren Zustand abhangt. Diese Tatsache lat sich formal leicht darstellen, indem wie
in Abbildung 1.4 die Verbindung von x nach G(x) einfach fortgelassen wird. Will man je-
doch tatsachlich einen Mealy{Automaten, der beispielsweise durch die Matrizen F (x) und
G(x) gegeben ist, in einen Moore{Automaten umwandeln, was eine ubliche Problemstellung
ist, so stot man auf die Schwierigkeit, die beim Mealy{Automaten von x abhangige Aus-
gangsmatrix G(x) in die beim Moore{Automaten geforderte bezuglich x konstante Matrix
G umzuwandeln, was naturlich unmoglich ist. Man kann dieses Problem nur losen, indem
man Zustande aufspaltet, und dann jedem dieser so erhaltenen Zustande unabhangig von x
einen Ausgangsvektor zuordnet. Es ist also eine vollig neue Zustandszuweisung vorzunehmen,
woraus sich naturlich gegenuber dem Mealy{Automaten veranderte Matrizen F (x) und G
ergeben. Das Fortlassen der Verbindung zwischen x und G(x) in Abbildung 1.4 ist lediglich
symbolisch zu verstehen.

Ubrigens ist die Stehleuchte ein Moore{Automat. Die Tatsache, welche Gluhlampen in
einem bestimmten Zustand leuchten, ist unabhangig davon, auf welchem Wege dieser Zustand
erreicht wurde, also welcher Wert des Eingangsvektors den U  bergang in diesen Zustand be-
wirkt hat. Es ist zum Beispiel im Zustand s fur das Leuchten der Gluhlampe z unerheblich,
2 1

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

Abbildung 1.4: Weitere Automatenmodelle

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 de nieren: 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

Tabelle 1.2: Zustandsfolgetafel der Stehleuchte (Moore{Automat)

 bergangsmatrix automatisch als Identitatsmatrix: F = ( 1 ) = I .


Dadurch ergibt sich die U
Damit ist die Ausgangsmatrix G(x) eine einzeilige Matrix, also ein Zeilenvektor, in dem jedes
1

Element eine Boolesche Funktion darstellt, und der wegen s = ( ( ) 1) mit dem Ausgangs-
vektor z identisch ist.

1.4.3 Sequentielle Algorithmen


Dieser Text beschaftigt sich mit der sequentiellen Logik, also mit der schrittweisen Verar-
beitung von Parametern. Bisher wurde jedoch noch nicht darauf eingegangen, wie die durch
Gl. (1.6) gegebene Abfolge der inneren Zustande eines Automaten genau zu verstehen ist.
Man neigt aus dem Gefuhl heraus dazu, eine rein zeitliche Abfolge anzunehmen. Dennoch
ist es durchaus moglich, zusatzlich eine Di erenzierung bezuglich des Ortes vorzunehmen.
Auerdem ist zu unterscheiden, ob die zeitliche Abfolge in einem vorgegebenen Raster oder
gesteuert durch das Auftreten einer Veranderung des Eingangsvektors auftritt.

1.4.3.1 Zeitortssequentieller Algorithmus


Die allgemeinste Form eines sequentiellen Algorithmus ist der zeitortssequentielle Algorith-
mus. Hier wird dem Auftreten eines bestimmten Zustandes nicht nur ein Zeitpunkt t sondern
auch ein Ort i zugeordnet. Gl. (1.6) und Gl. (1.7) werden daher wie folgt geschrieben:
 
sti+1
+1
= sti + F xti (1.27)
 
zti = sti + G xti (1.28)

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 eintre en. Man spricht daher auch
von einer "Fliebandverarbeitung\.

1.4.3.2 Zeitsequentieller Algorithmus


Der zeitsequentielle Algorithmus modelliert das Verstandnis, das man von Anfang an fur die
sequentielle Logik entwickelt, namlich das allein zeitliche Nacheinander der Zustande. Gl.
(1.6) und Gl. (1.7) erhalten folgende Form:
 
st +1
= st + F xt (1.29)
14 Kapitel 1. Grundlagen
 
zt = st + G xt (1.30)

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.

1.4.3.3 Ortssequentieller Algorithmus


Beim zeitsequentiellen Algorithmus treten die einzelnen Zustande zu unterschiedlichen Zeiten,
aber am selben Ort auf. Der ortssequentielle Algorithmus ist das genaue Gegenteil: Alle
seine Zustande konnen im selben Zeitpunkt vorliegen, jedoch an unterschiedlichen Orten.
Auf diese Weise werden alle Werte von x gleichzeitig zu allen Werten von z verarbeitet. Man
spricht daher auch von einer Parallelverarbeitung\. Gl. (1.6) und Gl. (1.7) sind wie folgt zu
"
schreiben:
si+1 = si + F (xi) (1.31)
zi = si + G (xi) (1.32)
Vergleicht man den ortssequentiellen mit dem zeitsequentiellen Algorithmus, so wird eine
Analogie zwischen Zeit und Ort deutlich: Beide Algorithmentypen lassen sich ineinander
uberfuhren, indem man Zeitindex t und Ortsindex i miteinander vertauscht.
Die eben angesprochenen Zusammenhange sollen mit Abbildung 1.5 noch einmal veran-
schaulicht werden, indem man die Zeit t und den Ort i eine Flache aufspannen lat. Fur
den ortssequentiellen Algorithmus wurde willkurlich t := 0 und fur den zeitsequentiellen
Algorithmus i := 0 gesetzt.

Abbildung 1.5: Veranschaulichung der Zustande [zeit-][orts-]sequentieller Algorithmen

1.4.3.4 Asynchroner Algorithmus


Bei den bisher vorgestellten Algorithmen war hinsichtlich der Zustandsfolge ein genaues Ra-
ster von auen vorzugeben; es waren bestimmte Zeitpunkte t oder/und Orte i festzulegen,
um die Zustande sti , st bzw. si spezi zieren zu konnen. Diese Algorithmen konnen daher
1.4. Automatenmodelle 15

auch als synchrone Algorithmen zusammengefat werden, da ihre Zustandsabfolge synchron


mit dem vorgegebenen Raster verlauft. Das zeitliche Raster kann z. B. der Takt sein, mit
dem eine Schaltung betrieben wird und das ortliche Raster die Lage des Bereichs in einer
Schaltung, an dem ein bestimmter Zustand auftritt.
Im Gegensatz dazu gibt es Algorithmen, bei denen die Verarbeitung der Eingangsparame-

ter nicht in einem bestimmten Raster ablauft, sondern von der Anderung des Eingangsvektors
x selbst abhangt. Da der Folgezustandsvektor nicht im gleichen Zeitpunkt sondern erst nach
einer gewissen Verzogerung vorliegt, wird der Index d (engl. delay\) verwendet. Gl. (1.6)
"
und Gl. (1.7) erhalten damit folgendes Aussehen:
sd
= s + F (x) (1.33)
z = s + G(x) (1.34)
In der Praxis ergibt sich die Funktion des in Abbildung 1.3 gezeigten Speichers aus den
Laufzeiten der verwendeten Gatter.
Man unterscheidet bei asynchronen Algorithmen zwischen stabilen und instabilen Zustan-
den, je nachdem ob der Wert von x eine Zustandsanderung bewirkt oder nicht. In Abhangig-
keit des Eingangsvektors x liegt ein stabiler Zustand dann vor, wenn in der U  bergangsmatrix
F (x) ein Element fij (x) = 1 mit i = j ist. Ein instabiler Zustand liegt dementsprechend vor,
wenn ein Element fij (x) = 1 mit i 6= j ist.
Man macht fur asynchrone Algorithmen im allgemeinen zwei Voraussetzungen, damit er
uberhaupt beschreibbar bleibt:
1. Nach A  nderung des Wertes des Eingangsvektors x mu ein stabiler Zustand erreicht
werden, bevor sich der Wert von x wieder andert.
Andernfalls konnen u. U. mehrere instabile Zustande durchlaufen werden, und es ist
vom Zufall abhangig, welchen dieser Zustande der Automat verlat, um wieder in einen
stabilen Zustand zu gelangen.
2. Es darf sich stets nur eine einzige Komponente von x andern, damit es nicht vom Zufall

abhangt, in welchen stabilen Zustand der Automat wechselt. Anderten sich mehrere
Komponenten von x gleichzeitig, so wurden u. U. die Laufzeiten der einzelnen Gatter
daruber entscheiden, welche Komponente von x zuerst verarbeitet wird.

1.4.4 Stochastischer Boolescher Algorithmus


Alle oben genannten Algorithmen sind determinierte Boolesche Algorithmen, da der Wech-
sel in den Folgezustand bei gegebenem Wert des Eingangsvektors eindeutig bestimmt ist. Der
Folgezustand kann stets mit der Wahrscheinlichkeit p = 1 "vorhergesagt\ werden.
Man kann sich aber auch Probleme uberlegen, die sich auf diese Weise nicht beschreiben

lassen, sondern es erfordern, den einzelnen Elementen der Ubergangsmatrix F (x) Wahr-
scheinlichkeiten pij zuzuordnen, die vom Wert des Eingangsvektors x abhangig gemacht
werden konnen. Da im allgemeinen pij 62 B = f0; 1g ist, versagt hier naturlich die Boolesche
Algebra, und man hat wieder auf die herkommliche lineare Algebra zuruckzugreifen. Selbst
bei einem solchen stochastischen Algorithmus andert sich nichts an der Tatsache, da jeder
Zustand mit Sicherheit irgendeinen Folgezustand besitzt. Daher mussen die Wahrscheinlich-
keiten einer Zeile von F (x) aufsummiert stets eins ergeben.
Als Beispiel soll das in Abbildung 1.6 dargestellte Labyrinth aus miteinander verbundenen
Kammern betrachtet werden, in dem sich ein Gasmolekul regellos bewegt.
16 Kapitel 1. Grundlagen

Abbildung 1.6: Gasmolekul im Kammernlabyrinth, Beispiel zum stochastischen Automaten

Zwischen den einzelnen Kammern, denen die Zustande s : : : s zugeordnet sind, bestehen
1 4
 
O nungen, deren Breite anhand des hinterlegten Rasters abzulesen ist; es gibt O nungen
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 be ndet. 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 O nung 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.

Abbildung 1.7: Zustandsgraph zum stochastischen Algorithmus


1.4. Automatenmodelle 17


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

p41 p42 p43 p44 2


3
0 0 1
3

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

p41(21)34 = p +p p4134 12 21 p 4134 (1.40)


1 2 1
= + 1  0;0933 (1.41)
15 5 15
p431(21)4 = p +p p4314 12 21 p 4314 (1.42)
2 2 2
= + 1  0;0373 (1.43)
75 5 75
Will man jetzt noch einen Eingangsvektor einfuhren, so bieten sich hierfur vielleicht die un-
terschiedlichen Temperaturen Ti in den einzelnen Kammern an, da das betrachtete Molekul
unter dem Ein u der Stoe umgebender Molekule mit erhohter Wahrscheinlichkeit in eine
Kammer mit besonders niedriger Temperatur di undieren wird. F (x) ware also in Abhangig-
keit von x := ( T T T T ) so zu modi zieren, da pij ansteigt, wenn Ti > Tj ist und
1 2 3 4

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 de niert
ist. Bei einem vollstandig de nierten 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 de nierten 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.

2.1 Zustandsminimierung bei vollstandig de nierten Automa-


ten
2.1.1 Einige De nitionen
Zum besseren Verstandnis der nachfolgenden Abschnitte werden zunachst einige De nitionen
zur Zustandsminimierung bei vollstandig de nierten Automaten gebracht:

 Aquivalente Zustande und Automaten. Zwei Zustande si und sj heien genau
dann k{aquivalent, wenn sie als Anfangszustande durch k beliebige Eingangswertesatze
dieselben Ausgangswertesatze erzeugen. Dieser Zusammenhang lat sich mit Hilfe der
Ausgangsfunktion g(x; s) wie folgt formulieren:
si k sj () g(x| i; xj ;{z: : : ; xm}; si) = g(x| i; xj ;{z: : : ; xm}; sj ) (2.1)
k k
20 Kapitel 2. Zustandsminimierung

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

 Zusammenhangender Automat. Ein Automat heit zusammenhangend, wenn es


einen Anfangszustand s gibt, von dem aus jeder andere Zustand erreichbar ist.
Anf

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

Abbildung 2.1: [Stark] zusammenhangender Automat

 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

eindeutig auf ein Element b der Menge B abbildet.


2.1. Zustandsminimierung bei vollstandig de nierten Automaten 21


2.1.2 Aquivalenzklassenbestimmung nach Huffman/Mealy
Es sei nochmals darauf hingewiesen, da dieses Verfahren nur fur vollstandig de nierte Au-
tomaten anwendbar ist, da hier keine Ausnutzung unde nierter Folgezustande statt nden
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

Um die A quivalenzklassen des gegebenen Automaten nach Huffman/Mealy zu bestim-


men, wird die Zustandsfolgetafel in veranderter Form notiert (Tabelle 2.1): Die Menge aller
Zustande P wird waagerecht angeordnet und nach dem Wert von z sortiert, woraus sich
0

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

Tabelle 2.1: Tabelle zum Verfahren nach Huffman/Mealy


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

(s ; s ; s ; s ); fur x = 0 dagegen wird einerseits mit s wieder (s ; s ; s ; s ), andererseits mit


1 2 5 6 6 1 2 5 6
22 Kapitel 2. Zustandsminimierung

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

Danach sind keine weiteren Unterteilungen vorzunehmen, es ist P = P : Die gefundenen


haben jeweils fur x = const eindeutig zugeordnete Folgeaquivalenzklassen.
3 4


Aquivalenzklassen
Man erhalt also:
Pk = f(s ; s ); (s ; s ); (s ; s ); (s )g
0 4 1 5 2 6 3 8k (2.4)

2.1.3 Rekursion uber mehrere Schritte


Das im vorhergehenden Abschnitt vorgestellte Verfahren zur A  quivalenzklassenbestimmung

nach Huffman/Mealy mag nach einiger Ubung einleuchten. Es soll in diesem Abschnitt

diskutiert werden, wie sich eine solche Aufteilung in Aquivalenzklassen formal aus den Glei-
chungen des Booleschen Algorithmus ergibt [2].
Die Gleichungen des Booleschen Algorithmus (Gl. (1.6) und Gl. (1.7)) beschreiben einen
Automaten nur in einer Rekursion uber einen Schritt; es ist aus ihnen nur der unmittelbar
nachste Folgezustandsvektor zu entnehmen. Beliee man es dabei, so konnte man mit den
Gleichungen nur die 1{aquivalenten Zustande (k = 1) bestimmen. Um aber alle A  quivalenz-
klassen hoherer Ordnungen zu ermitteln, mussen die Gleichungen immer wieder auf sich selbst
angewendet werden, um so eine Rekursion uber mehrere Schritte zu erhalten. Man erhalt so
eine Beschreibung des Automaten, die die Abhangigkeit einer Folge von Ausgangsvektoren

von einer Folge von Eingangsvektoren ausdruckt. Um hierbei nicht den Uberblick zu verlieren
| also um eine Schreibweise in der Art von "s; s ; s ; s ; : : :\ zu vermeiden |, werden
+ ++ +++

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 de nierten Automaten 23

Beschreibung erhalt, die ausgehend allein von dem Anfangszustand s durch Rekursion uber 0

mehrere Schritte jedes Folgeelement liefert:


s1
= s + F x 
0 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 Schreib guren 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

nachste Rekursion abgebildet wird, usw.


In jedem Schritt wird die Matrix P k gebildet, indem P k und Gk (x) nebeneinander 1 1

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 de nierten 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

2.2 Zustandsminimierung bei unvollstandig de nierten Auto-


maten
Im folgenden soll die Minimierung unvollstandig de nierter Automaten behandelt werden.
Dazu werden zunachst einige De nitionen gebracht, die in diesem Zusammenhang wichtig
sind, da aus ihnen z. B. die Voraussetzung fur die Durchfuhrbarkeit einer Minimierung abgelei-
tet wird. Dann werden einige Verfahren vorgestellt, die dem AuÆnden kompatibler Zustande
bei einem gegebenen Automaten dienen.
Es sei darauf hingewiesen, da der unvollstandig de nierte Automat der allgemeinere Fall
eines Automaten ist. Die vorgestellten Verfahren konnen daher ohne weiteres auch auf einen
vollstandig de nierten Automaten angewendet werden, obwohl sie fur die Zustandsminimie-
rung durch Ausnutzung der unde nierten Folgezustande angelegt sind. Ubrigens  wird das
Verfahren von Paull/Unger weiter unten zunachst am Beispiel eines vollstandig de nier-
ten Automaten erlautert.

2.2.1 De nitionen zur Zustandsminimierung


Die folgenden Begri sde nitionen sollen die Grundlagen der Zustandsminimierung unvoll-
standig de nierter Automaten systematisieren und dadurch das Verstandnis des nachfolgen-
den Textes erleichtern.
 Anwendbarkeit. Eine Folge von Eingangsvektoren heit anwendbar auf einen Zu-
stand, wenn fur diesen Zustand alle Folgezustande und der Ausgangsvektor am Ende
der Folge de niert sind.
 Paar kompatibler Zustande. Zwei Zustande heien kompatibel, wenn die Ausgangs-
vektoren fur alle auf die beiden Zustande anwendbaren Folgen von Eingangsvektoren
am Ende der Folgen gleich sind.
 Menge kompatibler Zustande. Eine Menge von Zustanden heit kompatibel, wenn
alle in dieser Menge enthaltenen Zustande paarweise kompatibel sind. Daraus folgt:
2.2. Zustandsminimierung bei unvollstandig de nierten Automaten 27

Eine Menge von Zustanden ist genau dann kompatibel, wenn fur jeden moglichen Ein-
gangsvektor die zugehorigen Folgezustande kompatibel und wenn alle fur diese Zustande
de nierten 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 Begri e werden in Abbildung 2.2 noch einmal veranschau-
licht.

Abbildung 2.2: Veranschaulichung einiger Begri e zur Zustandsminimierung

Die Menge K aller m kompatiblen Paare heit Gesamtklasse der Zustande:


g

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 Begri e K , K , K und K werden im dritten Beispiel von Abschnitt 2.2.2 und
g mc u min

in Abschnitt 2.2.3 und Abschnitt 2.2.4 noch einmal erlautert.


Damit an einem unvollstandig de nierten Automaten eine Zustandsminimierung vorge-
nommen werden darf, also einzelne Zustande zusammengefat werden konnen, mussen also
die drei folgenden Bedingungen erfullt sein. Andernfalls ist die Funktion des zustandsmi-
nimierten Automaten nicht mehr mit der des Ausgangsautomaten identisch. Die folgenden
Bedingungen sind notwendig fur die Durchfuhrung einer Minimierung:
1. Kompatibilitat. Nur solche Zustande, die zueinander samtlich paarweise kompatibel
sind, durfen zusammengefat werden, da sich sonst keine eindeutig de nierte Abfol-
ge von Folgezustanden ergibt. Diese Forderung ergibt sich aus der Tatsache, da die
Kompatibilitat im Gegensatz zur A  quivalenz nicht transitiv ist: Aus der Kompatibi-
litat zweier Paare (sa; sb ) und (sb ; sc ) folgt im allg. nicht die Kompatibilitat des Paares
(sa ; sc ), wie der in Abbildung 2.3 angedeutete Zustandsgraph leicht veranschaulicht: Es
sei angenommen, da die Kompatibilitat des Paares (sa ; sb ) die Kompatibilitat eines
Paares (sd ; se ) fordert, und da (sb ; sc ) die Kompatibilitat von (sf ; sg ) fordert. Auch
wenn diese beiden Forderungen erfullt sind, kann jetzt noch keine Zusammenfassung zu
einer kompatiblen Menge (sa ; sb ; sc ) vorgenommen werden, solange sich fur das Paar
(sa ; sc ) nicht in gleicher Weise ein Nachfolger ndet, oder sich dieses Paar als unbedingt
kompatibel herausstellt.

Abbildung 2.3: Zur Intransitivitat der Kompatibilitat

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 de nierten Automaten 29

2.2.2 Ermittlung kompatibler Paare nach Paull/Unger


Das weiter oben behandelte Verfahren nach Huffman/Mealy ist nur fur vollstandig de -
nierte Automaten geeignet. Der allgemeinere und in der Praxis hau ger vorkommende Fall ist
jedoch der unvollstandig de nierte Automat. Um hier eine Zustandsminimierung vornehmen
zu konnen, mussen zunachst kompatible Zustandspaare gefunden werden.

Beispiel 1. Das graphische Verfahren zu Bestimmung kompatibler Paare nach Paull/Un-


ger wird zunachst anhand eines einfachen Beispiels erklart, das einen vollstandig de nierten
Automaten mit der folgenden Zustandsfolgetafel zum Gegenstand hat:
[s =z ] :
+
x! 0 1
s0 s2 =1 s1 =0
s1 s2 =1 s4 =0
s2 s1 =1 s4 =0
s3 s4 =0 s1 =1
s4 s3 =0 s0 =1

Das Verfahren verwendet eine Kompatibilitatstafel in Form einer Halbmatrix, wie sie in
Abbildung 2.4 dargestellt ist.

Abbildung 2.4: Halbmatrix zum Verfahren nach Paull/Unger, erstes Beispiel

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

1{aquivalenten Zustande in zwei Teilmengen zusammenfassen. In Abbildung 2.4 wer-


den nun entsprechend alle Paare ausgekreuzt, deren Zustande aus beiden Klassen in P 1

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 de nierten 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

Paare (s ; s ), (s ; s ) und (s ; s ), zwischen denen hinsichtlich der Implikationen der in Ab-


1 2 1 7 2 7

bildung 2.6 dargestellte Zusammenhang besteht (Der Pfeil ! bedeutet fordert die Kom-
"
patibilitat von\.).
O ensichtlich 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 de nierten Automaten 31

Abbildung 2.5: Halbmatrix zum Verfahren nach Paull/Unger, zweites Beispiel

Abbildung 2.6: Zusammenhang der Implikationen, Paull/Unger, zweites Beispiel

Beispiel 3. Es folgt jetzt erstmals ein Beispiel eines unvollstandig de nierten Automaten,
das verdeutlichen soll, in welcher Weise die nicht de nierten 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

O ensichtlich sind in einigen Fallen die Folgezustande bei bestimmten Eingangsvektoren


nicht von Interesse | man erinnere sich an die "Don't Cares\ aus der kombinatorischen
Logik. In der Praxis ndet man beim Entwurf eines Automaten oftmals solche unde nierten
Folgezustande, wenn aus der Aufgabenstellung heraus bei bestimmten Zustanden gewisse
Werte des Eingangsvektors mit Sicherheit nicht auftreten konnen bzw. unsinnig sind und
daher fur diese Werte auch keine Folgezustande bereitgestellt werden mussen.
32 Kapitel 2. Zustandsminimierung

Zur Zustandsminimierung konnen diese unde nierten 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

wodurch man eine bedingte Kompatibilitat dieser Zustande erhalt:


[s =z ] :
+
x0 x1 ! 00 01 10 11
.. .. .. .. ..
. . . . .
s4 s =02 s =05 s = 0 s =1
0 3

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.

Abbildung 2.7: Halbmatrix zum Verfahren nach Paull/Unger, drittes Beispiel

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 de nierten 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.

Abbildung 2.8: Verschmelzungsgraphen fur das dritte Beispiel

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 unde nierter 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 betro en, 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

2.2.2 notiert wurde.


2. Alle aus mindestens zwei Knoten gebildeten Polygone, bei denen samtliche Knoten
4

miteinander verbunden sind, reprasentieren die "Maximum Compatibles\ K (siehe mc

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

3. In K werden ausgehend von der niedrigsten Ordnung diejenigen Polygone gestrichen,


mc


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

Nachfolger existent ist.

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.

Abbildung 2.9: Implikationsgraph fur das dritte Beispiel


2.2. Zustandsminimierung bei unvollstandig de nierten Automaten 35


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
De nitionen und Verfahren der Zustandsminimierung wurden im vorausgehenden Kapitel
behandelt.

3.1.1 Umwandlung eines Moore{ in einen Mealy{Automaten


Gegeben sei die folgende Zustandsfolgetafel eines Moore{Automaten (Es sind si beliebige
Werte von s usw.):
[s =z ] :
+
x! x x x z
s s s s z
0 1 2

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

3.1.2 Umwandlung eines Mealy{ in einen Moore{Automaten


Da beim Moore{Automaten jedem Zustand unabhangig vom Eingang genau ein Wert
des Ausgangsvektors zugeordnet wird, mussen die Zustande des umzuwandelnden Mealy{
Automaten aufgespalten werden und in eine neue Zustandskodierung uberfuhrt werden. Be-
sitzt der Mealy{Automat m Zustande und sind n verschiedene Werte des Eingangsvektors
moglich, so sind fur den Moore{Automaten m  n Zustande vorzusehen.
38 Kapitel 3. Schaltwerkentwurf

Als Beispiel ist die Zustandsfolgetafel des folgenden Mealy{Automaten gegeben:


[s =z] :
+
x! x x
s s =z s =z
0 1

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 de niert 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 de niert 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

Abbildung 3.1: Blockschaltbild zur Zustandskodierung

Nachdem die formalen Zusammenhange der Zustandskodierung dargestellt sind, mu


uberlegt werden, wie die Kodiermatrix C uberhaupt konkret zu wahlen ist, und welcher
U bergangsvektor u sich daraus ergibt. Der Zustandsvektor s stellt de nitionsgema mit m

Komponenten genau m Zustande dar. Da bei einem Ubergangsvektor u mit n Komponenten
alle 2 Werte verwendet werden sollen, ist es o ensichtlich, da n = dlog (m)e sein mu .
n 1

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) o ensichtlich 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 De nition 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)
# De nition 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)
# De nition 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)
# De nition 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

# De nition 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: O ensichtlich 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.

Abbildung 3.2: Vereinfachte Beschreibung eines zustandskodierten Automaten

3.2.2 Optimale Zustandskodierung


3.2.2.1 Ziel der optimalen Zustandskodierung
Bei der Zustandskodierung werden die m moglichen Werte des Zustandsvektors s auf die
n = dlog (m)e Komponenten des Ubergangsvektors
2
 abgebildet. Dies geschieht durch 2n  m
2 Eine
Matrizennotation in der Form von Gl. (1.6) und Gl. (1.7) scheint zwar auch hier naheliegend, ist

jedoch in dieser einfachen Form nicht moglich, da die Komponenten des Ubergangsvektors in den kodierten
Funktionen im allgemeinen auch invertiert auftreten.
42 Kapitel 3. Schaltwerkentwurf

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.

Abbildung 3.3: AuÆnden der technisch relevanten Moglichkeiten der Zustandskodierung

Alle durch Drehung oder/und Spiegelung der Ursprungskreis gur 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 Kreis guren 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.

Abbildung 3.4: Einige Kodierungsmoglichkeiten fur m = 5

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

man auf diese Weise z = x  x + x  x + x  x . Aus der Anschauung entnimmt man,


0 1 0 2 1 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

Abbildung 3.5: Zur Erinnerung an das KV{Diagramm

3.2.2.2 Heuristisches Verfahren


Die drei Regeln dieses heuristischen Verfahrens zum Auf nden einer optimalen Zustandsko-
dierung werden anhand eines Beispiels erlautert. Wie bei einer Heuristik ublich, erhalt man
nicht unbedingt ein optimales Ergebnis. Auerdem ist es moglich, da einige der Regeln bei
manchen Problemen miteinander in Kon ikt treten, also sich ihre Einhaltung gegenseitig
ausschliet. In diesem Fall gilt die im folgenden angegebene Reihenfolge, Regel 1 geniet also
die hochste, Regel 3 die niedrigste Prioritat.
Es sei ausdrucklich darauf hingewiesen, da bei der Suche nach einer bestimmten Art
der Zustandskodierung die Werte des Ausgangsvektors ohne Bedeutung sind | so auch hier.
 bergangslogik des Automaten, nicht die Ausgangslogik. Daher
Es interessiert lediglich die U
beziehen sich die nachfolgend genannten Regeln nur auf die Zustandsabfolge selbst und nicht
auf dier dabei gelieferten Ausgangsvektoren.

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
de niertes 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

Abbildung 3.6: Beipiel zur optimalen Zustandskodierung

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 o ensichtlich 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.

Abbildung 3.7: Implikationsgraph zur optimalen Zustandskodierung

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 o ensichtlich (s ; s ) und (s ; s ).
1 2 2 3

3.2.2.3 Weiteres Beispiel zur optimalen Zustandskodierung


Als ein weiteres Beispiel dient der durch folgende Zustandsfolgetafel gegebene Automat, mit
dem das im vorhergehenden Abschnitt vorgestellte Verfahren uberpruft werden soll (Es ist
46 Kapitel 3. Schaltwerkentwurf

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

Der zugehorige Implikationsgraph ist Abbildung 3.8 zu entnehmen.

Abbildung 3.8: Implikationsgraph zum Beispiel zur optimalen Zustandskodierung

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 o ensichtlich 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

(s 7!) 01 11=0 00=1


1

(s 7!) 11 11=1 01=1


3

(s 7!) 10 00=1 11=0


2
3.3. Entwurf von Synchronschaltwerken 47

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.

Abbildung 3.9: KV{Diagramme, Beispiel zur optimalen Zustandskodierung

Diese liefern die folgenden Gln.:


u+ = f (x; u) = u  x + u  x
c
1 1 (3.30)
u = f (x; u) = u  x + u  x + u  x
0 0
+ c
1 0 0 1 (3.31)
z = g (x; u) = u  x + u  x
1
c
0 1 (3.32)

3.3 Entwurf von Synchronschaltwerken


3.3.1 Entwurf mit getakteten Flip ops
Es wurde bereits erwahnt, da die in Synchronschaltwerken auftretende Speicherkomponen-
te in der Praxis durch Flip ops realisiert wird. Aus den Grundlagen der Digitaltechnik ist
bekannt, da es verschiedene Flip optypen gibt, die sich aus analytischer Sicht in den sie
beschreibenden charakteristischen Gleichungen unterscheiden. Es ist daher fur die Synthese
eines Synchronschaltwerkes stets ausschlaggebend, welcher Flip optyp fur die Speicherung
des Zustandsvektors verwendet wird. Bei den meisten Aufgabenstellungen entscheidet die
Wahl des Flip optyps fur die Schaltwerksynthese daruber, in welchem Ausma noch zusatz-
liche kombinatorische Logik benotigt wird.
In Tabelle 3.1 sind die charakteristischen Gleichungen der wichtigsten taktgesteuerten
Flip ops angegeben, wobei fur die Flip op{Ausgange das Symbol u verwendet wird, da in
der Praxis meist die oben besprochene Zustandskodierung verwendet wird.
Um die fur den nachfolgend vorgestellten Schaltwerkentwurf benotigte Eingangsbeschal-
tung der Flip ops zu bestimmen, mu eine Eingangsseparation vorgenommen werden: Es
48 Kapitel 3. Schaltwerkentwurf

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
+ ! + +

Tabelle 3.1: Typen taktgesteuerter Flip ops

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

Der Entwurf vollzieht sich in den folgenden Schritten:


1. Kodierung der inneren Zustande. Nachdem gegebenenfalls eine Zustandsminimie-
rung vorgenommen worden ist, werden die inneren Zustande des Automaten kodiert,
um mit moglichst wenigen Flip ops zur Zustandsspeicherung auszukommen.
Da es sich im Beispiel um einen Moore{Automaten handelt, bei dem der Ausgangs-
vektor einzig vom aktuellen Zustand abhangt, werden die Zustande dieses Zahlers
zweckmaigerweise entsprechend dem Dezimalwert z des jeweiligen Zahlerstandes ko-
 bergangsvektor mit drei Bits, also u = ( u u u ), benotigt
dez

diert. Da hierfur ein U


wird, ergeben sich zwei ungenutzte Zustande u = ( 1 1 0 ) und u = ( 1 1 1 ),
2 1 0

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 unde nierten 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-
+

nutzten Zustanden zugeordneten Don't Cares verwendet, um den Aufwand an kom-


binatorischer Logik im Schaltungsaufbau gering zu halten. Da spater mit Hilfe der
Eingangsseparation (siehe Tabelle 3.1 rechts) die Flip opbeschaltung bestimmt wer-
den soll, werden in den KV{Diagrammen fur ui nur solche Terme gebildet, die alle
+

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

Abbildung 3.10: KV{Diagramme, Beispiel zur Schaltwerksynthese mit Flip ops

Man erkennt, da bei konstantem Eingangsvektor spatestens nach einem ungenutzten
Zwischenzustand ein de nierter 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.

Abbildung 3.11: Realisierung des Schaltwerks mit JK{Flip ops

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

auf den Ausgangsvektor z vorgenommen. Im vorliegenden Fall konnte man z. B. einen


BCD{Dekoder zur Ansteuerung einer Sieben{Segment{Zi ernanzeige vorsehen. Da die
Probleme des eigentlichen Automatenentwurfs aber bereits gelost sind, soll darauf hier
verzichtet werden.

3.3.2 Entwurf mit R{PALs


In der Praxis werden Schaltwerke nicht wie oben mit diskreten Gattern aufgebaut, sondern
| bei Kleinserien und Prototypen | mit programmierbaren Logikbausteinen, die bereits
in den Grundlagen der Digitaltechnik vorgestellt wurden. In diesem Abschnitt soll darge-
stellt werden, welche Besonderheiten sich beim Schaltwerkentwurf mit sogenannten R{PALs
ergeben; dies sind Bauelemente mit Programmable Array Logic\, die zusatzlich die zur Zu-
"
standsspeicherung notigen "Register\ in Form von D{Flip ops enthalten [6]. Abbildung 3.12
zeigt das Prinzipschaltbild eines solchen Bausteins. Man erkennt, da fur jedes D{Flip op
eine Ruckfuhrungsleitung vorgesehen ist, mit der jeweils u und u wieder in die Und{Matrix
eingekoppelt werden konnen.

Abbildung 3.12: Ausgangsschaltung eines R{PALs

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 de nierter 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.

Abbildung 3.13: Realisierung des Schaltwerks mit einem R{PAL{Baustein

3.4 Entwurf von Asynchronschaltwerken


3.4.1 Laufzeiten in Asynchronschaltwerken
In Abschnitt 1.4.3.4 wurde der asynchrone Algorithmus schon kurz vorgestellt. In der Praxis
verwendet man auch fur ein Asynchronschaltwerk die bereits beschriebene Zustandskodie-
 uhrungsvektors u. Da sich
rung; die Zustandsruckfuhrung geschieht also mit Hilfe eines Uberf
der in Abbildung 1.3 gezeigte Speicher bzw. die Verzogerungsfunktion allein durch die Lauf-
zeiten der verwendeten Gatter ergibt, reduziert sich ein Asynchronschaltwerk in der Praxis
auf den in Abbildung 3.14 dargestellten Aufbau, wobei der kombinatorische Schaltungsblock
samtliche aus der Theorie abgeleiteten Matrizen F (x), G(x), C und C realisiert. Es ergibt
T

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

Abbildung 3.14: Realisierung eines Asynchronschaltwerks

realisieren, kann es zu unerwunschten, kurzzeitigen Peaks im Ausgangssignal kommen, die


im allg. von den nachfolgenden Schaltungen naturlich weiterverarbeitet werden und so unter
Umstanden zu Fehlfunktionen fuhren. Aus den Grundlagen ist bekannt, wie man beim Schal-
tungsentwurf durch Bildung zusatzlicher Primterme Abhilfe scha t. Dies ist in Abbildung
3.15 am Beispiel eines KV{Diagramms noch einmal kurz dargestellt.

Abbildung 3.15: Zur Entstehung und Behebung von Hazards

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

Asynchronschaltwerk typischerweise fehlende Verzogerung in der Ruckfuhrung von u wieder


z. B. in Form einer Reihe von Pu ergattern einzufugen, um zu erreichen, da u mit Sicherheit
d
3.4. Entwurf von Asynchronschaltwerken 55

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 zwangslau g 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 klassi zieren:
(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

3.4.2 Zustandskodierung bei Asynchronschaltwerken


Der Entwurf eines Asynchronschaltwerkes geht zunachst genauso vor sich, wie der eines Syn-
chronschaltwerkes. Aus der gegebenen Aufgabenstellung entwickelt man eine erste Zuweisung
der inneren Zustande des Automaten. Ergeben sich dabei Zustande, die schon aus der Auf-
gabenstellung heraus als instabil\ anzusehen sind, also solche, bei denen ein Verweilen nicht
"
sinnvoll ist, da hier kein Ausgangsvektor benotigt wird, so werden diese ignoriert. Dann wird
mit einem der bereits vorgestellten Verfahren eine Zustandsminimierung vorgenommen, wo-
bei naturlich bei der Wahl des Verfahrens zu berucksichtigen ist, da auch hier zwischen
vollstandig und unvollstandig de nierten Automaten unterschieden wird. Dann wird eine Zu-
standskodierung s 7! u in der Weise vorgenommen, da sich in der Zustandsfolgetafel von
Zeile zu Zeile immer nur eine Komponente von u andert, damit kritische Laufe weitestgehend
vermieden werden.
Man erhalt auf diese Weise zum Beispiel eine Zustandsfolgetafel mit folgendem Aussehen:
[(u ; u ) =z ] :
0 1
d
x0 ; x1 ! 0; 0 0; 1 1; 1 1; 0
0; 0 0; 0=0 0; 0=0 1 ; 1 =1 0; 1=1
0; 1 0; 1=1 1; 1=1 1; 1=1 0; 1=1
1; 1 0 ; 0 =0 1; 1=1 1; 1=1 1; 0=0
1; 0 0 ; 0 =0 0; 0=0 1; 0=0 1; 0=0
Darin sind die stabilen Zustande unterstrichen markiert, dies sind wie in Abschnitt 1.4.3.4
bereits erwahnt diejenigen Zustande, bei denen u = u bei konstantem x gilt.
d

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 betri t. 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 ero nen
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

Man erhalt so die folgenden Schaltfunktionen:


ud0= u u +u x +u x
0 1 0 0 1 1 (3.59)
u = u u +u x +u x
d
1 0 1 0 0 1 1 (3.60)
z = u 1 (3.61)
Damit kann die in Abbildung 3.17 gezeigte Schaltung aufgebaut werden.

3.4.3 Analyse von Asynchronschaltwerken


Auf die Analyse von Asynchronschaltwerken soll nicht allzu ausfuhrlich eingegangen werden,
da sie sich im wesentlichen in umgekehrter Richtung wie der gerade gezeigte Entwurf vollzieht.
Der grundlegende Schritt bei der Analyse ist das Auf nden und Auftrennen des Ruck-
fuhrungszweiges in einer gegebenen Schaltung zur Gewinnung von ui und ui . In unuber- d

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

Abbildung 3.16: KV{Diagramme, Beispiel zum Entwurf asynchroner Schaltungen


3.4. Entwurf von Asynchronschaltwerken 59

Abbildung 3.17: Realisierung des Asynchronschaltwerks


60 Kapitel 3. Schaltwerkentwurf
Abbildungsverzeichnis
1.1 Zustandsgraph der Stehleuchte . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 
Zum Verstandnis der Ubergangsmatrix anhand des Beispiels . . . . . . . . . . 9
1.3 Mealy{Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Weitere Automatenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Veranschaulichung der Zustande [zeit-][orts-]sequentieller Algorithmen . . . . 14
1.6 Gasmolekul im Kammernlabyrinth, Beispiel zum stochastischen Automaten . 16
1.7 Zustandsgraph zum stochastischen Algorithmus . . . . . . . . . . . . . . . . . 16
2.1 [Stark] zusammenhangender Automat . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Veranschaulichung einiger Begri e zur Zustandsminimierung . . . . . . . . . . 27
2.3 Zur Intransitivitat der Kompatibilitat . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Halbmatrix zum Verfahren nach Paull/Unger, erstes Beispiel . . . . . . . . 29
2.5 Halbmatrix zum Verfahren nach Paull/Unger, zweites Beispiel . . . . . . . 31
2.6 Zusammenhang der Implikationen, Paull/Unger, zweites Beispiel . . . . . . 31
2.7 Halbmatrix zum Verfahren nach Paull/Unger, drittes Beispiel . . . . . . . 32
2.8 Verschmelzungsgraphen fur das dritte Beispiel . . . . . . . . . . . . . . . . . . 33
2.9 Implikationsgraph fur das dritte Beispiel . . . . . . . . . . . . . . . . . . . . . 34
3.1 Blockschaltbild zur Zustandskodierung . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Vereinfachte Beschreibung eines zustandskodierten Automaten . . . . . . . . 41
3.3 AuÆnden der technisch relevanten Moglichkeiten der Zustandskodierung . . . 42
3.4 Einige Kodierungsmoglichkeiten fur m = 5 . . . . . . . . . . . . . . . . . . . . 43
3.5 Zur Erinnerung an das KV{Diagramm . . . . . . . . . . . . . . . . . . . . . . 44
3.6 Beipiel zur optimalen Zustandskodierung . . . . . . . . . . . . . . . . . . . . . 45
3.7 Implikationsgraph zur optimalen Zustandskodierung . . . . . . . . . . . . . . 45
3.8 Implikationsgraph zum Beispiel zur optimalen Zustandskodierung . . . . . . . 46
3.9 KV{Diagramme, Beispiel zur optimalen Zustandskodierung . . . . . . . . . . 47
3.10 KV{Diagramme, Beispiel zur Schaltwerksynthese mit Flip ops . . . . . . . . 50
3.11 Realisierung des Schaltwerks mit JK{Flip ops . . . . . . . . . . . . . . . . . . 51
3.12 Ausgangsschaltung eines R{PALs . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.13 Realisierung des Schaltwerks mit einem R{PAL{Baustein . . . . . . . . . . . 53
3.14 Realisierung eines Asynchronschaltwerks . . . . . . . . . . . . . . . . . . . . . 54
3.15 Zur Entstehung und Behebung von Hazards . . . . . . . . . . . . . . . . . . . 54
3.16 KV{Diagramme, Beispiel zum Entwurf asynchroner Schaltungen . . . . . . . 58
3.17 Realisierung des Asynchronschaltwerks . . . . . . . . . . . . . . . . . . . . . . 59
62 Abbildungsverzeichnis
Literaturverzeichnis
[1] Borucki, L. Grundlagen der Digitaltechnik. Teubner, Stuttgart, 1977
[2] Giloi, Wolfgang; Liebig, Hans. Logischer Entwurf digitaler Systeme, 2. uberarbeitete Auf-
lage. Springer, Berlin, Heidelberg, 1980
[3] Papula, Lothar. Mathematik fur Ingenieure 2, 6. verbesserte Auflage. Vieweg, Braun-
schweig, 1991
[4] Pernards, Peter. Digitaltechnik, 2. durchgesehene Auflage. Huthig, Heidelberg, 1989
[5] Sturz, H.; Cimander, W. Logischer Entwurf digitaler Schaltungen, 1. Auflage. Huthig,
Heidelberg, 1977
[6] Tietze, Ulrich; Schenk, Christoph. Halbleiter{Schaltungstechnik, 10. Auflage. Springer,
Berlin, Heidelberg, 1993

You might also like