Digitaltechnik


Prof. Jürgen Plate

7 Schaltwerke

7.1 Schaltwerke

Nachdem Sie den Entwurf von Schaltnetzen kennengelernt haben, soll eine neue Art des Verhaltens von digitalen Schaltgliedern behandelt werden. Der Zustand am Ausgang eines Schaltnetzes ändert sich sofort, wenn sich der Zustand am Eingang ändert, unabhängig von etwa früher vorhandenen anderen Zuständen am Eingang. Auch ist der Ausgangszustand für einen bestimmten Eingangszustand immer der gleiche. Es gibt aber ungezählte Anwendungen, die es notwendig machen, sich einen Zustand über eine gewisse Zeit zu merken (→ Schaltwerke).

Die Speicherelemente werden in der Digitaltechnik durch Baugruppen realisiert, die zwei stabile Ausgangszustände kennen → bistabile KippstufenFlipflops. Sie sollen ihren Ausgangszustand von "1" auf "0" oder von "0" auf "1" nur dann ändern, wenn eine bestimmte Eingangs-Signalkombination auftritt. Diese Information bleibt erhalten, bis sie durch eine bestimmte andere Eingangskombination wieder umgeschaltet wird. Das Flipflop ist also ein digitaler Speicher, dessen beide stabilen Zustände von außen einstellbar sind. Flipflops eignen sich zum Schalten, Zählen, Speichern und Teilen von Frequenzen. Es gibt unterschiedliche Arten von Flipflops, die alle aus einen Basisflipflop und einen Schaltnetz zur Ansteuerung bestehen. Wiederholende Zusammenfassung:

Nachdem die Rückkopplungssignale einen stabilen Wert angenommen haben und sich die Eingänge nicht ändern, werden auch die Ausgänge einen stabilen Wert annehmen:

Prinzipiell unterscheidet man zwischen synchronen und asynchronen Schaltwerken:

Dabei gilt:

Bei der Beschreibung von Schaltwerken muss der momentane Zustand, von dem die Werte der Ausgangsvariablen abhängen, mit eingehen. Weiterhin muss der jeweilige Folgezustand ersichtlich sein.

Ein einfaches Beispiel für ein Schaltwerk ist ein Gerät mit einer Fernbedienung mittels Ein/Aus-Taste:

Eingangsvariable: Ein/Aus-Taste T
Zustände: Gerät eingeschaltet, Gerät ausgeschaltet
Ausgangsvariable: Stromversorgung S

Die Funktion dieser Schaltung kann man mit einer Tabelle festlegen:

Die Aussage der Tabelle kann man mit einem Graphen (Zustandsfolgediagramm, Bubble-Diagramm) anschaulicher darstellen:

Wenn man die beiden Zustände "Gerät ausgeschaltet" und "Gerät eingeschaltet" des obigen Beispielse durch die (willkürlich gewählten) Werte 0 bzw. 1 einer Zustandsvariablen Q ersetzt, kann man die "Zustandsfolgetabelle" erstellen, aus der man die Ausgangs- und übergangsfunktion entnehmen kann:

T = 0 bzw. T = 1 entspricht hierbei "Taste nicht gedrückt" bzw. "Taste gedrückt",
S = 0 bzw. S = 1 entspricht "Stromversorgung aus" bzw. "Stromversorgung ein".

Der Graph sieht dann in vereinfachter Form wie folgt aus, wobei Graph und Tabelle ineinander übergeführt werden können, sie sind also gleichwertig.

7.2 Basis-Flipflop

Kernpunkt der Flipflop-Schaltung ist die Rückführung des Ausgangssignals auf einen Eingang. Doch die alleinige Rückführung (linkes Bild) erlaubt zwar das Setzen des Ausgangs auf "1" (Speichern), nicht jedoch wieder das Rücksetzen des Ausgangs auf "0". Deshalb wird dazu zwischen Ausgang und Rückführung ein UND-Gatter als Tor geschaltet, mit dem sich die Rückkopplung unterbrechen läßt (rechtes Bild). Damit hat man einen Setzeingang und einen Rücksetzeingang.

Durch Anwenden des Theorems von de Morgan können statt des ODER- und des UND-Gatters zwei NOR-Gatter verwendet werden. Durch Umzeichen und Umbenennen erhält man die typische Darstellung eines Setz-/Rücksetz-Flipflops (SR-FF):

Das RS-Flipflop (Rücksetz-/Setz-FF, synonym zu SR-FF) bildet das einfachste Basis-Flipflop. Für das SR-FF werden die Eingänge mit "S" (Setzen) und "R" (Rücksetzen) sowie der Ausgang mit "Q" bezeichnet. Es gilt dann:

S R QSchaltzeichen
0 0 Speichern
1 0 1, Setzen
0 1 0, Rücksetzen
1 1 Verboten

Funktionsgleichung, "charakteristische Gleichung": Qt+1 = S ∨ (Qt ∧ ¬R)

Nach dem gleichen Schema kann man auch mit NAND-Gattern ein RS-FF aufbauen, das gegenüber dem RS-FF mit NOR-Gattern invertierte Eingangssignale aufweist. Auch hier zeigt sich wieder die Dualität.

S R Q
1 1 Speichern
0 1 1, Setzen
1 0 0, Rücksetzen
0 0 Verboten

Probleme des RS-FF sind:

In der Praxis führen beide Probleme zu kurzzeitigen "illegalen" Zuständen eines Schaltwerks, da jedes Gatter in der Realität mit einer Signal-Durchlaufzeit behaftet ist. Unterschiedliche Schaltnetze an den Eingängen des FF können dazu führen, dass ungewollte Zustände durch die unterschiedlichen Laufzeiten auftreten. Es besteht somit ein Bedarf für taktgesteuerte Flipflops, die zu einem definierten Zeitpunkt umschalten:

Das SR-FF eingnet sich u.a. vorzüglich zur Entprellung von Kontakten. Schalter oder Taster "prellen", d. h. der Schalter schließt nicht auf einmal, sondern durch mechanische Bewegungen der Konstruktion öffnet und schliesst der Schalter mehrmal in kurzen Abständen. Im Bild ist dies die mit "Eingang" bezeichnete Kurve. Gewünscht ist das darunter gezeichnete Verhalten.

Dazu wird ein NAND-FF eingesetzt (active Low). Ein Umschalt-Taster legt jeweils einen der Eingänge auf "0" und erzeugt damit eine Reihe von Setz- oder Rücksetzimpulse. Das Kontaktprellen des Taster hat eine Reihe von Setz- bzw. Rücksetzimpulse zur Folge. Am Ausgang des FF erscheint der gewünschte saubere Impuls.

Beispiel: Motorsteuerung
Durch zwei Taster (T1 und T2) soll ein Motor auf Rechtslauf bzw. Linkslauf geschaltet werden. Ein dritter Taster (T3) dient zum Anhalten des Motors. Um Schäden am Getriebe zu vermeiden, soll eine digitale Verknüpfung verhindern, dass von Rechts- uns Linkslauf umgeschaltet werden soll, während der Motor läuft. Es gilt also:

  Setzeingang rechts = T1 * !Ql
  Setzeingang links = T2 * !Qr

Das Basisflipflop übernimmt eine anliegende Eingangsinformation sofort und speichert sie, d.h. sie wirkt sich unmittelbar aus. Solche Flipflops bezeichnet man als "nicht taktgesteuerte Flipflops. Zu den nicht taktgesteuerten Flipflops gehört auch das bereits ausführlich behandelte RS-Flipflop.

Das E-Flipflop

Das E-Flipflop ist eine Sonderausführung des RS-Flipflops. Es wird durch eine Zusatzbeschaltung vom RS-Flipflop abgeleitet, so dass der dort "verbotene" Zustand nicht mehr auftreten kann. Sobald beide Eingänge ein "1"-Signal führen, tritt der Speicherzustand ein, da beide Signale invertiert werden. Der Setz- und der Rücksetzfall werden durch die Zusatzschaltung aber nicht behindert.

Allgemeine Vereinbarungen für Flip-Flops

Die Darstellungen und allgemeine Funktionsweisen von Flip-Flops richtet sich nach einigen Regeln, die im Folgenden kurz aufgelistet werden:

7.3 Taktgesteuerte Flipflops

Manche Anwendungen verlangen, dass ein Flipflop nur zu einem bestimmten Zeitpunkt auf den Eingangszustand reagiert. Diese Forderung hat zur Entwicklung der taktgesteuerten Flipflops geführt. Dabei bestimmt ein zusätzlicher Eingang C (Clock) den Zeitpunkt der Datenübernahme. Eine synchrone Arbeitsweise des RS-FF wird auch erst durch Erweiterung um einen Takteingang erreicht. Die taktgesteuerten Flipflops kann man unterscheiden in: Die Zeitpunkte Qn und Qn+1 sind nun eindeutig durch das Taktsignal definiert. Die Eingänge R und S bereiten den Folgezustand des FF vor, bestimmen ihn aber nicht unmittelbar, man nennt sie daher auch oft "Vorbereitungseingänge". Das folgenden Bild zeigt einen überblick der verschiedenen Arten von Flipflops in übersichtlicher Form. Die erste Verzweigung unterscheidet zwischen "nicht taktgesteuerten" und "taktgesteuerten" Flipflops.

Takt(zustand)gesteuertes RS-FF

Die Realisierung erfolgt durch UND-Verknüpfung der Eingänge R und S mit dem Takteingang:

CSRQSchaltzeichen
000Q-1 (speichern)
001Q-1 (speichern)
010Q-1 (speichern)
011Q-1 (speichern)
100Q-1 (speichern)
1010 (Rücksetzen)
1101 (Setzen)
111Verboten!

Durch einen zusätzlichen Takt-Eingang wird dem FF die Arbeits- und Ruhezeit zugeteilt. Dadurch übernimmt das FF als Speicherelement die Information nur zu einem bestimmten Zeitpunkt, wobei diese dann bis zur nächsten änderung an den Ausgängen stabil anliegt. Der Takt bestimmt auch, wann die an den Eingängen anliegende Information das FF beeinflußt.

D-Flipflop (Latch)

Das D-FF kann als taktzustandsgesteuerte Sonderform des RS-FF aufgefaßt werden, bei der der "Verbotene" Zustand nicht mehr auftreten kann. Der R-Eingang hat immer den invertierten Wert des S-Eingangs. Der verbotene bzw. nicht definierte Zustand S = R = 1 des RS-Flip-Flops wird damit verhindert.

Der Zustand "Speichern" (S = R = 0) kann nun natürlich auch nicht mehr auftreten, der Takteingang bestimmt nun alleine, wann die Information am D-Eingang übernommen wird. Die Wahrheitstabelle verkürzt sich für die Bedingungen: S = D und R = ~D zu:

1D C1 Q Q-1 Schaltzeichen
0 0 Q Q-1
1 0 Q Q-1
0 1 0 1
1 1 1 0

Die charakteristische Gleichung lautet: Q+1 = D ∧ Q ∨ D = D

Das Zustandsdiagramm für die Taktzustandssteuerung ist entspechende einfach:

Das D-FF ermöglicht z. B. Verzögerungen um eine Taktperiode. Durch "Parallelschalten" mehrerer D-FFs mit gemeinsamer Taktleitung kann man einen Speicher für Binärworte beliebiger Wortbreite realisieren, einen solchen Speicher nennt man dann Register (siehe später).

Der Unterschied zwischen taktzustands- und taktflankengesteuerten Flipflops wird in der englischsprachigen Literatur durch die Begriffe latch und flipflop zum Ausdruck gebracht. Bisher ist nur die erste Gruppe behandelt worden. Komponenten mit Taktflankensteuerung haben trotz ihrer offenbaren ähnlichkeit ein sehr differenziertes Verhalten. Deshalb soll der Unterschied an einem vergleichenden Beispiel erläutert werden, bevor nach dem nun folgenden JK-Flipflop auf die Taktflankensteuerung genauer eingegangen wird:

Wie man deutlich sieht, folgt das Ausgangssignal bei der Zustandssteuerung dem Eingangsignal, solange der Takteingang auf "1" liegt. Bei der Flankensteuerung wird dagegen der Eingangswert zu einem genau definierten Zeitpunkt übernommen.

JK-Flipflop

Eine weitere Möglichkeit, den im RS-Flipflop verbotenen Zustand zu vermeiden, besteht in der Definition einer neuen (vierten) erlaubten Funktion. Diese neue Eigenschaft des Flipflops wird durch eine zusätzliche Rückkopplung der Flipflop-Ausgänge erzeugt. Es handelt sich um die sogenannte "Wechsel"-Funktion (eng. toggle).

Die logischen Eingänge dieses neuen Flipflop-Typs ersetzen die Eingänge R und S und werden als "J" und "K" bezeichnet (von engl. "J" = jump, "K" = kill). Das Flipflop wird demzufolge JK-Flipflop genannt. Es ist ein Universal-Flipflop und kombiniert die Eigenschaften des RS-Flipflops mit denen des T-Flipflops. Die beiden Eingänge "J" und "K" werden auch als Vorbereitungseingänge bezeichnet, weil durch deren Beschaltung das Verhalten des Flipflops bestimmt wird. Es kann durch die Erweiterung eines taktfrankengesteuerten RS-Flipflops mit zwei UND-Gattern erzeugt werden.

Im Normalfall verhält sich das JK-Flipflop wie ein RS-Flipflop, d. h. 1-Pegel am Eingang J bedeutet Setzen, 1-Pegel an K bedeutet Zurücksetzen und J und K auf 0-Pegel bedeutet Speichern. Setz man J und K auf "1", führt dies zum Kippen in den anderen stabilen Zustand. Schaltet man also den J- und den K-Eingang eines JK-Flipflops auf 1-Pegel, so verhält es sich wie ein T-Flipflop.

JKQn+1Schaltzeichen
00Qn
101
010
11¬Qn

Die charakteristische Gleichung lautet dann: Q+1 = (¬K ∧ Q) ∨ (J ∧ ¬Q)

Die Zustandsübergänge zeigt die folgende Grafik:

In der praktischen Anwendung ist insbesondere das Wechseln des Ausgangswertes von Bedeutung. Neben der Funktionstabelle ist gerade in Verbindung mit dieser Betriebsart die sogenannte übergangstabelle des JK-Flipflops sehr nützlich:

Q Q+1 J K Funktion Term (*) Abkürzung
0 0 0 X not jump J ∧ ¬Q (K)
0 1 1 X jump J ∧ ¬Q J(K)
1 0 X 1 kill ¬K ∧ Q K(J)
1 1 X 0 not kill ¬K ∧ Q (J)

(*) für den übergang verantwortlicher Term aus der Funktionsgleichung.

Da mit der neuen Funktion "Wechsel" (toggle) ein einmaliges Umschalten der FF-Ausgangswerte verbunden ist, führt der Einsatz einer Taktpegelsteuerung zu Problemen. Die obige Wahrheitstafel des JK-Flipflops geht von einem Verknüpfungsnetz aus, bei dem die Signaleingänge während einer Taktperiode stabil bleiben. In der hier gegebenen Schaltung ändern sich aber die Eingangssignale, falls die Ausgangssignale sich ändern.

Wenn beispielsweise J = K = "1" und Q = "0" sind, wird beim Anlegen des Taktimpulses Q = "1". Diese Signaländerung tritt nach Verstreichen der hardwarebedingten Verzögerungszeit t ein. Die neue Situation lautet nun J = K = "1" und Q = "1". Ist der Takteingang weiterhin "1", wiederholt sich der Vorgang; es findet ein ständiger Wechsel zwischen den beiden genannten Zuständen statt → das Ausgangssignal Q oszilliert zwischen "0" und "1":

Dieser Vorgang wird auch als "race-around" bezeichnet. Er kann nur dadurch vermieden werden, wenns statt der Taktzustandssteuerung eine Steuerung mit Taktflanken vorgenommen wird (die kurz im Vergleich zur FF-Durchlaufzeit t sind).

Taktflankengesteuerte Flipflops

Taktzustandsgesteuerte FFs übernehmen die Eingangsinformation solange der Takteingang = 1 ist, auch wenn sich während dieser Zeit der Eingangszustand ändert. Das ist nicht für alle Anwendungen wünschenswert.

Durch die folgende Schaltung wird aus einem 0-1-Wechsel ein kurzer Nadelimpuls erzeugt, der nur die Dauer einer Gatterlaufzeit (ca. 10 Nanosekunden) hat (oberes Bild). Wenn statt des UND-Gatters ein EXOR-Gatter verwendet wird, bekommt man sogar beim 0-1- und beim 1-0-Übergang einen Nadelimpuls.

Der Takt ist nun kein statischer Pegel mehr, sondern eine dynamische Flanke. Die Info liegt dafür etwas "verzögert" am Ausgang an. Die Realisierung erfolgt durch Sperren der Eingänge nach Veränderung des Ausgangs. Es gibt flankengesteuerte RS- und D-Flipflops, das in der Praxis häufigste flankengesteuerte FF ist jedoch das JK-FF.

Die dynamischen Zustandsänderungen lassen sich weiter in eine Reaktion bei ansteigender Flanke oder abfallender Flanke untergliedern. Bei Flip-Flops die auf eine Zustandsänderung bei steigender Flanke reagieren, wird das Eingangssignal wie folgt am Baustein angezeichnet:

Das (ein)flankengesteuerte RS-Flipflop übernimmt die Eingangsdaten je nach Typ bei der positiven oder negativen Flanke des Taktsignals. In der internen Verschaltung des Bausteins erreicht man die Flankentriggerung im allgemeinen dadurch, dass die Eingänge nach dem Wirken gesperrt werden.

Für die folgenden Betrachtungen ist ein Blick auf einen Taktimpuls nötig. Er setzt sich zusammen aus einer steigenden (positiven) Flanke, einer Zeit in der ein 1-Pegel angenommen wird und einer fallenden (negativen) Flanke:

Bis auf den abgeänderten Takteingang entspricht das einflankengesteuerte RS-Flipflop direkt dem taktzustandsgesteuerten RS-Flipflop. Reagiert der Baustein auf die negative Taktflanke, ist im Schaltzeichen vor dem Takteingang eine Negation eingezeichnet.

Das von der Funktion her bereits bekannte D-Flipflop übernimmt bei Flankensteuerung das Datenbit bei einer Flanke des Taktsignals. Bis auf den abgeänderten Takteingang entspricht es dem taktzustandsgesteuerten D-Flipflop. Oft wird ein Flipflop benötigt, das bei jedem Impuls in den anderen stabilen Zustand kippt, also ein Frequenzteiler durch 2 (Toggle-Flipflop). Dies läßt sich realisieren, indem man bei einem flankengesteuerten D-Flipflop den Ausgang Q auf den D-Eingang zurückkoppelt. So wird bei jeder Taktflanke das Inverse des vorherigen Zustands eingespeichert.

Einflankengesteuertes JK-Flipflop

Ein Beispiel für ein taktflankengesteuertes JK-Flipflop ist im folgenden Bild dargestellt. Die Arbeitsweise ist grundsätzlich die gleiche wie beim taktzustandsgesteuerten JK-Flipflop, weshalb auf die dort stehende Info verwiesen wird. Das Bild verwendet das oben beschriebene flankengesteuerte RS-Flipflop mit der für J und K notwendigen Zusatzbeschaltung.

Das Zeitdiagramm zeigt, dass nun das gewünschte Verhalten vorliegt: die Umschaltung erfolgt nur bei steigender Flanke und somit zu einem definierten Zeitpunkt. Je nach den Werten von J und K wird das Flipflop gesetzt, rückgesetzt oder getoggelt.

Das flankengetriggerte T-Flipflop läßt sich recht einfach aus dem JK-Flipflop ableiten. Es müssen nur die Anschlüsse J und K auf "1" gesetzt werden.

Auf ähnliche Weise kann auch ein flankengetriggertes E-Flipflop realisiert werden.

Beispiel: Änderungsdetektor
Der folgende synchrone Änderungsdetektor mit flankengetriggerten D-Flipflops liefert einen taktsynchronen Ausgangsimpuls, wenn sich der Eingang ändert. Das Verhalten der Schaltung wird durch das Impulsdiagramm verdeutlicht.

Beispiel: Logikprüfstift
Dieser Prüfstift zeigt nicht nur 1- und 0-Pegel an, wie sie bei statischen Schaltnetzen vorkommen, sondern auch Impulse (z. B. auf der Taktleitung).

Die "0"- und "1"-Anzeige ist wohl jedem klar. Je nach Eingangspegel leichtet einer der beiden LEDs. Für die Anzeige von Impulsen ist das D-Flipflop als Toggle-Flipflop geschaltet (Rückführung von ¬Q auf D) und wechselt seinen Ausgangszustand bei jedem Signalwechsel am Eingang.

Bei einem statischen Eingangssignal leuchtet somit eine der oberen beiden LEDs ("0" oder "1") und eine der beiden unteren LEDs (egal welche). Bei einem Rechtecksignal am Eingang toggelt das D-Flipflop ständig und beide gelben LEDs leuchten etwa halbhell. Natürlich leuchten auch die rote und grüne LED. An deren Helligkeit kann man sogar grob auf das Tastverhältnis schließen.

Master-Slave-Flipflops

Alle bisher behandelten Flipflops enthielten nur ein Basisflipflop. Die an den Informationseingängen anliegende Information wird nach der unvermeidbaren FF-internen Verarbeitungszeit, im übrigen jedoch unverzögert an den Ausgängen wirksam. Eine Weiterentwicklung stellt das Master-Slave-FlipFlop dar, bei dem eine Zustandsänderung nicht während einer Zustandsabfrage erfolgt. Im Prinzip braucht man dafür zwei gegeneinander verschobene Taktsignale und zwei hintereinander geschaltete Flipflops. Das zweite Taktsignal wird üblicherweise durch Negation des ursprünglichen Taktes gewonnen. Die beiden kaskadierten Flipflops werden als "Master" (mit den Informationseingängen verbunden) und "Slave" (Ausgänge Q bzw. ¬Q) bezeichnet. Die Ausgänge des Master-Flipflops stehen intern mit den Informationseingängen des Slave-Flipflops in Verbindung. Es gilt also:

  • weitere Möglichkeit der zeitlichen Steuerung
  • stabilere Auslegung der "zeitlichen Trennung" zwischen Eingang und Ausgang
  • Realisierung durch zwei gekoppelte Flipflops, die mit zueinander inversem Takt angesteuert werden
  • Mit jedem Flipflop-Typ kann ein MS-Flipflop aufgebaut werden
  • Das FF-Symbol erhält in diesen Fall einen Zusatz (Abbildung rechts). Das Häkchen
    im Symbol steht für die Verzögerung des Gatters (wird oft mit der Flankensteuerung
    verwechselt).

Die Funktionsweise dieses Flipflops kann in vier Phasen aufgeteilt werden:

  1. Trennung von Master und Slave
  2. Übernahme der Eingangs-Signale in den Master
  3. Sperrung der Eingänge
  4. übertragung der Daten vom Master zum Slave
In der hier gezeigten Anordnung erfolgt der effektive Signalwechsel an den Q-Ausgängen also mit der fallenden Taktflanke (1 → 0).

Die zeitliche Steuerung kann auch bei MS-Flipflops auf zwei Arten erfolgen:

Das folgende Bild zeigt das Schaltungsprinzip eines taktzustandgesteuerten RS-MS-Flipflops:

Zweiflankengesteuertes JK-Flipflop

Das zweiflankengesteuerte JK-Flipflop, auch "Master-Slave-JK-Flipflop" genannt, ist die gebräuchlichste Form der zweiflankengesteuerten Flipflops. Der "Master" ist ein RS-Flipflop, der "Slave" ein RS-Flipflop, da die Ausgänge des Masters ja sowieso nie gleichzeitig H-Pegel führen können. Der Unterschied zum einflankengesteuerten JK-Flipflop liegt darin, dass mit der steigenden Taktflanke die Eingangsinformation in den Master übernommen wird und das Ausgangssignal erst nach der negativen Taktflanke erscheint. Das folgende Bild zeigt das Schaltsymbol und schematisch die Realisierung:

Aus dem Impulsdiagramm wird deutlich, dass die änderung am Ausgang um den Taktflankenwechsel verzögert geschieht. Die Verzögerung beträgt eine Impulsbreite des Taktes, da das Ausgabe JK-FF (Slave) mit der invertierten Flanke des Eingabe Flip-Flops (Master) angesteuert wird. Am Beispiel eines flankengetriggerten JK-MS-Flipflops soll das Impulsdiagramm Aufschluß über die Funktion geben. Bei gekennzeichnet-negiertem Takt wird also mit der positiven Taktflanke in den Master eingelesen und mit der negativen Taktflanke ausgegeben:

Zusammenfassung: Flipflop-Klassifizierung

Charakteristische Gleichungen (Übergangsbedingungen)

7.4 Ergänzungen

Erweiterungen

Bei den meisten Flipflops liegt nach dem Einschalten der Stromversorgung ein zufälliger, d. h. nicht reproduzierbarer Zustand vor. Bei größeren Schaltungen mit vielen teils offenen, teils rückgekoppelten Wirkungsketten könnte das zu einer inneren Systemblockade oder dem Annehmen undefinierter Zustände führen. Daher sind bei kommerziell hergestellten Flipflops regelmäßig Rücksetz- bzw. Setzeingänge (Clear, Preset) vorgesehen. Der Rücksetzeingang legt z. B. an den Setz-Eingang eine "0" und auf den Rücksetzeingang eine "1" an.

Neben den dynamischen Eingängen (R, S, J, K usw.) haben Flipflops häufig weitere Eingänge, darunter:

Statische Eingänge sind häufig Low-aktiv und haben Vorrang vor den dynamischen Eingängen. Das folgende Beispiel zeigt ein Flipflop mit CE, Preset und Clear:

Zeitbedingungen bei Flipflops

Im Gegensatz zu den Digitalschaltungen dieses Skripts, die immer mit idealen Rechteckimpulsen arbeiten und keinerleich technisch bedingte Verzögerungen enthalten, benötigen reale Bausteine eine bestimmte Zeit, bis z. B. das Eingangssignal am Ausgang erscheint (der Effekt wurde ja schon bei der Taktflankensteuerung beschrieben). Hier wird ein kurzer Blick auf ein reales Flipflop geworfen.

  • Setzzeit, set-up-time tSU: Die Eingangssignale müssen mindestens diese Zeit vor der aktiven Flanke des Taktes anliegen.
  • Haltezeit, hold-time tH: Minimale Zeitdauer der Eingangssignale.
  • Minimale Taktimpulsdauer, minimum pulse width tW: Der Takt muss mindestens so lange anliegen, bis das Eingangssignal auf den Ausgang durchgeschaltet wurde (tW > tPD).
  • Ausgangsverzögerungszeit, propagation delay time tPD: Die Zeit, die vergeht, bis das Eingangssignal auf den Ausgang durchgeschaltet wurde.
  • FF-Schaltzeit tf: F(tSU, tH, tW, tPD) → die Zeit, die minimal nötig ist, das Flipflop sauber schalten zu lassen (tf ≥ tSU + tPD).
  • Maximale Taktfrequenz, maximum clock frequency, fclk max: 1/tf.

Wechselseitige Wandlungen

Alle rückkopplungsfähigen Flipflops lassen sich durch Zusatzbeschaltung in jede beliebige andere Art umwandeln. Die Schaltgleichungen kann man aus der Wahrheitstabelle des Ziel-Flipflops ablesen, wenn man deren Einträge gemäß der Funktionsweise der Realisierungsbasis auswertet. Als Realisierungsbasis kommen vor allem in Betracht:

Beispiel: Realisierung von T- und JK-Flipflop mit D-Flipflop
Die jeweilige Funktion ergibt sich, indem man dem D-Eingang ein Schaltnetz vorordnet, das der übertragungsfunktion des gewünschten Flipflop-Typs entspricht.

7.5 Entwurfsbeispiel

Ein Schaltwerk für eine Verkehrsampel mit zyklischer Signalfolge ist zu entwerfen.

Aufstellen des Zustandsdiagramms und Wahl der Zustandscodierung
Da es vier Zustände gibt, erfolgt die Codierung als 2-bit Vektor (z1, z0) → 2 Flipflops nötig. Die Codierung der Zustände sei, willkürlich gewählt, die Folgende:

Anzeige Q1 Q2
rot  0   0
rot/gelb  0   1
gelb  1   0
grün  1   1

Als Flipflops werden JK-Flipflops verwendet. Nun erfolgt die Übertragen des Graphen in eine Zustandsfolgetabelle:

ZustandQ1Q0R GEGRQ1+ Q0+J1K1 J0K0
rot0010001 0X1X
rot/gelb0111011 1XX0
gelb1001000 X10X
grün1100110 X0X1

Die Felder mit "X" beruhen auf der Tatsache, dass es zwei Möglichkeiten gibt, das gewünschte Ergebnis zu erreichen. So kann z. B. der Wechsel von 0 → 1 durch J = 1 und K = 0 (set) ebenso erreicht werden wie durch J = 1 und K = 1 (toggle), was bedeutet, dass K = 0 oder K = 1 sein darf → X. Diese Fälle wurden weiter oben in einer Übergangstabelle zusammengefasst, die hier nochmals verkürzt wiedergegeben wird:

QQ+JK
000X
011X
10X1
11X0

Zurück zur Lösung der Ampel-Aufgabe. Nun müssen die Anregungsfunktionen für die vorgesehenen JK-Flipflops ermittelt werden. Es gibt insgesamt vier Anregungsfunktionen für J1, K1, J0 und K0; die Abhängigkeiten von Q1 und Q0 können der Tabelle entnommen werden. Das Minimieren der Ausgangs- und Anregungsfunktionen fällt hier leicht, die Werte sind einfach aus der Tabelle abzulesen:

J1 = ¬Q1 ∧ Q0
K1 = Q1 ∧ ¬Q0
J0 = ¬Q1 ∧ ¬Q0 = ¬(Q1 ∨ Q0)
K0 = Q1 ∧ Q0

R = J0
GE = J1 ∨ K1
GR = K0

Zeichnen des Logikdiagramms:

Anmerkung: Wie man sieht, wird fast immer eine UND-Verknüpfung an den Eingängen J und K benötigt. Handelsübliche JK-Flipflops haben daher oft schon UND-Gatter integriert, so dass bei diesen Bausteinen tatsächlich oft nur eine Verdrahtung notwendig ist.

Einen kleinen Schönheitsfehler hat die Schaltung aber noch: Alle Ampelphasen sind gleich lang → Verbesserung der Schaltung notwendig. Unkonventioneller Ansatz: Der Pegel von GE sorgt für die Umschaltung des Taktgenerators auf eine höhere Taktfrequenz, z. B. von 0,01 Hz auf 0,3 Hz.

7.6 Register

Die Flipflops stellen im Prinzip Informationsspeicher mit einer Kapazität von einem Bit dar. Größere Speicher können durch Verknüpfung mehrerer Flipflops realisiert werden. In der einfachsten Form werden die mit einer begrenzten Menge von Flipflops aufgebauten Speichereinheiten als Register bezeichnet. Kennzeichnend für derartige Register ist außerdem die gleichzeitige Taktung aller beteiligten Flipflops über ein einziges Taktsignal.

Ihrer Funktion entsprechend können Register unterschieden werden:

DateneingangDatenausgangFunktionBeispiel (8 Bit)
seriellseriellSISO
Anwendung: FIFO-Speicher (first-in-first-out), Multiplikation bzw. Division mit dem Faktor 2
seriellparallelSIPO
Anwendung: Umwandlung serielles Datenformat in paralleles Datenformat
parallelseriellPISO
Anwendung: Umwandlung paralleles Datenformat in serielles Datenformat
parallelparallelPIPO
Anwendung: Register zum reinen Zwischenspeichern, z. B. Akkumulator

Beispiel für ein Register: IC 7495A, 4-Bit-Universalregister
Das Universalregister 7495A kann Daten von den 4 Eingängen A, B, C, D parallel übernehmen und im Register vorhandene Daten nach rechts verschieben; hierbei wird der Wert, der am seriellen Eingang (SI, Serial Input) anliegt, nachgezogen.
Die jeweilige Betriebsart wird durch ein Mode-Control-Signal (Mode, MC) festgelegt:

Prinzipieller Aufbau:

Zeitdiagramm:

T1 = minimale Zeitspanne zwischen stabilem Mode-Control-Signal und negativer Taktflanke von Clk1/Clk2.

Schieberegister

Durch Hintereinanderschalten mehrerer JK-Flipflops kann man erreichen, dass die Information am Eingang des ersten Registers bei jedem Taktimpuls an das folgende Register weitergegeben wird, und so, durch das aus diesen Flipflops gebildete, Register hindurchgeschoben wird. Alternativ lassen sich D-Flipflops verwenden.

Das Impulsdiagramm und die Wahrheitstabelle eines solchen Schieberegisters sehen beispielsweise folgendermaßen aus:



TaktDA QAQB QCQD
000000
110000
201000
300100
400010
500001
600000

Solche Register nennt man Schieberegister. Zur Realisierung von Schieberegistern können im Prinzip alle behandelten Flipflop-Arten eingesetzt werden. Häufig zur Anwendung kommen insbesondere die D- und JK-Flipflops (pegel- oder flankengesteuert). Vollständige Schieberegister benötigen, wie das oben gezeigte Universalregister, weitere Steuereingänge:

Schaltet man die Verbindung zwischen Q-Ausgang einer Flipflop-Stufe und D-Eingang der folgenden Flipflop-Stufe nicht direkt sondern über einen Multiplexer, ist die Steuerung unterschiedlicher Schieberegister-Typen möglich:



s1s0Funktion
0
0
ohne Funktion
0
1
paralleles Laden
1
0
Rechtsschieben
1
1
Linksschieben

Alle diese Möglichkeiten sind beispielsweise im Schieberegister-Baustein 74LS194 realisiert:

Für die Grafik und die folgende Wahrheitstabelle gelten folgende Bedingungen:

Die Wiedergabe der komplexen Innenschaltung ist normalerweise nicht nötig, um die Arbeitsweise zu verstehen und das Schieberegister anwenden zu können. Deshalb haben komplexe Bausteine auch wieder ein (Block-)Schaltzeichen - nicht nur das gezeigte Schieberegister, sondern auch andere Register, Zähler usw. Oben im Schaltzeichen befindet sich ein Steuerblock und darunter der eigentliche Registerblock.

Durch Rückführung des letzten Flipflop-Ausgangs auf den Eingang des ersten Flipflops kann ein Ring-Schieberegister erzeugt werden in dem die eingestellten Zustände geschoben werden. Der Zustand des letzten Flipflops würde dann das erste Flipflop erneut setzen.

Beispiel: Ein Schieberegister kann auch als Impulsfolgegenerator für Pseudo-Zufallszahlen eingesetzt werden. Durch eine geeignete Rückkopplung über ein oder mehrere EXOR-Gatter erzeugt das Scheiberegister eine scheinbar zufällige Folge von "0" und "1" am Ausgang (Pseudo-Zufallsfolge). Nach spätestens 2n - 1 Takten erscheint jedoch die gleiche Bitfolge wieder. Die Wahl der Rückkopplung erfolgt so, dass die Pseudo-Zufallsfolge möglichst lang ist. Man kann solch ein Schieberegister u. a. nutzen um über einen nachgeschalteten Digital-Analog-Wandler ein Rauschsignal für Messzwecke zu erzeugen - oder auch einen digitalen "Glühwürmchensimulator".

7.7 ALU mit Registern

Auch bei Rechenschaltungen benötigt man zur Zwischenspeicherung der Operanden und des Ergebnisses (und zur Verschiebung bei Multiplikation und Division) Register, die eine ALU zur Register-ALU (RALU) ergänzen. Sie enthält u. a.: Das folgende Bild zeigt die Blockschaltung einer Register-ALU.

Es ergeben sich folgende Funktionen:

Die Register-ALU ist in dieserForm zur direkten Durchführung von Addition, Subtraktion und logischen Verknüpfungen geeignet. Für die Multiplikation und Division sind Erweiterungen notwendig:

Ergänzungen zur Register-ALU

7.8 Zähler

Dieser Abschnitt, wie auch teilweise schon der vorhergehende, bietet einen kleinen Einblick in die Anschlussvorlesung "Digitale Schaltwerke". Er ist vor allem für jene Studiengänge konzipiert, die nur die "Digitaltechnik" im Studienplan verzeichnet haben. Der Abschnitt ist deshalb auch nicht mehr als eine Einführung in die Problematik.

Zu Beginn dieses Kapitels über Schaltwerke wurde schon unterschieden in

Eine sequentielle Schaltung, die beim Einlesen von Eingagspulsen eine festgelegte Folge von Zuständen durchläuft, nennt man Zähler. Die Eingangssignale können sowohl Taktimpulse als auch Signalimpulse sein. Man unterscheidet Zähler nach der funktionalen Arbeitsweise in asynchrone und synchrone Zähler. Der asynchrone Zähler wird beispielswesie die die zu beliebigen Zeiten auftretenden 0-1-übergänge 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:

Weiterhin gibt es Vorwärts- und Rückwärtszähler sowie programmierbare Zähler, bei 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. Die einfachste Form eines Zählers ist ein Dualzähler, weil er der binären Zahlenfolge folgt. Ein n-Bit-Zähler besteht aus n Flipflops und kann von 0 bis 2n zählen.

Zähler-Schaltungen lassen sich besonders gut mit Zustandsgraphen beschreiben, der jeweilige Zählerstand eignet sich bestens als Zustandsnummer. Das folgende Bild zeigt den Zustandsgraphen eines Modulo-Zehn-Zählers (BCD-Zähler). Die Knoten enthalten die Zählerzustände, und die Kanten geben die möglichen Zustandsübergänge an.

Asynchrone Zähler

Bei einem T-Flipflop (Toggle-Flipflop) ändert mit jeder ansteigenden Flanke des Eingangssignals sein Zustand. Werden solche Flipflops über den invertierten Ausgang geschaltet, erhält man einen asynchronen Binärzähler wie im Bild. Beim JK-Flipflop gibt es eine Eingangskombination (J = K = 1), bei der das Flipflop bei jedem Taktimpuls seinen Zustand wechselt (kippen, toggle). Jede Stufe des Flipflop halbiert also den Takt. Es ergibt sich folgende Wahrheitstabelle für die Ausgänge:

Takt Q1 Q2 Q3 Takt Q1 Q2 Q3
0 0 0 0 4 1 0 0
1 0 0 1 5 1 0 1
2 0 1 0 6 1 1 0
3 0 1 1 7 1 1 1

Genauer: Taktimpuls 0 zeigt den Anfangszustand, der Rest der Tabelle den Zustand der Ausgänge nach dem jeweiligen Taktimpuls. Im unteren Teil des Bildes ist der Signalverlauf des Binärzählers gezeigt.

Der vorgestellte Zähler ist ein asynchroner serieller Zähler. Der vom Eingangstakt ausgelöste Zustandswechsel am ersten Flipflop pflanzt sich von Flipflop zu Flipflop fort (ripple counter). Das Zählen beruht hier auf dem Prinzip der Frequenzteilung. Ein zusätzlicher Reset-Eingang kann den Zähler jederzeit in den Anfangszustand versetzen, was bei Schaltwerken generell wünschenswert ist.

Der Nachteil des asynchronen Zählers liegt darin, dass bei Verwendung realer Bauteile in jedem Flipflop Laufzeitverzögerungen entstehen, die sich von Stufe zu Stufe summieren. Das hat zur Folge, dass beim Zustandswechsel nicht alle Flipflop-Ausgänge exakt zum selben Zeitpunkt umschalten. Es entstehen so für sehr kurze Zeit "illegale" Ausgangskombinationen, die gegebenenfalls Störungen im Gesamtsystem hervorrufen können. Solche Störimpulse mit einer Dauer von einigen 10 ns lassen sich auch nicht ganz leicht messtechnisch erfassen. Trotzdem eigen sich asynchrone Zähler vorzüglich als Frequenzteiler und ähnliche Aufgaben. Um beispielsweise aus der Netzfrequenz von 50 Hz einen Sekundentakt für eine Digitaluhr zu gewinnen, kann man einen asynchronen Mod-50-Zähler verwenden.

Um Zählerschaltungen zu realisieren werden oftmals JK-Flip-Flops eingesetzt, da diese durch die besondere Beschaltung der Eingänge (J = K = "1") und vorgegebenem Takt beginnen zu toggeln. Das folgende Beispiel verwendet einen 4-Bit-Zähler, um ihn zu einem BCD-Zähler bzw. einen Teiler durch 10 auszubauen. Die Ausgangskombination Q3 = 1, Q2 = 0, Q1 = 1 und Q0 = 0 setzt den Zähler zurück. Auch hier entsteht für einige 10 ns eine "10" am Ausgang, bevor die "0" als korrekter Nachfolger der "9" erscheint. Wenn aber z. B. nur der ¬Q4-Ausgang als Takt verwendet wird, gibt es keine Probleme. Auch bei einer Digitaluhr wäre die Anzeige der "10" viel zu kurz, um wahrgenommen zu werden.

Asynchrone BCD-Zähler sind als handelsübliche Bausteine fertig erhältlich. Mit sechs von solchen Zählern, wobei zwei davon als Modulo-6-Zähler und einer als Modulo-2-Zähler geschaltet sind kann man dann eine Digitaluhr bauen. Bei der machen dann auch kleine "Glitches" im Nanosekundenbereich nichts aus:

Beim Modulo-8-Zähler im Bild weiter oben ist jeweils der invertierende Ausgang eines Flipflops mit dem Takteingang des folgenden verbunden. Wenn man stattdessen den Q-Ausgang jeweils mit der Folgestufe verbindet, wird rückwärts gezählt. Schaltet man nun zwischen die einzelnen Flipflops einen Multiplexer, kann die Zählrichtig umgeschaltet werden - je nachdem welcher Ausgang einer Stufe mit dem folgenden Takteingang verbunden wird.

Synchrone Zähler

Bei einem synchronen Zähler wird ein Zählimpuls allen Flipflops gleichzeitig zugeführt. Ein derartiger Zähler ist aufwendiger als ein asynchroner Zähler. Er ist aber weniger anfällig gegenüber Störungen im Zeitverhalten, da der Ausgangszustand nur während eines kurzen Zeitintervalls nach dem Takt nicht definiert ist. Dazu ein ausführliches Beispiel:

Entwurfsbeispiel: 3-Bit-Zähler

Aufstellen der Wahrheitstabelle
Es soll ein synchroner 3-Bit Binärzähler mit JK-Flipflops entworfen werden. Zuerst wird die Wahrheitstabelle für den Zähler aufgestellt. Im Gegensatz zum vorhergehenden Beispiel werden diesmal nur die Zählfolge und der jeweilige Folgezustand des Zählers niedergelegt. Die Ermittlung von J und K erfolgt dann anschließend.

Aufstellen der KV-Diagramme
Für jedes Ausgangssignal Q+ wird nun ein KV-Diagramm erstellt und daraus die minimale Form ermittelt. Diese Gleichung wird dann mit der charakteristischen Gleichung des jeweiligen Flipflop-Typs verglichen. Bei diesem Vergleich ergibt sich nun das Signal für die Flipflop-Eingänge.

Gleichung für QA+:

Aus dem KV-Diagramm ergibt sich QA+ = ¬QA. Diese Gleichung wird nun mit der charakteristischen Gleichung für ein JK-Flipflop verglichen:
Q+ = (J ∧ ¬Q) ∨ (¬K ∧ Q)
QA+ = ¬QA

Auf den ersten Blick haben beide Gleichungen nichts gemeinsam. Es stellt sich die Frage, wie man von ¬QA auf (J ∧ ¬QA) kommt. Zieht man die Theoreme zu Rate kann man ¬QA erweitern zu (1 ∧ ¬QA). Hieraus folgt, dass J = 1 sein muss!

In der charakteristischen Gleichung haben wir auch noch den zweiten, ODER-verknüpften Term (¬K ∧ Q), der in der Gleichung für QA+ überhaupt nicht auftaucht. Demzufolge muss dieser Term gleich 0 sein (Theorem: X ∨ 0 = X). Dieser Term wird aber genau dann 0, wenn ¬K gleich 0 ist (Theorem: 0 ∧ X = 0). Hieraus folgt, dass K = ¬0 = 1 sein muss. Mit diesem Erkenntnissen bekommen wir eine Gleichung, die der charakteristischen Gleichung für ein JK-Flipflop entspricht und die Werte für JA und KA:

QA+ = (1 ∧ ¬QA) ∨ (0 ∧ QA)
JA = KA = 1

Gleichung für QB+:

Auf die gleiche Art und Weise wie oben nehmen wir uns den nächsten Kandidaten vor: Aus dem KV-Diagramm ergibt sich QB+. Auch diese Gleichung wird mit der charakteristischen Gleichung für ein JK-Flipflop verglichen:
Q+ = (J ∧ ¬Q) ∨ (¬K ∧ Q)
QB+ = (QA ∧ ¬QB) ∨ (¬QA ∧ QB)

Durch den Vergleich erkennt man nun sofort die Lösung J = QA und ¬K = ¬QA, woraus folgt, dass K = QA sein muss. Es gilt also:

QB+ = (QA∧ ¬QB) ∨ (¬QA ∧ QB)
JB = KB = QA

Gleichung für QC+:

Aus dem KV-Diagramm lässt sich nun die komplexeste der drei Gleichung ablesen: QC+ = (QA ∧ QB ∧ ¬QC) ∨ (¬QA ∧ QC) ∨ (¬QB ∧ QC). Mit Hilfe der Schaltalgebra lassen sich die letzten beiden Terme per Distributivgesetz zusammenfassen (QC ausklammern): (¬QA ∧ QC) ∨ (¬QB ∧ QC) = (¬QA ∨ ¬QB) ∧ QC. Und der erste Term bekommt nur noch eine Klammer, was insgesamt folgenden Ausdruck ergibt, der auch wieder mit der charakteristischen Gleichung für ein JK-Flipflop verglichen wird:

QC+ = [(QA ∧ QB) ∧ ¬QC] ∨ [(¬QA ∨ ¬QB) ∧ QC]
Q+ = (J ∧ ¬Q) ∨ (¬K ∧ Q)

Daraus ersieht man, dass J = (QA ∧ QB) und ¬K = (¬QA ∨ ¬QB) sein muss → K = ¬(¬QA ∨ ¬QB = QA ∧ QB (nach dem Theorem von DeMorgan). Damit erhalten wir das Endergebnis:

QC+ = [(QA ∧ QB) ∧ ¬QC] ∨ [(¬QA ∨ ¬QB) ∧ QC]
JC = KC = QA ∧ QB

Erstellen der Blockschaltung
Für den Schaltungsaufbau fassen wir nochmal zusammen:
JA = KA =1
JB = KB = QA
JC = KC = QA ∧ QB

Das führt dann zur folgenden Schaltung eines Modulo-8-Synchronzählers:

Alternative Realisierung mit D-Flipflops

Waqhrheitstabelle, KV-Diagramme und Gleichungen können vom vorherigen Anbschnitt übernommen werden, denn an der Aufgabenstellung hat sich ja nichts geändert. Nur lautet die charakteristische Gleichung für ein D-Flipflop anders. Statt Q+ = (J ∧ ¬Q) ∨ (¬K ∧ Q) gilt nun Q+ = D. Entsprechend ändern sich nur die Logik-Gleichungen:

QA+:   D = ¬QA = 1 ⊕ QA
QB+:   D = (QA ∧ ¬QB) ∨ (¬QA ∧ QB) = QA ⊕ QB
QC+:   D = [(QA ∧ QB) ∧ ¬QC] ∨ [(¬QA ∨ ¬QB) ∧ QC]
= [(QA ∧ QB) ∧ ¬QC] ∨ [¬(QA ∧ QB) ∧ QC]
= (QA ∧ QB) ⊕ QC

Die Gleichungen, insbesondere die Umformung in einen Ausdruck mit Exklusiv-Oder zeigt eine Gesetzmäßigkeit. Wenn man den Zusammenhang zwischen J und K auf der einen Seite und D auf der anderen Seite nochmals zusammenfaßt, ergibt sich:

FlipflopJ = KD
QA+11 ⊕ QA
QB+AQA ⊕ QB
QC+QA ∧ QB(QA ∧ QB) ⊕ QC

Die Ähnlichkeit zwischen den JK-Flipflops und den D-Flipflops ist unverkennbar. Bei letzteren kommt immer eine Exklusiv-Oder-Verknüpfung mit dem Ausgang des jeweiligen Flipflops hinzu.

Es ergibt sich dann folgende Schaltung eines Modulo-8-Synchronzählers mit D-Flipflops:

Aufgabe: Würde sich bei der Erweiterung auf einen 4-Bit-Zähler für das hinzukommende Flipflop die Anregungsfunktion (QA ∧ QB ∧ QC) ⊕ QD ergeben?

Zusammenfassung:

Synchroner Zähler (8-4-2-1-Code)

Alternativ zum vorhergehenden Abschnitt lassen sich Ji und Ki auch auf andere Weise ermitteln.

Aufstellen der Wahrheitstabelle
Ausgehend vom 8-4-2-1-Code wird die Wahrheitstabelle für einen Zähler in diesem Code aufgestellt. Darin sind D, C, B und A die Ausgänge der vier benötigten Flipflops vor dem Eintreffen eines Taktimpulses und D*, C*, B* und A* dieselben Ausgänge nach dem Taktimpuls.

DezimalDCBA  D*C*B*A*
0 0000 0001
1 0001 0010
2 0010 0011
3 0011 0100
4 0100 0101
5 0101 0110
6 0110 0111
7 0111 1000
8 1000 1001
9 1001 0000

Für die Werte von K und J werden in diesem Beispiel die schon bekannten Abkürzungen verwendet (hier etwas verkürzt):

JKQt+1Abk. JKQt+1Abk.
1X1J(K)0XQt(K)
X10K(J)X0Qt(J)

Entwickeln der KV-Diagramme
Für jeden der vier Flipflop-Ausgänge D*, C*, B* und A* (nach dem Takt) wird jetzt ein KV-Diagramm erstellt. Eingangsvariable sind dabei die Flipflop-Ausgänge D, C, B und A vor dem Takt. Das folgende Bild zeigt diese vier Diagramme.

Im KV-Diagramm für die Ausgangsgröße D* korrespondiert die erste Zeile der Wahrheitstabelle für die Dezimalziffer 0 mit dem Feld, das in der linken Spalte und in der ersten Zeile liegt. Für dieses Feld ist D = 0, C = 0, B = 0 und A = 0. Nach der Wahrheitstabelle muss hier D* auf 0 gehalten werden. Dafür wird die definierte Abkürzung (K) verwendet. Ebenso wird mit den weiteren Zeilen der Wahrheitstabelle für die Dezimalziffern 1 bis 6 verfahren. Die Zeile der Wahrheitstabelle für die Dezimalziffer 7 korrespondiert mit dem Feld in der zweiten Zeile und der dritten Spalte von links im KV-Diagramm. Für dieses Feld ist D = 0, C = 1, B = 1 und A = 1. Hier soll also am Ausgang D* High-Pegel hergestellt werden. Wir tragen daher in dieses Feld die Abkürzung J (K) ein.

Bei der Dezimalziffer 8 muss Ausgang D* auf 1 gehalten werden. In das zugehörige Feld des KV-Diagramms, das sich links unten befindet, wird (J) eingetragen. Aus der letzten Zeile der Wahrheitstabelle, die für die Dezimalziffer 9 gilt, geht hervor, dass für Ausgang D* 0-Pegel hergestellt werden muss. In das zugehörige Feld des KV-Diagramms, letzte Zeile, zweite Spalte von links, wird K(J) eingetragen. Für sechs der sechzehn Felder des KV-Diagramms gibt es keine zugehörigen Zeilen der Wahrheitstabelle. Das sind die Pseudotetraden. Diese Felder können beliebige Zustände annehmen, und sie werden daher mit X ausgefüllt.

Für die Ausgangsgrößen C*, B* und A* werden auf die gleiche Weise die KV-Diagramme aufgestellt.

Gruppenbildung und Erstellen der Eingangsgleichungen
Wie bei der Berechnung statischer Verknüpfungen , werden auch hier die Felder der KV-Diagramme zu möglichst großen Gruppen zusammengefaßt. Es gelten hier dieselben Regeln:
Die Anzahl der zu einer Gruppe zusammengefaßten Felder muss 2k sein, wobei k eine ganze Zahl > 0 ist, maximal aber gleich der Zahl der Eingangsvariablen. Alle Felder einer Gruppe müssen benachbart sein. Benachbart sind Felder, die sich nur in einer Eingangsvariablen unterscheiden, das heißt, diese befinden sich nebeneinander in derselben Zeile beziehungsweise untereinander in derselben Spalte.

Anders als bei KV-Diagrammen für statische Verknüpfungen müssen bei der Zählerberechnung mit JK-Flipflops zwei Arten von Gruppen gebildet werden:

  1. Gruppen um Felder, die mit J(K) bezeichnet sind, J muss hier 1 sein. In Feldern, die mit (J), K(J) oder X bezeichnet sind, darf J = 1 sein. Diese Felder dürfen also auch in dieser Art der Gruppen vorhanden sein.
  2. Gruppen um Felder, die mit K(J) bezeichnet sind. K muss hier 1 sein. K darf 1 sein in Feldern, die mit (K), J(K) oder X bezeichnet sind. Demnach dürfen diese Felder auch in dieser Art der Gruppen enthalten sein.
In dem aufgestellten KV-Diagramm für D* gibt es ein Feld mit J(K). Die größtmögliche Gruppe um dieses Feld besteht aus zwei Feldern und ist mit einer gestrichelten Linie umrahmt. Für diese Gruppe gilt C = 1, B = 1 und A = 1. In dieser Gruppe ist D redundant. Die Gleichung dieser Gruppe, die die Beschaltung des J-Eingangs des Flipflops Nummer D festlegt, lautet also

JD = C · B · A

Die größtmögliche Gruppe um das mit K(J) bezeichnete Feld besteht aus acht Feldern. Sie ist mit einer durchgezogenen Linie umrahmt. Für diese Gruppe gilt A = 1, und die Eingangsvariablen D, B und C sind redundant. Die Gleichung dieser Gruppe, die die Beschaltung des K-Eingangs festlegt, lautet also

KD = A

In gleicher Weise werden jetzt die weiteren drei KV-Diagramme für die Ausgangsgrößen C*, B* und A* aufgestellt und aus den Gruppen die Eingangsgleichungen ermittelt. Das KV-Diagramm für die Ausgangsgröße A* enthält neben mit X bezeichneten Feldern nur solche mit der Bezeichnung J(K) oder K(J), das heißt, sowohl J als auch K dürfen in allen Feldern des Diagramms High sein. Demnach umfaßt die größtmögliche Gruppe für J und für K das ganze KV-Diagramm. Für diese Gruppe sind alle Eingangsvariablen redundant. Die Funktionsgleichung lautet daher

JA = KA = 1

Dieses Ergebnis hätte man auch schon aus der Wahrheitstabelle ablesen können. Der Flipflop-Ausgang A wechselt mit jedem Taktimpuls seinen Zustand. Das ist aber bei einem JK-Flipflop nur möglich, wenn beide Eingänge J und K 1-Potential haben.

Blockschaltbild
Das folgende Bild zeigt die aus den bisherigen Erkenntnissen resultierende Realisierung.

Da eine Vielzahl von Zählern angeboten wird, ist ein diskreter Aufbau aus Flipflops nur selten nötig. Anders verhält sich das bei synchronen Schaltwerken, die beliebige Ausgangskombinationen liefern sollen.

7.9 Übungen

Aufgaben

  1. Ersetzt man in dem in der Vorlesung besprochenen Basis-FF die NOR-Gatter durch NAND-Gatter, so erhält man ein weiteres Basis-FF mit den Eingängen X1, X2 und den Ausgängen Y1, Y2.
    1. Geben Sie die Schaltung für dieses Basis-FF an.
    2. Erstellen Sie die Zustandsfolgetabelle und geben Sie die charakteristische Gleichung an.
    3. Wodurch unterscheidet sich dieses FF in seinem logischen Verhalten von dem in der Vorlesung vorgestellten Basis-FF aus NOR-Gattern, welche Bedeutung haben die Ein- und Ausgänge?
    4. Wie lässt sich aus diesem FF ein RS-FF erzeugen?

  2. Ergänzen Sie die folgenden Zeitdiagramme:

  3. Ergänzen Sie die folgenden Zeitdiagramme:

Lösungen

  1. Lösungen:

  2. Lösungen:

  3. Lösungen:

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © Hochschule München, FK 04, Prof. Jürgen Plate
Letzte Aktualisierung: 09. Feb 2013