1 4. Sequentielle Logik 4.1 Einführung In Rechnern und

Werbung
Informatik V-Teil 2,Kap. 4, SS 99
4.
Sequentielle Logik
4.1
Einführung
In Rechnern und Rechnerstrukturen verwendete Schaltungen lassen sich grob in kombinatorische
und sequentielle Schaltungen unterscheiden.
Sequentielle Schaltungen enthalten Schaltelemente, die einen logischen Zustand speichern können.
Dies können, wie bei einfachen Flip-Flops, kombinatorische Gatterschaltungen sein, welche
zusätzliche Rückkopplungen enthalten.
Sequentielle Schaltungen lassen sich generell partitionieren in kombinatorische Schaltungsteile,
speichernde Elemente und Rückkopplungen.
Während der Ausgang und die internen logischen Werte kombinatorischer Schaltungen nur von den
Belegungen der Schaltungseingänge abhängen, sind sequentielle Schaltungen zusätzlich von
vorherigen Schaltungszuständen abhängig.
Eingangssignale
Kombinat.
X
Ausg.
Logik
Ausgangssignale
Logik
g (Z,X)
Y
Z
f
Ausgabefunktion:
Z*
Y = f(Z,X)
RK-Netz
(z. B. FFs)
Übergangsfunktion:
Z* = g (Z,X)
Z
Abb. 4.1 a: Sequentielle Schaltung (Schaltwerk) als Mealy-Automat
Eine allgemein gültige Repräsentation von Schaltwerken ist durch die Darstellung als Automat
möglich, der neben Eingangssignalen auch interne logische Zustände und definierte Zustandsübergänge aufweist.
Bei der Repräsentation als mealy-Automat sind ist der Schaltungsausgang von Eingängen und durch
Rückkopplung gespeicherten Zuständen abhängig (Abb. 4.1a). In der spezielleren Darstellung als
Moore-Automat (Abb. 4.1b) besteht am Ausgang nur eine direkte Abhängigkeit von den inneren
Zuständen.
Ausgabefunktion:
Eingangssignale
Kombinat.
X
Z
Y = f (Z)
Logik
Übergangsfunktion:
g (Z,X)
Z* = g(Z, X)
Z *
RK-Netz
(z. B. FFs)
Ausg.
L o g ik
Y = f (Z)
f (Z)
Abb. 4.1 b: Schaltwerk-Darstellung als Moore-Automat
1
Informatik V-Teil 2,Kap. 4, SS 99
Sequentielle Schaltungen allgemeiner Art sind asynchron. Zustandsübergänge erfolgen dann nur in
Abhängigkeit von internen Schaltungsparametern. Beispielsweise wird der Zustand eines
gewöhnlichen Master-Slave-Flip-Flops nur durch die Belegung seine Eingänge und den vorher
gespeicherten Zustand
bestimmt.
Eine wichtige spezielle Sorte sequentieller digitaler Schaltungen sind synchrone Schaltungen. Bei
ihnen ist eine Zustandsänderung nur möglich, wenn ein steuernder, spezieller Takt-Eingang (Clock)
diesen Übergang erlaubt. Bezogen auf die Automatendarstellung wird dort die Rückkopplung nur zu
bestimmten kontrollierten Zeitpunkten aktiv.
Voll synchrone Schaltungen, also solche, die durch ein einziges gemeinsames globales Takt-Signal
gesteuert werden, haben praktisch eine überragende Bedeutung.
Synchrone Schaltungen sind in der Regel aufwendiger und langsamer als asynchrone Schaltungen
(durch den zusätzlichen Aufwand für die Clock).
Sie haben wegen der Clock in der Tendenz auch einen höheren Leistungsverbrauch, zu dem
insbesondere das auf aufwendige und weit verzweigte Clock-Netz wesentlich beiträgt. Bei
herkömmlichen voll synchronen Schaltungen werden alle Clock-Leitungen regelmäßig "aktiviert", d.
h. umgeladen, selbst wenn ein bestimmter Schaltungsteil gerade inaktiv sein sollte. Asynchrone
Schaltungen benötigen ein aufwendiges Clock-Netzwerk nicht. Eine Signalverarbeitung durch einen
Baustein geschieht, sobald die Eingangsdaten "anliegen". Damit existiert aber auch keine zentrale
Steuerung des Zeitverhaltens der Schaltung, es wird, wenn nicht spezielle Arten der Kommunikation
eingebaut sind, ein "wildes" Umschalten erfolgen. Asynchrone Schaltungen sind schwer zu entwerfen
und noch schwerer zu testen, da sich die internen Zustandsübergänge in Abhängigkeit von
Schaltungsparametern (Signallaufzeiten, Anstiegszeiten, Abfallzeiten, Halte-zeiten) quasi-zufällig
ergeben.
Um sicher zu sein, daß gewünschte Zustandsübergänge auch tatsächlich erfolgt sind, müssen bei
größeren asynchronen Schaltungen sogenannte "Handshaking-Prozeduren" eingeführt werden.
Beispiele asynchroner Schaltungen "im Kleinen" sind Monoflops, auch als "monostabile Kippglieder"
bekannt.
Bereits auf ICs bekommt man heute Probleme mit voll synchronen Schaltungen:
Bei Clock-Leitungen mit Längen von einigen cm und Schaltzeiten der aktiven Elemente unter 1 ns
beeinflussen die Laufzeiten von Signalen auf Leitungen das Schaltverhalten großer
Digitalschaltungen insgesamt massiv.
Es ist also zunehmend immer schwerer, Systeme voll synchron zu bauen. Neuere Systeme für die
Datenkommunikation (z. B. ATM) sind selbstverständlich asynchron, weil man solche großen,
verteilten Systeme insgesamt nicht synchron bauen kann.
In dieser Vorlesung wird im wesentlichen nur voll synchrone Logik behandelt, wie sie in
Digitalrechnern fast ausschließlich vorkommt.
Sequentielle Schaltungen werden auch als "Schaltwerke" , kombinatorische Schaltungen als
"Schaltnetze" bezeichnet.
4.2
Sequentielle Grundschaltungen
Die wichtigsten sequentiellen Grundschaltungen sind Flop-Flops. Das sind logische Elemente mit
lokaler Rückkopplung, die geeignet sind, einen digitalen Zustand zu speichern. Die einfachsten FlipFlops sind aus nur 2 kreizweise rückgekoppelten NAND- oder NOR-Gattern aufgebaut.
2
Informatik V-Teil 2,Kap. 4, SS 99
R
&
S
&
Q
Q
Abb. 4.2a: RS Flip-Flop mit NAND -Gattern
Wahrheitstabelle:
_
S
R
Q
Q
--------------------------------------1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
(nach S = 1, R = 0)
(nach S = 0, R = 1)
verbotener Zustand !!
Man kann S als "Setzeingang" und R als "Rücksetzeingang" ansehen.
Für ein RS-Flip-Flop aus NOR-Gattern gilt eine äquivalente Wahrheitstabelle:
R
>1
S
>1
Q
Q
Abb. 4.2 b: RS-Flip-Flop aus NORs
Wahrheitstabelle:
_
S
R
Q
Q
--------------------------------------1
0
1
0
0
0
1
0 (nach S = 1, R = 0)
0
1
0
1
1
1
0
0 (verbotener Zustand !!)
0
0
0
1 (nach S = 0, R = 1)
Diese Flip-Flops besitzen zunächst die Zustände "Setzen (S=1, R = 0) bzw "Rücksetzen" (S = 0,
R = 1). Als dritter Zustand existiert "Speichern" mit R=S=0 beim NOR-Typ, entsprechend mit R = S
= 1 beim NAND-Typ.
Bezüglich der Eingangsbelegungen ist jeweils ein weiterer Zustand möglich. Wie die
Wahrheitstabelle zeigt, ist dieser vierte Zustand (R = S = 0 beim NAND-Typ, R = S = 1 beim NORTyp) irregulär, da die Ausgangsknoten nicht mehr komplementär sind.
3
Informatik V-Teil 2,Kap. 4, SS 99
Bei einem Übergang von diesem "irregulären" Zustand auf den Speicherzustand ist der Folgezustand
nicht vorhersagbar.
Praktisch kann man deshalb einfache R-S-Flip-Flops nur verwenden, wenn durch sonstige
Eigenschaften der Schaltung der "verbotene" Zustand ausgeschlossen werden kann.
Die einfachsten, RS Flip-Flops, besitzen keinen Takt-Eingang und sind deshalb praktisch von
untergeordneter Bedeutung. Getaktete, mit zusätzlichen Clock-Eingängen versehene RS Flip-Flops
sind ebenfalls praktisch noch nicht sehr gebräuchlich. Bei Ihnen allen existiert das Problem, daß bei
einem "1" Wert an beiden Eingängen der sich am Ausgang einstellende Wert unbestimmt ist.
R
&
>1
&
>1
Q
CL
S
Q
Abb. 4. 3: RS-Flip-Flop aus NORs mit Takteingang
Von großer praktischer Bedeutung sind dagegen D-Flip-Flops. Sie ergeben sich daraus, daß der SEingang eines RS-Flip-Flops über einen Inverter mit dem R-Eingang verbunden ist. Damit ist der
"verbotene" Eingangszustand nicht mehr möglich. Allerdings hat man nur einen Eingang zur
Verfügung.
&
D
&
Q
CL
Q
&
&
Abb. 4.4: D-Flip-Flop mit Takteingang
Ein Flip-Flop mit 2 Eingängen, bei dem alle Eingangswerte zulässig sind, ist das JK - Flip-Flop.
K
&
> 1
Q
CL
J
&
> 1
Abb. 4.5: JK-Flip-Flop mit Takteingang
4
Q
Informatik V-Teil 2,Kap. 4, SS 99
Q
J
K
Q(t + 1)
_______________________________
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
Das Zustandsgesteuerte JK-Flip-Flop hat den Nachteil, daß Instabilitäten möglich sind. Mit J = K = 1
und einem Takt-Signal, das auf "high" bleibt, wenn das Flip-Flop umgeschaltet hat, erfolgt ein
weiteres Umschalten.
Ein solches Flip-Flop ist nur dann stabil, wenn die Laufzeit eines Signals durch das Flop-Flop länger
ist als die Dauer der "high" - Phase des Takts. Das ist für die Praxis eine wesentliche Einschränkung,
weshalb solche einstufigen zustandsgetriggerten Flip-Flops praktisch kaum ausgeführt werden.
(Einstufige zustandsgesteuerte Flip-Flops werden in der englischen Literatur oft als "Latches"
bezeichnet, also z. B D-Latch.)
Das Problem der Instabilitäten durch mehrfache Zustandsübergänge läßt sich dann lösen, wenn
mehrstufige oder flankengesteuerte Flip-Flops verwendet werden.
Wichtige Typen von Flip-Flops sind zweistufig und weisen eine sogenannte "Master-Slave"-Struktur
auf.
Y
S
S
R
R
Q
S
Y
Q
R
CL
Abb. 4.6: Struktur eines Master- Slave-Flip-Flops
Das linke Flip-Flop ist der Master, das rechte der Slave.
Als Ausgangspunkt sei der Fall Y = 0 und Q = 0 angenommen. Die Eingangsbedingung sei S = 1, R
= 0. Als nächster Zustand soll nun das Flip-Flip in den Zustand Q = 1 gebracht, also quasi "gesetzt"
werden. Beim nächsten Clock-Pulse wird das Master-Flip-Flop gesetzt, also Y = 1. Das Slave-FlipFlop wird davon zunächst nicht berührt, da am takt-Eingang eine Null anliegt. Damit tritt auch an Q
und Q' keine Zustandsänderung auf. Erst wenn der Übergang des Taktsignals von 1 auf 0 erfolgt,
wird das Slave-Flip-Flop aktiv und übernimmt den Ausgangszustand des Master-Flip-Flops. Das
Master-Flip-Flop seinerseits ist dabei wegen CL=0 desaktiviert und hält den vorherigen Zustand.
In einem Master-Slave-Flip-Flop kann man also Eingang und Ausgang mit demselben Clock-Impuls
umschalten. Das Signal S kann sogar von einem anderen MS-Flip-Flop kommen, das mit demselben
Clock-Impuls geschaltet wurde.
Natürlich ist es auch möglich, statt eines positiven Takt-Impulses auch einen negativen zu
verwenden. Dazu muß in die Clock-Leitung vor der Verzeigung ein weiterer Inverter eingefügt
werden. Dann schaltet der Master den Eingangswert mit der negativen Takt-Flanke durch, der Slave
übernimmt bei der positiven Flanke.
5
Informatik V-Teil 2,Kap. 4, SS 99
J
&
&
1
Y
&
3
5
&
Q
7
K
&
CL
&
2
&
4
&
6
8
Q
Y
9
Abb. 4.7: JK Master-Slave-Flip-Flop
Als weiteres Beispiel ist vorstehend ein JK-MS-Flip-Flop dargestellt.
Der Gaster (Gatter 1,2,3,4) ist ein einstufiges JK-FF, der Slave (Gatter 5,6,7,8) ist ein RS-FF mit
Clock-Eingang.
Bei CL=1 wird der Eingangswert von J nach Y übernommen. Dabei kann Y nur 1 werden, wenn Q =
0 ist, also Q' = 1. Bei J = K = 0 bleibt der vorhergehende Zustand erhalten, bei J = K = 1 entscheidet
der im Slave abgespeicherte vorherige Zustand, es wird ein Wechsel auftreten.
Wenn CL auf 0 zurückfällt, wird der Zustand von Y nach Q übernommen.
In einem digitalen System, das mit solchen MS-FFs ausgerüstet ist, werden sich jeweils bei
steigender Taktflanke einige Master-FFs intern ändern. Alle FF-Ausgänge bleiben stabil. Bei
fallender Flanke erst werden die Ausgänge der Slaves davon beeinflußt und werden ihrerseits
wiederum Eingänge anderer FFs beeinflussen. Diese Eingänge werden aber erst bei der nächsten
positiven Taktflanke wirksam.
Ein anderer Typ von praktisch verwendeten Flip-Flops sind flankengetriggerte Flip-Flops. Bei ihnen
wird ein Zustandswechsel am Ausgang wirksam, sobald die steigende oder fallende Spannung am
Eingang einen bestimmten Schwellenwert über- bzw. unterschritten hat.
&1
CL
&2
&3
D
S
&5
Q
R
&6
Q
&
4
Abb. 4.8: Flankengesteuertes D-Flip-Flop
Das flankengesteuerte D-FF enthält drei einfache RS-FFs, die jeweils durch die Gatter 1 und 2, 3 und
4 , 5 und 6 gebildet werden. Wenn die Knoten S und R beide auf logisch high gehalten werden, so
bleibt der Ausgang im vorherigen Zustand. Bei S = 0 und R = 1 geht der Ausgang auf Q = 1. Bei S =
1 und R = O setzt sich der Ausgang auf Q = 0. Die Werte von S und R werden durch die anderen
beiden FFs bestimmt.
6
Informatik V-Teil 2,Kap. 4, SS 99
&1
CL
&2
&3
D
S
R
&
4
Abb. 4.9: Flankengesteuertes D-FF, Teilschaltung
Es sei zunächst CL = 0. Der Eingang D kann o oder 1 sein. Dann werden in jedem Fall die Ausgänge
der Gatter 2 und 3 auf 1 liegen, also R = S = 1. Der Zustand wird also gehalten. Bei D = 0 hat Gatter
4 den Ausgang auf logisch 1. Damit geht über die Rückkopplung der Ausgang des Gatter 1 auf
logisch 0. Bei D = 1 geht dagegen der Ausgang von G4 auf logisch 0, entsprechend wird der
Ausgang von G1 auf logisch 1 gesetzt.
Dies sind die beiden Zustaände, welche die Schaltung bei gesperrtem Ausgang durch CL = 0 haben
kann.
Es gibt eine bestimmte Zeit, für welche der logische Wert 1 am D-Eingang anliegen muß, die
sogenannte "setup-Zeit". Diese ist bestimmt durch die Laufzeit von Zustandsänderungen durch die
Gatter 1 und 4, einschließlich natürlich der Verbindungsleitungen.
Wir nehmen jetzt an, daß sich D = 0 während dieser Zeit nicht ändert und gleichzeitig der ClockEingang CL von 0 auf 1 wechselt. Dann bleibt R auf logisch 1, aber R ändert sich auf logisch 0.
Damit geht dann auch der Ausgang Q auf den logischen Wert 0.
Wenn sich jetzt, während Cl auf 1 ist, der Wert von D von 0 auf 1 ändert, bleibt der Ausgang von G4
auf 1, da sich G4 über die Rückkopplung von R stabilisiert oder selbst hält. Nur dann, wenn Cl auf 0
wechselt, kann sich der Ausgang von G4 ändern. Aber dann werden R und S logisch 1 und
verhindern jeden Zustandswechsel am Ausgang.
Es gibt aber eine sogenannte "hold time" (Haltezeit), für die D nach dem Übergang von CL auf 1
stabil bleiben muß. Diese haltezeit entspricht der Verzögerung von Gatter 3.
Wenn D = 1 ist und CL = 1 wird, dann ändert sich S auf logisch 0, aber R bleibt auf logisch 1,
wodurch der Ausgang des FF auf 1 geht. Eine Änderung von D während CL = 1 ist ändert S und R
nicht, weil der Ausgang von G1 durch das 0-Signal von S gehalten wird. Wenn CL auf 0 geht,
sperren R = S = 1 wieder eine Zustandsänderung am Ausgang.
Damit ist ein praktisch wertvolles Verhalten erreicht: Steuernd auf den Ausgang des Flip-Flops wirkt
sich nur der Eingangswert aus, der bei steigender Flanke der Clock anliegt. Weder
Zustandsänderungen des Eingangssignals beim high-Zustand der Clock noch die negative Flanke
bewirken Zustandsänderungen.
Werden die notwendigen Set-up- und Haltezeiten beachtet, sind solche Flip-Flops genau so gut wie
MS-FFs in sequentiellen Schaltungen einsetzbar.
Für manche Anwendungen ist es nützlich bis notwendig, wenn Flip-Flops durch zusätzliche
Leitungen mittels eines Signals definiert gesetzt oder zurückgesetzt werden können.
7
Informatik V-Teil 2,Kap. 4, SS 99
Man sieht dann entsprechende zusätzliche SET- oder RESET- Eingänge vor. In großen sequentiellen
Schaltungen sind solche Maßnahmen zur gezielten Initialisierung notwendig. Nicht initialisierbare
Schaltungen sind in der Regel auch fast nicht testbar.
4.3
Beschreibung und Analyse sequentieller Schaltungen
Die von kombinatorischen Schaltungen bekannten Wahrheitstabellen reichen für sequentielle
Schaltungen in dieser Form nicht mehr aus. Ihr Ausgangszustand hängt nämlich von der
Vorgeschichte, also von vorherigen gespeicherten Zuständen ab. Anhand eines einfachen Beispiels
sollen deshalb die gebräuchlichsten Arten den Beschreibung einer sequentiellen Schaltung dargestellt
werden.
CL
x'
&
R
Q'
B'
S
Q
B
R
Q'
A'
S
Q
A
x
x
&
&
&
A
B'
&
y
Abb. 4.10: Sequentielle Beispielschaltung
Im Beispiel nicht dargestellt sind die globalen Rückkopplungen, d. h. vom Ausgang A zum Eingang
A etc.. Die Schaltung hat eine Eingangsvariable x und eine Ausgangsvariable y. Die verwendeten
Flip-Flops sollen negativ flankengetriggert sein. Es wird ebenfalls angenommen, daß sich der
Eingang x ebenso verhält, also wenn, dann nach der fallenden Flanke des Taktes seinen Zustand
ändert. Das Eingangssignal an x steht also nach einem Takt bis zur negativen Flanke des nächsten
Taktes stabil an.
Zur Beschreibung des Verhaltens der Schaltung kann man eine tabellarische Aufstellung verwenden.
Statt der Zustandstabellen bei kombinatorischer Logik sind dies aber Übergangs-tabellen, die sich auf
Zustände und Übergänge beziehen.
Beispiel:
nächster Zustand
Ausgang
-------------------------------------------------------------------Letzter Zustand
x=0
x=1
x=0
x=1
---------------------------------------------------------------------------------------------A
B
A
B
A
B
y
y
---------------------------------------------------------------------------------------------0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
Wir sind hier davon ausgegangen, daß als Anfangszustand A = 0 und B = 0 galt, also von einer
impliziten Annahme über einen erfolgten "reset".
8
Informatik V-Teil 2,Kap. 4, SS 99
Ist eine solche Annahme nicht möglich, so muß mit "X" - Zuständen (für "unbekannt", was aber
nicht "beliebig" bedeutet) zunächst eine Initialisierung herbeigeführt werden.
Die einzelnen Zustände für diesen Beispielfall kann man mit Kenntnis des Verhaltens der Flip-Flops
ableiten: 1 am S - Eingang setzt das FF, 1 am R-Eingang setzt es zurück, 0 an beiden Eingängen
speichert den vorherigen Zustand, beide Eingänge auf 1 ist nicht zulässig und würde einen
Entwurfsfehler der Schaltung zeigen.
Die Übergangstabellen komplexerer seuqntieller Schaltungen sind entsprechend aufzubauen.
Allgemein hat eine Schaltung mit m Flop-Flops und n Eingängen dann 2**m Reihen im Diagramm,
eine für jeden Zustand. Für die Darstellung der folgenden Werte und des Ausgangs benötigt man
dann noch 2**n Spalten.
Die spezielle Aufstellung der Ausgangswerte ist nur notwendig, wenn den Flip-Flops noch
kombinatorische Logik-Elemente nachgeschaltet sind. Ist der Ausgang der Gesamtschaltung der
eines FFs, so entfällt diese Spalte.
Man kann sich anhand des einfachen vorstehend gezeigten Beispiels schon überlegen, daß solche
Tabellen für große, sequentiell tiefe Schaltungen sozusagen "explodieren" und sehr unübersichtlich
werden.
In der Praxis haben sich auch andere Arten der Darstellung als effizienter und übersichtlicher
erwiesen.
0/0
00
00
1/1
1/0
1/0
10
01
0/1
0/0
0/0
11
1/0
Abb. 4.11: Darstellung einer sequentiellen Schaltungen als Zustandsdiagramm
Eine sehr gebräuchliche und beliebte Darstellung des Verhaltens einer sequentiellen Schaltung ist das
Zustandsdiagramm. Die Kreise bezeichnen Zustände, die Zustandsübergänge sind als gerichtete
gerade Linien zwischen den Kreisen dargestellt. Die binären Zahlen in den Kreisen bezeichnen den
Zustand, für den der Kreis steht. Die gerichteten Linien für die Zustandsübegänge werden durch eine
a / b - Kombination annotiert. Dabei bezeichnet "a" den Eingangszustand der Schaltung, die den
Zustandsübergang bewirkt, "b" bezeichnet den gegenwärtigen Zustand am Schaltungsausgang.
Beispiel:
Der Pfeil vom Zustand 0 0 zum Zustand 0 1 ist mit 1/ 0 annotiert. Dies bedeutet, daß die Schaltung
im gegenwärtigen Zustand mit dem "Namen" 0 0 beim Eingangswert x = 1 der Ausgang den Zustand
y = 0 hat. Bei Beendigung des nächsten Clock-Impulses geht die Schaltung in den Zustand 0 1 über.
Eine gerichtete Linie, die im selben Kreis mündet, zeigt an, daß bei der abgegebenen Eingangs- /
Ausgangskombination sich der Zustand der Schaltung nicht ändert.
Das Zustandsdiagramm enthält keine andere Information als die Zustandstabelle.
9
Informatik V-Teil 2,Kap. 4, SS 99
Normalerweise läßt sich die Zustandstabelle einfacher aus der Schaltung entwicken, aus der
wiederum direkt das Zustandsdiagramm entsteht.
Dagegen läßt sich das globale Verhalten eines sequentiellen Systems mit Hilfe des Zustandsdiagramms einfacher überblicken.
Auch die Spezifikation sequentieller Schaltungen über Zustandsdiagramme ist gebräuchlich.
Eine algebraische Art der Darstellung sind die Zustandsgleichungen.
Dabei bezeichnet die linke Seite der Gleichung den nächsten Zustand eines Flip-Flops und die rechte
Seite einen Boolsche Funktion, welche die Bedingungen für den gegenwärtigen Zustand angibt, für
welche der nächste Zustand des Flip-Flops logisch 1 wird.
Beispiel:
Aus der Zustandstabelle kann abgelesen werden, daß das Flip-Flop A für vier verschiedene Fälle auf
den Ausgangswert 1 geht: Wenn x = 0 und AB = 01 oder 10 oder 11 sind, oder wenn x = 1 und
AB = 11 sind.
Agebraisch kann man das wie folgt ausdrücken:
A (t + 1) = (A'B + AB' + AB)x' + ABx.
Die rechte Seite der Gleichung bezeichnet den gegenwärtigen Zustand der Schaltung. Wenn diese
Funktion 1 ist, so erzeugt die Clock als nächsten Ausgangswerte eine 1, wenn sie 0 ist, so erzeugt
die Clock eine 0.
Die linke Seite bezeichnet nur das Flip-Flop für den nächsten Zeittakt.
Natürlich ist es oft möglich, die algebraische Gleichung weiter zu reduzieren.
Zum Beispiel kann man hier auch schreiben:
A (t + 1) = Bx' + (B' x)'A
Mit Bx' = S und B'x = R kann man schreiben:
A (t + 1) = S + R'A
Das entspricht der sogenannten charakteristischen Gleichung eines RS-Flip-Flops.
Für die Zustände des Flip-Flops B kann man äquivalent schreiben:
B(t + 1) = A' x + (Ax')B
Aus dem Schaltbild kann man ablesen, daß der Eingang S des Flip-Flops durch die Funktion A' x und
das Signal für den Eingang R durch die Funktion A x' bestimmt ist. Wenn man S = A'x und R = A x'
substituiert, dann gilt:
B (t + 1) = S + R' B
Die Übergangsfunktion der Flip-Flop, in Kombination mit den Ausgangsfunktionen, spezifizieren
eine sequentielle Schaltung vollständig.
Dabei sind die Darstellungen in Tabellenform und das Zustandsdiagramm äquivalent.
10
Informatik V-Teil 2,Kap. 4, SS 99
4.4
Reduzierung von Zuständen und Zustandsäquivalenten
Die Minimierung logischer Funktionen ist nicht nur für kombinatorische Schaltungen eine wichtige
Aufgabe. Sie tritt ganz äquivalent auch bei sequentiellen Schaltungen auf. Ob man beispielsweise für
eine Ampelsteuerung eine "finite state machine" mit 500 oder mit 17 Zuständen realisiert, wird den
Aufwand bei der Implementierung der Schaltung wesentlich beeinflussen.
So ist es von erheblichem Interesse herauszufinden, ob 2 Zustände äquivalent sind.
Dabei kann man von folgender Grundregel ausgehen:
2 Zustände eines endlichen Automaten sind dann äquivalent, wenn sie für jeden aus der Menge der
zulässigen Eingangszustände denselben Ausgangswert liefern und dabei in gleiche oder äquivalente
Ausgangszustände übergehen.
4.5
Zähler
4.5.1 Klassifizierung
Eine sequentielle Schaltung, die beim Einlesen von Eingagspulsen durch eine festgelegte Folge von
Zuständen geht, wird als Zähler bezeichnet. Die Eingangssignale können sowohl Clock-Pulse als
auch Signalimpulse sein.
Zähler bzw. Teiler kommen in digitalen Systemen mit ganz verschiedenen Eigenschaften vor. Man
unterscheidet Zählet nach der funktionalen Arbeitsweise in
− asynchrone Zähler
− synchrone Zähler.
Der asynchrone Zähler wird z. B. die auf einer Leitung auftretenden 0 / 1 Übergänge, die zu
beliebigen Zeiten auftreten können, aufsummieren.
Der synchrone Zähler wird dagegen die Anzahl der Pulse eines regelmäßigen Taktsignals
aufsummieren.
Bezüglich der Kodierung kann man Zähler unterteilen in:
− Dualzähler, beruhend auf dem Binärcode
− Dezimale Zähler, beruhend auf z. B. dem BCD-Code
− Zähler die mit anderen Codes arbeiten.
Weiterhin wird man Vorwärts- und Rückwärtszähler in vielen Anwendungen benötigen sowie
programmierbare Zähler, denen ein Anfangswert sowie die Zählrichtung vorgegeben sind.
Gezählt wird die Anzahl der Ereignisse eines bestimmten Zustandes. Mit dem Ergebnis dieses
Zählvorganges können dann andere Ereignisse in einem digitalen System angestoßen werden.
4.5.2 Binärer Zähler
Die einfachste Form eines Zählers ist ein binärer Zähler, weil er der binären Zahlenfolge folgt. Ein nBit-Counter besteht aus n Flip-Flops und kann von 0 bis 2**n zählen.
11
Informatik V-Teil 2,Kap. 4, SS 99
000
001
111
010
110
011
101
100
Abb. 4.12: Zustandsdiagramm eines 3-Bit-Counters
A2
A1
A0
Q
Q
Q
T
T
T
Zählimpulse
&
1
Abb. 4.13: Logikdiagramm eines 3-Bit-Zählers mit T-Flip-Flops
Die Übergangstabelle eines 3-Bit-Zählers ist nachfolgend dargestellt.
Die Ausgänge (A1, A2, A3) des 3-Bit-Zählers stellen in der Folge der eingehenden Zählimpulse die
Folge der binären Zahlen dar. Die Rückkopplung sorgt dafür, daß auf den Zustand 111 der Zustand
000 folgt.
Der Aufbau erfolgt hier mit T-Flip-Flops. Das sind JK-Flip-Flops, bei denen jeweils die J- und KEingänge verbunden sind.
---------------------------------------------------------------------------------Zählsequenz
Eingänge der FFs
------------------------------------------------------------------------------------------------A2
A1
A0
TA2 TA1 TA0
------------------------------------------------------------------------------------------------0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
12
Informatik V-Teil 2,Kap. 4, SS 99
Ein binärer Zähler mit n Bits kann durchaus eine binäre Sequenz haben, die kleiner als 2**n ist. Ein
BCD-Zähler würde z. B. von 0000 bis 1001 zählen und dann nach 0000 zurückkehren, um die
Sequenz zu wiederholen.
4.5.3 Asynchroner Binärzähler / Frequenzteiler
Den Aufbau eines asynchronen Zählers mit J-K-Flip-Flops zeigt Abb. 4.14. Der Signaleingang der
Schaltung ist der Takteingang des ersten Flip-Flops. Durch die Verbindung der J- und K-Eingänge
kippt das Flip-Flop bei jedem Taktimpuls in die jeweils andere Lage um.
Q1
C
1J
C1
1K R
Q2
Q
1
Q3
1J
C1
1K R
1J
C1
1K R
Q
Q
1
1
reset
Abb. 4.14a: Asynchroner 3-Bit-Dualzähler mit JK-Flip-Flops
Bezüglich der Qusgänge Q2, Q1 und Q0 wird die Anzahl der gezählten Impulse im Dualsystem
ausgegeben (Abb. 4.14 b).
Z
Q2
Q1
Q0
0
1
2
3
4
5
6
7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Abb. 4.14 b: Zustände des asynchronen Dualzählers
Der Zähler wird jeweils eine gewisse Zeit benötigen, bestimmt durch die Verzögerungszeiten der
einzelnen Flip-Flops tv. Bei einer Anzahl von n Stufen ergibt sich eine Gesamt-Verzögerungszeit von
n*tv oder eine maximale Zählfrequenz von ftmax = 1 / n*tv.
Da durch die Wirkungsweise der master-Slave-Flip-Flops die Anzahl der weitergegebenen Pulse von
Stufe zu Stufe jeweils halbiert wird, kann man eine solche Schaltung als Frequenzteiler einsetzen.
Dies ist eine bevorzugte Anwendung.
Q0
R
&
C
Q1
&
1J
C1
1K
=1
&
=1
1J
C1
1K
=1
&
1
Q2
&
&
R = 1 : vorwärts
R = 0: rückwärts
Abb. 4.15: Asynchroner Vorwärts- Rückwärts-Zähler
13
1J
C1
1K
&
&
Informatik V-Teil 2,Kap. 4, SS 99
Für viele Anwendungen wird man einen Rückwärtszähler benötigen, z. B. in Zeitschaltungen. Einen
asynchronen Vorwärts- / Rückwärtszähler erhält man, wenn neben dem Q-Ausgang auch der
invertierte Q' -Ausgang wahlweise verwendet wird (Abb. 4. 15).
Entweder verwendet man dann zwei Eingänge, von denen jeweils einer zum Aufwärts- bzw.
Abwärtszählen dient, oder man verwendet nur einen Eingang und eine zusätzliche Logik zum
Umschalten.
4.5.4 Zähler mit nicht-binärer Modulus-Zahl
Grundsätzlich ist der Entwurf eines nicht-binären Zählers natürlich aufwendiger als der eines
Dualzählers. Durch eine geringe Modifukation kann aber aus einem 2**n - Zähler einer mit weniger
Zuständen erzeugt werden.
Betrachtet sei ein Zähler Modulo-m mit n =3 Stufen und m = 6.
Die generelle Realisierungsbedingung ist m < 2**n.
Q0
C
1J
C1
1K R
Q1
Q
1
Q2
1J
C1
1K R
1J
C1
1K R
Q
Q
1
1
&
Abb. 4. 16: Modulo-6-Zähler
Beim Durchlauf der Zustände muß der Zähler, sobald m = 6 erreicht ist, ein Clear- oder
Rücksetzsignal abgeben, damit als nächster Zustand " 0 0 0 " auftritt. Der
m = 6 entsprechende Zustand ist also nicht stabil und wird sofort in den Anfangszustand
zurückgeführt. Dazu wird aus dem Zustand (6) = 1 1 0 ein Signal zum Rücksetzen abgeleitet. Zur
Realisierung verknüpft man die Q-Ausgänge der binären 3-stufigen Zählers nach Abb. 4. 14 über ein
NAND-Gatter und steuert damit den RESET-Eingang der Flip-Flops (Abb. 4.16).
natürlich hat der Modulo-6-Zähler im Vergleich zum binären Zähler auch ein abgekürztes
Zustandsdiagramm (Abb. 4.17).
Q2 Q1 Q0
000
Z0
111
temporärer Zustand
001
Z1
"makroskopischer"
für R
Übergang
110
101
010
011
Z5
100
Abb. 4.17: Zustandsdiagramm des Modulo-6-Zählers
14
Z2
Informatik V-Teil 2,Kap. 4, SS 99
Grundsätzlich gilt folgende Entwurfsregel für einen Modulo-m-Asynchronzähler:
1. Man entwerfe einen Asynchronzähler mit einem Modulo gleich der kleinsten Binärzahl 2 **n <=
m (für m = 2**n entfallen die Folgeschritte).
2. Man verbinde den Ausgang eines NAND-Gatters mit allen R- (RESET)- Eingängen der FlipFlops
3. Man bestimme aus der Zustandstabelle, welche der Flip-Flops beim Zählerstand "m"
ausgangsseitig "1" - Signale führen und verbinde diese Ausgänge mit den Eingängen des NANDGatters.
Typische Eigenschaften solcher asynchroner Zähler sind:
− geringer Aufwand für die Steuerlogik
− geringe Zählgeschwindigkeit, bestimmt durch die addierten Verzögerungszeiten der Flip-Flops
− Empfindlichkeit gegen eine Verletzung von Zeitbedingungen während der Taktumschaltung
4.5.5 Synchrone Zähler
Synchronzähler sind dadurch gekennzeichnet, daß der Zählimpuls allen Flip-Flops gleichzeitig und
parallel zugeführt wird. Dadurch wirken sich die Schaltzeiten der einzelnen Stufen viel geringer aus,
allerdings steigt auch der Verknüpfungsaufwand im Vergleich zum asynchronen Zähler.
Damit nicht alle Stufen, sondern nur die gewünschten umschalten, werden mit zusätzlicher Logik alle
nicht benötigten Flip-Flops blockiert. Dann kippen entsprechend nur die Flip-Flops, die dem
Zählerstand entsprechend umkippen sollen. Man muß durch eine entsprechende Logik-Schaltung
einen Übertrag der vorherigen Stufe auf die nächste erfolgen, entweder durch eine serielle oder
parallele Übertragung.
Takt
Schaltnetz
E
A
Q0
1J Q
C1
1K Q
Q1
1J Q
C1
1K Q
Q2
1J Q
C1
1K Q
Abb. 4.18: Aufbau eines synchronen Zählers
Ein synchroner Zähler ist so zu entwerfen, daß bei n Eingangsvariablen (Qi) und 2n
Ausgangsvariablen an den FF-Eingängen (Ji, Ki) die gewünschte Zustandsfolge erscheint. Die
Ausgangsfunktionen der Logik, welche die FFs ansteuert, heißt auch die Anregungsfunktion.
15
Informatik V-Teil 2,Kap. 4, SS 99
Die Vorgehensweise für den Entwurf sieht wie folgt aus:
1. Man beginnt mit dem gewünschten Code und stellt daraus die Tabelle aller Zustände und den
Zustandsgraphen auf. Dabei können Pseudo-Zustände auftreten, die in den Zyklus des Zählers
einbezogen werden müssen.
2. In Abhängigkeit vom Typ des verwendeten Flip-Flops und seiner Zustandstabelle wird die
anfängliche Zustandstabelle in in eine Wahrheitstabelle für die Logik des Zählers umgewandelt.
Sie enthält den Zählerzustand, den jeweiligen Folgezustand und, über die FF-Synthesetabelle, die
neu benötigten Eingangsfunktionender FFs.
3. Aus dem jeweiligen Zählerzustand (Eingang der Logik) und der FF-Eingangsbelegung (=
Ausgangsfunktion der Logik) wird die Logikfunktion bzw. die Logik-Tabelle gewonnen.
4. Die so erhaltene Logiktabelle ist ggf. für die Realisierung zu vereinfachen (z.
Diagramm).
B. mit dem KV-
Als Beispiel sei ein 3-Bit-Binärzähler mit den Ausgängen Q2, Q1, Q0 zu entwerfen. Die
Zustandsfolge zeigt Abb. 4.19.
Zustand
1
2
3
4
5
6
7
8
Zahl
0
1
2
3
4
5
Zustd. tm
Zustd. tm+1
Y2 Y1 Y0
Y2 Y1 Y0
J2 K2 J1 K1 J0 K0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
X
X
X
X
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
FF-Ansteuerung
1
0
1
0
0
0
0
0
X
X
X
X
1
1
1
1
Abb. 4.19: Zustandsfolge des 3-Bit-Synchronzählers
Z7
1 1 0
Z6
1 0 1
1 1 1
Z8
0 0 0
1 0 0
Z1
0 0 1
Z5
Z2
0 1 1
Z4
0 1 0
Z3
Abb. 4.20: Zustandsgraph des 3-Bit-Synchronzählers
16
0 X
1 X
X 0
X 1
0 X
0 X
X 1
X 1
1 X
X 1
1 X
X 1
0 X
X 1
0 X
X 1
Informatik V-Teil 2,Kap. 4, SS 99
Der Zähler soll von 1 bis 5 zählen (Modulo-5-Zähler). Die Zustände 101, 110, 111 sind deshalb
Pseudo-Zustände, die nicht durchlaufen werden sollen. Sie sollen, falls auftretend (z. B. beim
Einschalten der Spannung) in den Ausgangszustand zurückfallen. Damit kann man jetzt eine Tabelle
der Folgezustände angeben. Wichtig ist, daß in der Zustandstafel alle Zustände vorkommen.
Als FF-Typ wird ein JK-FF gewählt, damit ist auch eine Anregungstafel (Abb. 4.21) gegeben.
Übergang
Qm
Qm+1
J
K
0 => 0
0
0
0 X
0 => 1
0
1
1 X
1 => 0
1
0
X 1
1 => 1
1
1
X 0
Abb. 4.21: Anregungstabelle des JK-Flip-Flops
Damit ist die Eingangsbelegung der Flip-Flops für die notwendigen Zustandsänderungen festgelegt.
Um z. B. vom Ausgangszustand 0 zum Folgzustand 0 zu wechseln, muß der FF-Eingang J = 0, K
beliebig (X) sein. Für einen Wechsel 1 nach 0 kann J beliebig sein, es muß K = 1 gelten. Um alle
Ansteuerbedingungen für die FFs zu erhalten, wird in die Tabelle nach
Abb. 4. 20 6 Spalten rechts angefügt und die Ansteuerbedingungen der Flip-Flops eingetragen. Will
man beispielsweise in der ersten Zeile vom Zustand Z1 (000) auf den Zustand Z2 (001) übergehen,
so der Ausgang des Flip-Flops Q2 von 0 zu 0 übergehen, dies bedingt J2 = 0, K2 = X. Dasselbe gilt
für Q1, dagegen muß der Ausgang Q0 von 0 auf 1 übergehen, dies bedingt J0 = 1, K0 = X.
Im letzten Schritt wird dann die Ansteuerlogik entwickelt. Sie hat als Eingänge die rückgekoppelten
Flip-Flop-Ausgänge Q2, Q1, Q0 und als Ausgänge die Flip-Flop-Eingänge J0, K0, ......J2, K2. Damit
sind insgesamt 6 Schaltfunktionen herzuleiten, für welche die in Abb. 4.22 gezeigten Gleichungen
gelten.
J0 = Y2
K0 = 1
J1 = Y0 Y2 = Y0 * Y2
K1 = Y0 + Y2
J2 = Y0 Y1 = Y0 * Y1
K2 = 1
Abb. 4.22: Gleichungen für das kombinatorische Netzwerk des synchronen Modulo-5-Zählers
Bei Verwendung anderer Flip-Flip-Typen, z. B. D-Flip-Flops, müßten aus der Übergangstabelle des
FFs andere logische Gleichungen abgeleitet werden.
Abb. 4.23 zeigt die resultierende Schaltung.
17
Informatik V-Teil 2,Kap. 4, SS 99
&
&
J2 Q2
C1
K2 Q2
J1 Q1
C1
K1 Q1
>1
1
J0 Q0
C1
K0 Q0
1
C
Abb. 4.23: Synchroner Modulo5-Synchronzähler
Am Beispiel eines 4-Bit-Binärzählers sei das Problem des Übetrages dargestellt.
Q0
Q2
Q1
&
Q3
&
E
1T Q
1T Q
C
1T Q
C
1T Q
C
C
Abb. 4.24: 4-stufiger synchroner Binärzähler mit Serienübertragung
In der Schaltung nach Abb. 4.24 kippt das FF0 (mit dem Ausgang Q0) bei jedem Taktimpuls (J = K
= T0). Dagegen kippt FF1 nur dann, wenn Q0 = 1 ist und FF2 nur dann, wenn Q0 = 1 und Q1 = 1
usw.
Die entsprechende Information über diesen speziellen Zustand kann man entweder seriell oder
parallel weitergeben.
Für den Serienübertrag wird man realisieren:
T0 = 1, T1 = Q0, T2 = T1 Q1, T3 = T2 Q2
Für den Parallelübertrag wird realisiert:
T0 = 1, T1 = Q0, T2 = Q0 Q1, T3 = Q0 Q1 Q2
Q0
Q1
Q2
&
Q3
&
E
1T Q
C
1T Q
C
1T Q
C
1T Q
C
Abb. 4.25: 4-stufiger synchroner Binärzähler mit Parallelübetragung
18
Informatik V-Teil 2,Kap. 4, SS 99
Die Konfiguration mit Parallel-Übertrag wird zwar schneller sein, aber auch einen durch die
notwendigen Gatter mit mehreren Eingängen auch einen höheren Implementierungsaufwand
erfordern.
Praktisch wird man Zähler nach dem vorstehend gezeigten Verfahren entwerfen können. Für viele
Anwendungen ist es notwendig, Zähler programmierbar zu gestalten. Als MSI-ICs angebotene
Zähler haben deshalb oft noch folgende Eigenschaften:
−
−
−
−
einen Löscheingang CLR zum Rücksetzen des ganzen Zählers,
einen synchronen Ladeeingang LOAD, mit dem der ganze Zähler parallel geladen werden kann
einen Übertragungsausgang RCO zum parallelen Auslesen des Zählerstandes
einen ENABLE-Eingang ENT zum Blockieren oder Freigeben des ganzen Zählers.
Mittels eines solchen Grundbausteins kann man dann recht einfach einen Modulo-n-Zähler nach
Bedarf gestalten.
4.6
Register
4.6.1 Klassifizierung
Register sind neben Zählern die zweite große Gruppe praktisch vorkommender sequentieller
Schaltungs-Makros. Ein Register ist der Art nach ein schneller Speicher begrenzter Kapazität zur
Zwischenspeicherung oder Verarbeitung kleiner Informationsmengen. Die Speicherkapazität
entspricht oft der Wortbereite des jeweiligen digitalen Systems. Ein Register ist jeweils eine Gruppe
von Flip-Flops, die dazu eingsetzt wird, binäre Information für eine kürzere Zeit zwischenzuspeichern. In dieser Zeit kann die Informationsquelle bereits wieder neu Information erzeugen.
Register sind abhängig von der Betriebsspannung, werden also nach Abschalten gelöscht. Sie sind in
der Regel taktgesteuert und auf kurze Lese- / Schreibzeiten optimiert.
Ein n-Bit-Register beinhaltet n Flip-Flops und ist damit in der Lage, Information der Länge n Bits zu
speichern. Daneben werden Register noch kombinatorische Logik beinhalten, welche der
Verknüpfung der Bit-Stellen dient. Allgemein kann man sogar einen Zähler als ein Register
bezeichen, das durch eine feste Folge logischer Zustände geht.
Register
Parallel-Register
Schieberegister
S / S , Schieberichtung
ein- / zweiseitig
P/P
S / P - Umsetzer
stat. FF-Speicher
P / S - Umsetzer
Abb. 4.26: Kategorisierung von Registern
19
Informatik V-Teil 2,Kap. 4, SS 99
Speicherregister sind parallel schreib- und lesbare Register. Alle Bits werden gleichzeitig gelesen
bzw. geschrieben. Sie werden auch als PIPO (parallel in, parallel out) Register bezeichnet.
Schieberegister (Abb. 4. 27) sind dagegen Register mit seriellem Lese- / und / oder Schreibzugriff.
Die Information wird durch Taktimpulse nach links oder nach rechts verschoben.
Register mit Zählfunktion sind im wesentlichen Zähler wie vorstehend behandelt.
Von Registern zu unterscheiden sind in der englischen Literatur "Latches". Eine Gruppe von FlipFlops, deren Zustand abhängig von der Länge eines Clock-Impulses ist, wird oft als "Latch" (Riegel)
bezeichnet, dagegen sind Register im engeren Sinne in der Regel flankengesteuert oder aus MasterSlave-Elementen aufgebaut. In deutschen Büchern wird dagegen oft auch ein transparanter Speicher
als "Register" bezeichnet.
Am Rande sei bemerkt daß insbesondere in CMOS-Technik auch Konstruktionen von Latches
möglich sind, bei denen eine dynamische Ladungsspeicherung ausgenutzt wird.
Wichtige Typen von Registern sind z. B. Schieberegister.
SI
SI
D
Q
D
Q
D
Q
D
Q
CL
Abb. 4. 27: Schieberegister aus D-Flip-Flops
In solchen Registern wird der Inhalt bei jeder Clock-Flanke jeweils um eine Bit-Stelle nach rechts
verschoben. Im einfachsten Fall wird die Bit-Folge seriell ein- und ausgelesen. Für manche
Anwendungen sind aber auch Schieberegister günstig, die ein parallelel Laden und ein serielles
Auslesen oder ein serielles Laden und ein paralleles Auslesen erlauben.
Von großer praktischer Bedeutung sind auch sogenannte "stacks" oder "Stapelregister". Hier wird
beim Einlesen die Information von links nach rechts weitergeschoben, also gestapelt. Beim Auslesen
erfolgt dagegen ein Verschieben von rechts nach links. Ein solches Stapelregister hat also die
Reihenfolge "first-in last-out", während gewöhnliche Register nach dem "first- in first-out" - Prinzip
funktionieren.
4.6.2 Speicherregister
Beim Speicherregister (auch Buffer, Latch-, Auffang-, Parallel-Register) genannt wird die
Eingangsinformation für alle Bits gleichzeitig geschrieben, gespeichert und parallel wieder
ausgelesen. Die verwendeten Einzelelemente sind dann Speicher-FFs oder auch dynamische FFs, die
einstufige D-FFs bilden.
Man kann solche Speicher "transparent" im Sinne von Latches aufbauen, in den meisten digitalen
Systemen werden aber Master-Slave-Flip-Flops verwendet werden. Damit kann im Takt n
gleichzeitig gespeicherte Information ausgelesen werden und neue Information in den Eingang
aufgenommen werden. Diese wird aber erst im Takt (n+1) am Ausgang verfügbar.
20
Informatik V-Teil 2,Kap. 4, SS 99
Reset
Q3
1D R
C1
Q1
Q2
1D R
C1
1D R
C1
Q0
1D R
C1
CL
E3
E2
E1
E0
Abb. 4.28: Paralleles Register mit D-Flip-Flops
Register dieser Art werden in großem Umfang in hochintegrierten Prozessoren verwendet. Eine
solche Anordnung ist in Abb. 4.29 dargestellt.
Variable x
Variable y
Register 1
Funktionssteuerung
Register 2
Eingang
ALU
Register 3
Ausgang
Ergebnis
Abb. 4.29: ALU mit Registern
Im Takt n werden die Eingänge der Register 1 und 2 mit Variablen, z. B. aus dem Speicher oder
auch aus dem Ergebnisregister 3 geladen. Mit der fallenden Taktflanke von n liegen diese Daten an
den Ausgängen der Register 1 und 2 an und werden durch die ALU verarbeitet. Mit der steigenden
Flanke von Takt (n+1) werden sie ins Register 3 eingelesen und stehen nach der fallenden Flanke von
(n+1) am Ausgang zur Verfügung.
4.6.3 Schieberegister
Schieberegister sind n-Bit-Register oder Ketten von Speicherzellen mit taktgesteuerter serieller
Ein-/Ausgabe von Information. Auch parallele Ausgabe kann vorkommen. Für die einzelnen
Speicherzellen können unterschiedliche Typen von FFs verwendet werden.
Die Information wird taktgesteuert von links nach rechts oder umgekehrt weitergegeben.
Abb. 4.30 zeigt die prinzipielle Arbeitsweise.
21
Informatik V-Teil 2,Kap. 4, SS 99
Takt
(shift-right)
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
Takt 1
Takt 2
0
0
Takt 3
1
0
Takt 4
Zeit Q1 Q2 Q3 Q4
1
T
D0
-
-
-
2
2T
D1 D0 -
-
3
3T
D2 D1 D0 -
4
4T
D3 D2 D1 D0
5
5T
-
D3 D2 D1
Abb. 4.30a: Schieberegister mit "shift right"-Operation
Die Information wird taktgesteuert von links nach rechts oder umgekehrt weitergegeben. Ein n-BitDatenwort , das seriell eingespeichert wird, steht damit nach n Taktzyklen an den Ausgängen der
einzelnen FFs parallel zur Verfügung. Anders herum bedingt dies aber auch eine Verzögerung
zwischen Anliegen des ersten Bits in der ersten Zelle und Lesbarkeit des n-ten Bits in der n-ten Zelle
um n Taktoperationen.
Takt
Zeit Q1 Q2 Q3 Q4
1
T
D0
-
-
-
2
2T
D1 D0 -
-
3
3T
D2 D1 D0 -
4
4T
D3 D2 D1 D0
5
5T
-
D3 D2 D1
Abb. 4.30b: Informationsverschiebung im Schieberegister
Wenn die Shift-Operation bei z. B. steigender Taktflanke erfolgt, dann muß zu für jedes Flip-Flop zu
diesem Zeitpunkt gleichzeitig eine Lese- und Schreib-Operation erfolgen. Dies ist nur möglich, wenn
die einzelnen Speicherzellen aus Master-Slave-FFS aufgebaut sind oder eine entsprechende
zeitgerechte Übernahme der Information gewährleistet ist.
Q0
Q1
Q2
Q3
SE
1D
1D
1D
RESET
CL
Abb. 4.31: 4-Bit-Schieberegister aus D-Flip-Flops
22
1D
Informatik V-Teil 2,Kap. 4, SS 99
Man benötigt also für jede Teilzelle des Schieberegisters eine Speicher- und Verzögerungseinheit, die
in Abb. 4.31 durch Master-Slave-Flip-Flops realisiert ist. Es gibt weitere Alternativen:
− Verwendung einfacher D-Latches und Steuerung durch 2 Takt-Signale C und C'
− Verwendung von D-Latches und zusätzlichen Verzögerungselementen
Die Realisierung aus einzelnen D-Latches kann als simple Auftrennung der D-MS-FFs verstanden
werden (Abb. 4.32).
1D
SE
Q0
1D
C1
Q1
Ausgang
C1
1D
1D
1D
C1
C1
C1
C
C
Abb. 4.32: Schieberegister aus D-Latches mit invertiertem Takt
In manchen Technologien kann eine dynamische Zwischenspeicherung auf dem Verbindungsweg
zwischen zwei D-Latches vom Aufwand her günstiger sein (Abb. 4.33).
V
Eingang
V
Ausgang
1D
1D
1D
C1
C1
C1
C
Abb. 4.33: Schieberegister aus D-Latches und Verzögerungsgliedern
Bei inaktivem Takt steht hier das Ausgangssignal eines Latches am Eingang des folgenden an, wird
aber dort nicht eingelesen. Wird der Takt aktiv, so wird der Eingangswert übernommen und tritt
wegen der Transparenz des Latches auch gleich an dessen Ausgang auf. Nun muß aber die Laufzeit
des Signals über das Verzögerungselement so lang sein, daß diese Zustandsänderung während
"Clock high" nicht mehr beim folgenden Latch ankommt.
Schieberegister dieser einfachen Bauart genügen nicht allen Anforderungen der Praxis. Oft benötigt
man eine Umkehr der Schieberichtung oder ein wahlweise paralleles / serielles Ein- und Auslesen von
Information.
E0
E2
E1
&
&
>1
&
>1
&
Q
1D
C1
1D
C1
1D
C1
Clock
X
Abb. 4.34: Schieberegister mit wahlweise parallelem Einlesen
23
Informatik V-Teil 2,Kap. 4, SS 99
In der in Abb. 4.34 gezeigten Schaltung wird das wahlweise parallele oder serielle Einlesen über das
Steuersignal X und Multiplexer-Elemente bestimmt.
Mit weiterer Zusatzlogik wird dieses Register auch noch wahlweise nach rechts der nach links
schiebbar (Abb. 4.35).
Li
Re
&
&
&
&
&
&
Eli
Ere
&
1D
C1
&
&
1D
C1
1D
C1
Q
Clock
Abb. 4.35: Schieberegister mit umschaltbarer Schieberichtung
Schieberegister werden in großem Umfang als Umsetzer zwischen serieller und paralleler
Datenkommunikation benötigt und eingesetzt. Dabei unterscheidet man folgende Grundtypen:
−
−
−
−
SISO: seriell ein / seriell aus
PISO: parallel ein / seriell aus
SIPO: seriell ein / parallel aus
PIPO: parallel ein / parallel aus
Solche Schieberegister werden als MSI-Bausteine in TTL- oder CMOS-Logik in einer großen
Typenvielfalt angeboten. Bis zu 64 Bit Breite sind üblich.
Sie werden natürlich auch auf hochintegrierten Schaltungen in großem Umfang benötigt. In der
CMOS-Technologie kann man mittels dynamischer Speicherung und Pass-Transistoren zu sehr
flächengünstigen Realisierungen kommen (Abb. 4. 36).
FFO
C2
C1
SE
FF2
FF1
Ta
Tb
Ca
C1
Cb
C2
Ta
ca
SA
Abb. 4.36: MOS-Schieberegister mit 2-Phasen-Takt
Am Eingang E der Schaltung liege ein Signal an. Für den Fall C1 = 0 bleibt der Transistor Ta
gesperrt. Wenn C1 = 1 ist, so gelangt das Signal auf die Kapazität Ca und wird dort gespeichert. Der
invertierte Wert erscheint am Ausgang der ersten Stufe. Dort wird der Eingang der Zelle durch C2 =
0 noch gesperrt sein. Wenn C2 = 1 wird, so wird, so wird das Signal weitergegeben. Da gleichzeitig
mit C1 = 0 der Transistor Ta sperrt, wird der Eingang abgekoppelt. Auf diese Art entsteht ein sehr
flächensparend implementiertes Schieberegister.
24
Informatik V-Teil 2,Kap. 4, SS 99
Bei der Betrachtung von Schieberegistern haben wir uns noch nicht mit dem Problem beschäftigt,
daß ein "Überlauf" auftreten kann. Hat man bei einem n-stufigen Schieberegister mit n Takten
geschoben, so tritt beim n+1-ten Schiebeschritt eine Überlaufbedingung auf. Das am weitesten rechts
stehende Bit geht verloren (Abb. 4.37).
SE Dateneingang
&
D
Qn
1
1
n-Bit-Schieberegister
&
Datenausgang
Takt
Rückführung
Steuereingang X
Abb. 4.37: Umlauf-Schieberegister mit wahlweiser Rückführung
Eine wahlweise aktivierbare Rückführung des Ausgangs auf den Eingang verhindert den Verlust von
Information und macht die Schaltung zu einem Ringspeicher. Bei der Schaltung nach Abb. 4.37 ist
bei X = 0 die Bedingung D = Qn erfüllt, die Schaltung wirkt als Ringspeicher. Bei X = 1 ist die
Rückführung unterbrochen, die Schaltung wirkt als normales Schieberegister.
Nur am Rande sei hier erwähnt, daß über EXOR-Bausteine rückgekoppelte Schieberegister sich
hervorragend als Generatoren von (vorherberechenbaren) Quasi-Zufallsbitmustern eignen.
Strukturen dieser Art werden für den eingebauten Selbsttest von Schaltungen und Systemen
verwendet.
4.6.4 FIFO- und LIFO-Speicher
In zwei weitern Sonderbauarten haben Register in der Rechnertechnik eine große Bedeutung
erfahren.
A. Im FIFO (first-in first-out) Speicher können Daten nur in der Reihenfolge ihrer Eingabe
ausgelesen werden.
B. Im LIFO-Speicher (last-in first-out) Speicher können Daten nur in der umgekehrten Reihenfolge
ihrer Eingabe ausgelesen werden. Dieser Speicher wird auch als "Stack" oder Stapelspeicher
bezeichnet.
FIFO-Speicher
schreiben
LIFO-Speicher (Stack)
sch reiben
lesen
lesen
Abb. 4.38: FIFO- und LIFO-Prinzip
25
Informatik V-Teil 2,Kap. 4, SS 99
FIFO-Speicher werden oft verwendet, um asynchron ankommende Daten zwischenzuspeichern und
synchron wieder auszulesen. Sie spielen damit eine wichtige Rolle in Rechnernetzen, bei denen die
einzelnen Komponenten asynchron zueinander laufen. Sie werden, wenn es kleine Speicher sind, mit
asynchronen Schieberegistern oder, bei großen Speichern, mit RAM-Bausteinen realisiert. Im
letzteren Fall verschiebt man nicht die Daten, sondern die Adresse. Es wird dann für das FIFO stets
eine aktuelle Adresse bezüglich des Auslesens geführt.
In ähnlicher Weise werden LIFOs (Stapelregister) organisiert. Auch sie können physikalisch als
Register bzw. ganze Registerbänke mit physikalischer Verschiebung der Daten realisiert werden. Bei
Realisierung durch einen RAM-Speicher wird wiederum nur die Adresse verschoben. Die aktuelle
Speicheradresse wird dann auch als "Stack-Pointer" bezeichnet.
Stacks spielen bei der Organisation von Rechnern eine ganz wesentliche Rolle.
4.7
Makros in praktischen Schaltungen
In der Praxis sind rein größere kombinatorische Schaltungen auf bestimmte Funktionsblöcke
beschränkt. Das sind einfache arithmetische Einheiten, z. B. Addierer und Schaltungen zur
Codierung und Decodierung.
Zur Zwischenspeicherung von logischen und arithmetischen Werten werden Register verwendet, die
ihrerseits aus Flip-Flops aufgebaut sind.
Bei vielen digitalen Systemen unterscheidet man auch zwischen Kontroll-Logik (control path) und
Datenpfad (data path).
Kontroll-Logik besteht oft aus relativ "krausen" Strukuren, also relativ irregulären Kombinationen
aus kombinatorischen Schaltungsteilen und Flip-Flops. Solche Schaltungen weisen eine Serie von
inneren Zuständen auf, die eindeutig vom vorherigen Zustand und einer (selten mehrerer)
Eingangsvariablen abhängig sind. Solche Kontroll-Logiken sind generell als endliche Automaten
(finite state machines) darstellbar. Für den Entwurf hat sich die Darstellung als endlicher Automat
mit Angaben von Zuständen und Zustandsübergängen eingeführt. Eine wesentliche Entwurfs-aufgabe
ist dann die Sicherung, daß ein solcher Automat nicht in unerwünschte Zustände gerät, insbesondere
nicht solche, die er nicht mehr verlassen kann.
In komplexen digitalen Systemen für Steuerungsaufgaben, z. B. Ampelsteuerungen und Aufzugssteuerungen, ergeben sich entsprechend komplexe Automatendarstellungen.
Typischerweise steuert die Kontrollogik eines endlichen Automaten bei vielen Anwendungen,
angefangen vom Rechner bis zu Signalprozessoren, die Verarbeitung von Daten und Signalen.
Kontrollpfad
data in
in
(steuerung
FSM
muxer)
reg.
mux
alu
cl
regmux
26
reg.
mux
add
reg.
Informatik V-Teil 2,Kap. 4, SS 99
Die Steuerung des Daten-und Signalflußes geschieht z. B. über Multiplexer und Demultiplexer.
Wenn Bus-Strukturen verwendet werden, so erfolgt die Steuerung des Zugriffs über tristate-fähige
Treiberbausteine. Solche Tristate-Bauelemente lassen sich sehr gut in CMOS-Technik, viel weniger
in bipolarer Logik realisieren.
In der Regel wird man also folgende Funktionseinheiten finden:
Kontrollogik mit "wildem" Aufbau und großer sequentieller Tiefe, aber ohne komplexe arithmetische
Einheiten
Datenpfade mit großer Bit-Breite (16, 32, 64 Bit), komplexen arithmetischen Einheiten, aber nur
kleiner bis mittlerer sequentieller Tiefe.
Während bei "handgefertigten" Scgaltungsentwürfen auch beliebig komplexe Mischungen von
Kontroll- und Datenpfad an der Tagesordnung sind, ergeben sich bei Benutzung von Werkzeugen
der Entwurfsautomatisierung meistens einfachere Strukturen.
Typische Werkzeuge sind Programme zur:
− Logik-Synthese (kombinatorisch)
− FSM- Synthese (sequentiell)
− Struktursynthese aus Verhaltensbeschreibungen (High-Level-Synthese)
Auf die Methodik und die Werkzeuge des Schaltungsentwurfs wird in einer speziellen Vorlesung
eingegangen werden.
27
Herunterladen