Synchronzähler entwerfen: Wertetabelle, DNF und KNF, KV-Diagramm und JK-Flipflops

https://bildung.social/@oerinformatik/

https://oer-informatik.de/synchronzaehler

Synchronzähler, Schaltwerksentwurf, Zustandsfolgetabelle, disjunktive Normalform, konjunktive Normalform, KV-Diagramm, Don’t Care, JK-Master-Slave-Flipflop, charakteristische Gleichung, Koeffizientenvergleich, BCD-Zähler, Signallaufzeit

tl/dr; (ca. 32 min Lesezeit): Ein Asynchronzähler zeigt beim Übergang von 7 auf 8 kurz die Falschwerte 6, 4 und 0. Synchronzähler vermeiden das, weil alle Flipflops am selben Takt hängen, brauchen aber eine passende Ansteuerlogik. Dieser Artikel zeigt Schritt für Schritt den Entwurf: Zustandsfolgetabelle, Funktionsgleichungen als DNF und KNF, Vereinfachen mit Schaltalgebra und KV-Diagramm, charakteristische Gleichungen der Flipflops, Koeffizientenvergleich für J und K, die fertige Schaltung und zum Schluss ein BCD-Zähler mit Don’t-Care-Feldern [AI-Assisted]. (Zuletzt geändert am 13.11.2026)

Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.

Dieser Artikel baut auf der Kann-Liste der Artikel Logische Verknüpfungen, Flipflops und Zähler, Frequenzteiler und Schieberegister auf.

Als Digitaltechnik-Grundlagen kann ich nach Durcharbeiten des Artikels…

  • … an einem Impulsdiagramm erklären, warum ein Asynchronzähler beim Zählen kurzzeitig falsche Zählerstände ausgibt, und diese Zwischenwerte bestimmen.

  • … für einen Zähler die Zustandsfolgetabelle mit den Zuständen vor und nach der Taktflanke aufstellen.

  • … aus einer Wertetabelle die disjunktive und die konjunktive Normalform aufstellen und begründen, welche der beiden kürzer ist.

  • … Funktionsgleichungen mit den Regeln der Schaltalgebra vereinfachen.

  • … KV-Diagramme für zwei, drei und vier Variablen aufstellen, Blöcke nach den Vereinfachungsregeln bilden (auch über die Ränder hinweg) und die minimale Funktionsgleichung ablesen.

  • … die charakteristischen Gleichungen von RS-, D-, T- und JK-Flipflop nennen.

Darüber hinaus kann ich als Digitaltechnik-Expertenwissen…

  • … per Koeffizientenvergleich aus den Folgezustandsgleichungen die Ansteuergleichungen für J und K bestimmen und den Synchronzähler verdrahten.

  • … nicht benutzte Zustände als Don’t-Care-Felder nutzen, einen BCD-Zähler entwerfen und prüfen, ob er aus nicht benutzten Zuständen in den Zählzyklus zurückfindet.

  • … die höchste Taktfrequenz eines Synchronzählers aus Laufzeit, Gatterlaufzeit und Vorbereitungszeit abschätzen.

Ein Zähler steuert eine Anzeige mit zwei 7-Segment-Stellen, ein zweiter Baustein vergleicht den Zählerstand mit einem Sollwert und schaltet bei Gleichheit ein Ventil. Meistens funktioniert das, aber hin und wieder schaltet das Ventil zu früh. Schuld ist kein Wackelkontakt, sondern der Aufbau des Zählers: Beim Asynchronzähler schalten die Flipflops nacheinander, und in den wenigen Nanosekunden dazwischen stehen an den Ausgängen Zahlen, die nie gezählt wurden.

Abhilfe schafft der Synchronzähler, bei dem alle Flipflops mit derselben Taktflanke schalten. Wie man ihn verdrahtet, ist allerdings nicht offensichtlich. In diesem Artikel entwirfst Du ihn Schritt für Schritt: von der Wertetabelle über Funktionsgleichungen und KV-Diagramme bis zur fertigen Schaltung aus JK-Master-Slave-Flipflops. Das Verfahren funktioniert für jede Zählfolge, zum Schluss auch für einen BCD-Zähler.

Links eine Reihe von 7-Segment-Ziffern 7, 6, 4, 0, 8, deren mittlere drei rot als Falschwerte markiert sind; ein Pfeil „Entwurf“ führt nach rechts zu einer KV-Tafel für den Folgezustand Q3+ mit farbig umrandeten Blöcken und der Ansteuergleichung J3 = K3 = Q0 Q1 Q2 (mit KI erstellt)

Die Übungsaufgaben zu diesem Artikel findest Du unter Übungsaufgaben zum Entwurf von Synchronzählern. Vorausgesetzt werden die Grundverknüpfungen und die Rechenregeln der Schaltalgebra aus Logische Verknüpfungen, das JK-Flipflop aus Flipflops sowie Asynchron- und Synchronzähler aus Zähler, Frequenzteiler und Schieberegister.

Schritt 1: Das Problem des Asynchronzählers

Beim 4-Bit-Asynchronzähler bekommt nur das erste Flipflop den Zähltakt. Jedes weitere Flipflop wird vom Ausgang des vorherigen getaktet und kippt erst, wenn dieses umgeschaltet hat. Jedes Flipflop braucht dafür seine Signallaufzeit t_\mathrm{pd} (propagation delay), typisch einige Nanosekunden.

Besonders deutlich wird das beim Übergang von 7 (0111) auf 8 (1000), weil sich dabei alle vier Bits ändern. Nimm an, jedes Flipflop braucht 10 ns:

Impulsdiagramm eines 4-Bit-Asynchronzählers beim Übergang von 7 nach 8: Nach der fallenden Taktflanke bei t = 0 fällt Q0 nach 10 ns, Q1 nach 20 ns, Q2 nach 30 ns, Q3 steigt nach 40 ns; eine 7-Segment-Anzeige darunter zeigt nacheinander 7, 6, 4, 0 und 8, die Werte 6, 4 und 0 sind rot hinterlegt (mit KI erstellt)
  • Nach 10 ns fällt Q_0: Der Zähler steht auf 0110 = 6.

  • Nach 20 ns fällt Q_1 (getaktet von Q_0): 0100 = 4.

  • Nach 30 ns fällt Q_2: 0000 = 0.

  • Nach 40 ns steigt Q_3: 1000 = 8, endlich der richtige Wert.

Eine 7-Segment-Anzeige hinter einem BCD-Decoder zeigt also für einige Nanosekunden 7, 6, 4, 0, 8. Das Auge bemerkt das nicht. Eine nachgeschaltete Logik aber schon: Ein Vergleicher, der auf den Stand 4 wartet, liefert kurz einen Nadelimpuls (Spike oder Glitch), und ein Speicher, der genau in diesem Moment übernimmt, hält einen falschen Wert fest. Je mehr Stufen der Zähler hat, desto länger dauert die Phase mit Falschwerten: Bei n Stufen ist der Zählerstand erst nach n \cdot t_\mathrm{pd} gültig.

Die Idee: Alle Flipflops hängen am selben Takt und schalten gleichzeitig. Dann ändern sich alle Bits nach derselben Laufzeit, und es gibt keine Zwischenstände mehr. Wir verwenden dafür JK-Master-Slave-Flipflops (JK-MS), die bei J = K = 1 kippen und bei J = K = 0 ihren Zustand halten.

Das Problem: Jetzt bekommt jedes Flipflop bei jeder Taktflanke einen Takt. Ob es kippen soll oder nicht, muss eine Logik an den Eingängen J und K entscheiden. Wie diese Logik aussieht, weißt Du noch nicht. Genau das erarbeiten wir in den nächsten Schritten.

Schritt 2: Die Zustandsfolgetabelle

Ein Zähler ist ein Schaltwerk: Sein nächster Zustand hängt vom aktuellen Zustand ab. Deshalb beginnt der Entwurf mit einer Tabelle, die für jeden Zustand vor der Taktflanke den Zustand nach der Taktflanke angibt, der Zustandsfolgetabelle.

Die Ausgänge vor der Flanke heißen Q_3, Q_2, Q_1, Q_0, die Ausgänge nach der Flanke Q_3^+, Q_2^+, Q_1^+, Q_0^+. (Im Artikel Flipflops steht dafür Q_n und Q_{n+1}; hier ist der Index schon für die Bitnummer vergeben.) Der Dualzähler zählt von 0 bis 15 und beginnt dann wieder bei 0:

Zustandsfolgetabelle des 4-Bit-Dualzählers (vorwärts)
Stand Q_3 Q_2 Q_1 Q_0 Q_3^+ Q_2^+ Q_1^+ Q_0^+ Folgestand
0 0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 0 1 0 2
2 0 0 1 0 0 0 1 1 3
3 0 0 1 1 0 1 0 0 4
4 0 1 0 0 0 1 0 1 5
5 0 1 0 1 0 1 1 0 6
6 0 1 1 0 0 1 1 1 7
7 0 1 1 1 1 0 0 0 8
8 1 0 0 0 1 0 0 1 9
9 1 0 0 1 1 0 1 0 10
10 1 0 1 0 1 0 1 1 11
11 1 0 1 1 1 1 0 0 12
12 1 1 0 0 1 1 0 1 13
13 1 1 0 1 1 1 1 0 14
14 1 1 1 0 1 1 1 1 15
15 1 1 1 1 0 0 0 0 0

Lies die Tabelle als vier Wertetabellen mit denselben vier Eingängen Q_3 \ldots Q_0 und je einem Ausgang Q_i^+. Für jeden dieser Ausgänge suchen wir eine Funktionsgleichung. Wie daraus die Ansteuerung von J und K wird, klären wir in Schritt 6.

Ein Muster fällt schon jetzt auf: Q_0^+ ist immer das Gegenteil von Q_0, und Q_1 ändert sich genau dann, wenn vorher Q_0 = 1 war.

Schritt 3: Funktionsgleichungen über DNF und KNF

Minterme und die disjunktive Normalform (DNF)

Jede Wertetabelle lässt sich ohne Nachdenken in eine Gleichung übersetzen. Dazu brauchst Du zwei Begriffe:

  • Ein Minterm ist eine UND-Verknüpfung, in der jede Eingangsvariable genau einmal vorkommt, und zwar unverändert, wenn sie in der betrachteten Zeile 1 ist, und negiert, wenn sie 0 ist. Ein Minterm ist genau in einer Zeile der Wertetabelle 1.

  • Die disjunktive Normalform (DNF) ist die ODER-Verknüpfung (Disjunktion) aller Minterme der Zeilen, in denen der Ausgang 1 ist.

Das Rezept:

  1. Markiere alle Zeilen mit Ausgang 1.

  2. Bilde für jede dieser Zeilen den Minterm.

  3. Verknüpfe alle Minterme mit ODER.

Zur Schreibweise: Wie in der Mathematik lassen wir das UND-Zeichen weg, Q_1\overline{Q_0} bedeutet Q_1 \wedge \overline{Q_0}.

Beispiel Q_1^+: In der Zustandsfolgetabelle ist Q_1^+ = 1 in den Zeilen 1, 2, 5, 6, 9, 10, 13 und 14. Zeile 1 (0001) liefert den Minterm \overline{Q_3}\,\overline{Q_2}\,\overline{Q_1}\,Q_0, Zeile 2 (0010) liefert \overline{Q_3}\,\overline{Q_2}\,Q_1\overline{Q_0} und so weiter:

\begin{aligned} Q_1^+ = \; & \overline{Q_3}\,\overline{Q_2}\,\overline{Q_1}\,Q_0 \vee \overline{Q_3}\,\overline{Q_2}\,Q_1\overline{Q_0} \vee \overline{Q_3}\,Q_2\overline{Q_1}\,Q_0 \vee \overline{Q_3}\,Q_2Q_1\overline{Q_0} \\ \vee \; & Q_3\overline{Q_2}\,\overline{Q_1}\,Q_0 \vee Q_3\overline{Q_2}\,Q_1\overline{Q_0} \vee Q_3Q_2\overline{Q_1}\,Q_0 \vee Q_3Q_2Q_1\overline{Q_0} \end{aligned}

Diese Gleichung ist richtig, aber unhandlich: acht UND-Glieder mit je vier Eingängen und ein ODER-Glied mit acht Eingängen. Sie muss vereinfacht werden.

Maxterme und die konjunktive Normalform (KNF)

Der zweite Weg geht von den Nullen aus:

  • Ein Maxterm ist eine ODER-Verknüpfung, in der jede Eingangsvariable genau einmal vorkommt, und zwar negiert, wenn sie in der Zeile 1 ist, und unverändert, wenn sie 0 ist. Ein Maxterm ist genau in einer Zeile 0.

  • Die konjunktive Normalform (KNF) ist die UND-Verknüpfung (Konjunktion) aller Maxterme der Zeilen, in denen der Ausgang 0 ist.

Für Q_1^+ sind das die Zeilen 0, 3, 4, 7, 8, 11, 12 und 15. Zeile 0 (0000) liefert (Q_3 \vee Q_2 \vee Q_1 \vee Q_0), Zeile 3 (0011) liefert (Q_3 \vee Q_2 \vee \overline{Q_1} \vee \overline{Q_0}):

Q_1^+ = (Q_3 \vee Q_2 \vee Q_1 \vee Q_0)(Q_3 \vee Q_2 \vee \overline{Q_1} \vee \overline{Q_0})(Q_3 \vee \overline{Q_2} \vee Q_1 \vee Q_0) \cdots (\overline{Q_3} \vee \overline{Q_2} \vee \overline{Q_1} \vee \overline{Q_0})

Warum das funktioniert: Jeder Maxterm wird nur in „seiner“ Zeile 0, sonst ist er 1. Die UND-Verknüpfung ist deshalb genau in den Nullzeilen 0.

Welche Form wählen? Die DNF hat so viele Terme, wie es Einsen gibt, die KNF so viele, wie es Nullen gibt. Hat eine Tabelle wenige Einsen, ist die DNF kürzer, bei wenigen Nullen die KNF. Bei Q_1^+ halten sich beide die Waage (acht zu acht). Die DNF entspricht einer Schaltung aus UND-Gliedern mit nachgeschaltetem ODER-Glied, die KNF ODER-Gliedern mit nachgeschaltetem UND-Glied.

Kurze Wiederholung: Regeln zum Vereinfachen

Die Rechenregeln der Schaltalgebra stehen ausführlich in Logische Verknüpfungen. Für die Normalformen sind vor allem diese wichtig:

Regeln der Schaltalgebra, die beim Vereinfachen der Normalformen gebraucht werden
Regel UND-Form ODER-Form
Ausklammern XY \vee X\overline{Y} = X(Y \vee \overline{Y}) (X \vee Y)(X \vee \overline{Y}) = X \vee Y\overline{Y}
Ergänzung Y \vee \overline{Y} = 1 Y\overline{Y} = 0
Zusammenfassen (aus beiden) XY \vee X\overline{Y} = X (X \vee Y)(X \vee \overline{Y}) = X
Absorption X \vee XY = X X(X \vee Y) = X
Hilfsregel X \vee \overline{X}Y = X \vee Y X(\overline{X} \vee Y) = XY
De Morgan \overline{XY} = \overline{X} \vee \overline{Y} \overline{X \vee Y} = \overline{X}\,\overline{Y}
Idempotenz X \vee X = X XX = X

Der Kern jeder Vereinfachung ist die Regel Zusammenfassen: Zwei Terme, die sich nur in einer Variablen unterscheiden (einmal unverändert, einmal negiert), verschmelzen zu einem Term ohne diese Variable. Mit Idempotenz darfst Du einen Term auch doppelt verwenden, um ihn mit zwei verschiedenen Partnern zusammenzufassen.

Q_1^+ vereinfachen

In der DNF von Q_1^+ unterscheiden sich der erste, dritte, fünfte und siebte Term nur in Q_3 und Q_2. Zusammengefasst bleibt \overline{Q_1}\,Q_0. Ebenso werden die übrigen vier Terme zu Q_1\overline{Q_0}:

\begin{aligned} Q_1^+ &= \overline{Q_1}\,Q_0\,(\overline{Q_3}\,\overline{Q_2} \vee \overline{Q_3}\,Q_2 \vee Q_3\overline{Q_2} \vee Q_3Q_2) \vee Q_1\overline{Q_0}\,(\overline{Q_3}\,\overline{Q_2} \vee \overline{Q_3}\,Q_2 \vee Q_3\overline{Q_2} \vee Q_3Q_2) && \text{ausklammern} \\ &= \overline{Q_1}\,Q_0 \cdot 1 \vee Q_1\overline{Q_0} \cdot 1 && \text{alle vier Kombinationen ergeben 1} \\ &= \overline{Q_1}\,Q_0 \vee Q_1\overline{Q_0} = Q_1 \oplus Q_0 \end{aligned}

Das ist ein Exklusiv-ODER: Q_1 wechselt, wenn Q_0 = 1 ist. Die KNF führt zum selben Ergebnis, nur in der anderen Form: Q_1^+ = (Q_1 \vee Q_0)(\overline{Q_1} \vee \overline{Q_0}).

Q_2^+ vereinfachen

Q_2^+ ist 1 in den Zeilen 3, 4, 5, 6 und 11, 12, 13, 14. Die Zeilen mit Q_3 = 0 und Q_3 = 1 bilden jeweils Paare, die sich nur in Q_3 unterscheiden. Nach dem ersten Zusammenfassen bleiben vier Terme mit drei Variablen:

\begin{aligned} Q_2^+ &= \overline{Q_2}\,Q_1Q_0 \vee Q_2\overline{Q_1}\,\overline{Q_0} \vee Q_2\overline{Q_1}\,Q_0 \vee Q_2Q_1\overline{Q_0} && Q_3 \text{ entfällt} \\ &= \overline{Q_2}\,Q_1Q_0 \vee Q_2\overline{Q_1} \vee Q_2Q_1\overline{Q_0} && \text{2. und 3. Term zusammenfassen} \\ &= \overline{Q_2}\,Q_1Q_0 \vee Q_2(\overline{Q_1} \vee Q_1\overline{Q_0}) && Q_2 \text{ ausklammern} \\ &= \overline{Q_2}\,Q_1Q_0 \vee Q_2(\overline{Q_1} \vee \overline{Q_0}) && \text{Hilfsregel} \\ &= Q_2\overline{Q_1} \vee Q_2\overline{Q_0} \vee \overline{Q_2}\,Q_1Q_0 \end{aligned}

Das klappt, verlangt aber schon Übersicht: Welche Terme passen zusammen, und in welcher Reihenfolge fasst man sie zusammen?

Q_3^+: Hier wird es mühsam

Q_3^+ ist 1 in den Zeilen 7 bis 14. Das sind wieder acht Minterme, aber diesmal hängen sie an allen vier Variablen: Sieben Terme haben Q_3 = 1 (alle außer 1111), einer hat Q_3 = 0. Um sie algebraisch zusammenzufassen, musst Du Terme mehrfach verwenden und mehrere Wege ausprobieren, bis kein Zusammenfassen mehr möglich ist. Dabei passieren leicht Fehler, und ob das Ergebnis wirklich minimal ist, siehst Du der Gleichung nicht an.

Was fehlt, ist ein Werkzeug, mit dem man auf einen Blick sieht, welche Terme sich nur in einer Variablen unterscheiden. Genau das leistet das KV-Diagramm.

Schritt 4: Die KV-Tafel

Die Idee

Das KV-Diagramm (Karnaugh-Veitch-Diagramm, auch KV-Tafel) ordnet die Zeilen einer Wertetabelle als Felder eines Rechtecks an. Edward W. Veitch stellte 1952 eine solche Tafel vor, Maurice Karnaugh verfeinerte sie 1953. Der Trick liegt in der Anordnung: Benachbarte Felder unterscheiden sich in genau einer Variablen. Zwei benachbarte Einsen lassen sich also immer mit der Regel „Zusammenfassen“ verschmelzen, und das sieht man sofort.

Damit das klappt, sind die Spalten- und Zeilenköpfe nicht in Dualreihenfolge (00, 01, 10, 11), sondern in Gray-Reihenfolge angeordnet: 00, 01, 11, 10. Beim Gray-Code ändert sich von einem Wert zum nächsten nur ein Bit (siehe Zahlensysteme und Codes), und zwar auch vom letzten zum ersten. Deshalb sind auch die Ränder benachbart: Die linke Spalte grenzt an die rechte, die obere Zeile an die untere.

Aufbau für zwei, drei und vier Variablen

Eine Funktion mit n Variablen hat 2^n Zeilen in der Wertetabelle und damit 2^n Felder im KV-Diagramm:

Drei leere KV-Tafeln: für zwei Variablen B und A mit 2 mal 2 Feldern (Feldnummern 0 bis 3), für drei Variablen C und BA mit 2 mal 4 Feldern (Feldnummern 0, 1, 3, 2 und 4, 5, 7, 6), für vier Variablen DC und BA mit 4 mal 4 Feldern; die Kopfzeilen stehen in Gray-Reihenfolge 00, 01, 11, 10 (mit KI erstellt)
  • Zwei Variablen: 2 × 2 Felder, eine Variable an den Zeilen, eine an den Spalten.

  • Drei Variablen: 2 × 4 Felder, die Spalten tragen zwei Variablen in Gray-Reihenfolge.

  • Vier Variablen: 4 × 4 Felder, Zeilen und Spalten tragen je zwei Variablen in Gray-Reihenfolge.

Die kleine Zahl in jedem Feld ist die Feldnummer: der Dezimalwert der Eingangskombination, also die Zeilennummer der Wertetabelle. Wegen der Gray-Reihenfolge stehen die Nummern nicht der Reihe nach, sondern als 0, 1, 3, 2 in der ersten Zeile und 4, 5, 7, 6 in der zweiten; die dritte Zeile (11) beginnt mit 12, die vierte (10) mit 8. Wer diese Nummern einträgt, kann die Einsen aus der Wertetabelle sicher übertragen.

Unterschiedliche Schreibweisen

In Fachbüchern und Aufgaben begegnen Dir KV-Tafeln in mehreren Formen. Lass Dich davon nicht verunsichern, das Verfahren bleibt dasselbe:

Zwei gleich aufgebaute KV-Tafeln für vier Variablen: links mit Bitmustern 00, 01, 11, 10 im Kopf und einer Diagonale mit DC und BA in der Ecke, rechts ohne Bitmuster mit farbigen Randbalken: A über den beiden mittleren Spalten, B über den beiden rechten Spalten, C neben den beiden mittleren Zeilen, D neben den beiden unteren Zeilen (mit KI erstellt)
  • Bitmuster im Kopf (Karnaugh-Schreibweise): Über den Spalten und vor den Zeilen stehen die Werte der Variablen, die Diagonale in der Ecke nennt die Variablen. Vorteil: Jedes Feld lässt sich direkt der Wertetabelle zuordnen.

  • Randbalken (Veitch-Schreibweise): Ein Balken am Rand markiert den Bereich, in dem eine Variable 1 ist; außerhalb des Balkens ist sie 0. Manchmal steht dort zusätzlich die negierte Variable. Vorteil: Ein Block, der genau unter einem Balken liegt, enthält die Variable unverändert; das liest man schnell ab.

  • Andere Reihenfolge der Variablen: Manche legen die höherwertigen Variablen an die Spalten statt an die Zeilen oder beginnen mit A statt mit D. Die Felder stehen dann an anderen Stellen. Das Ergebnis ist trotzdem dasselbe, solange Du beim Eintragen und beim Ablesen dieselbe Zuordnung verwendest. Deshalb lohnt es sich, die Feldnummern einzutragen.

In diesem Artikel stehen die höherwertigen Variablen an den Zeilen, die niederwertigen an den Spalten, Bitmuster im Kopf.

Vereinfachungsregeln

So liest Du aus einer ausgefüllten KV-Tafel die einfachste ODER-Verknüpfung von UND-Termen ab:

  1. Nur Einsen zusammenfassen (später kommen die Don’t-Care-Felder X hinzu, siehe Schritt 8).

  2. Ein Block ist ein Rechteck aus 1, 2, 4, 8 oder 16 Feldern, also einer Zweierpotenz. Drei oder sechs Felder sind kein Block, L-Formen und Diagonalen auch nicht.

  3. Blöcke so groß wie möglich wählen: Je größer der Block, desto kürzer der Term.

  4. So wenige Blöcke wie möglich, aber jede 1 muss in mindestens einem Block liegen. Blöcke dürfen sich überlappen (Idempotenz: eine 1 darf mehrfach verwendet werden).

  5. Die Ränder sind benachbart: links mit rechts, oben mit unten. Auch die vier Ecken bilden einen Block.

  6. Ablesen: Eine Variable, die im ganzen Block 1 ist, steht unverändert im Term; ist sie im ganzen Block 0, steht sie negiert; wechselt sie innerhalb des Blocks, entfällt sie. Ein Block aus 2^k Feldern liefert bei n Variablen einen Term mit n - k Variablen.

  7. Alle Terme mit ODER verknüpfen.

Wer die KNF minimieren will, fasst nach denselben Regeln die Nullen zusammen und liest ODER-Terme ab, diesmal umgekehrt: Eine Variable, die im Block 1 ist, steht negiert im ODER-Term, eine Variable mit 0 unverändert. Die ODER-Terme werden mit UND verknüpft.

Über den Rand hinaus: die Tafel kopieren

Blöcke über die Ränder sind am Anfang schwer zu erkennen. Eine Hilfe: Stell Dir die Tafel nach oben, unten, links und rechts kopiert vor, wie Fliesen an einer Wand. Ein Block, der über den Rand reicht, wird in diesem erweiterten Bild ein ganz normales Rechteck.

Das Beispiel zeigt die Funktion Y mit den Einsen in den Feldern 0, 2, 3, 4, 6, 8, 10 und 11. Die Originaltafel steht umrahmt in der Mitte, rundherum die grauen Kopien:

KV-Tafel für die Variablen DC und BA mit den Einsen in den Feldern 0, 2, 3, 4, 6, 8, 10 und 11, nach allen Seiten grau kopiert; drei Blöcke überschreiten den Rand der Originaltafel: blau D-quer A-quer über den linken Rand (Spalten 10 und 00, Zeilen 00 und 01), orange C-quer A-quer über die linke obere Ecke (die vier Ecken), grün C-quer B über den oberen Rand (Zeilen 10 und 00, Spalten 11 und 10) (mit KI erstellt)
  • Blau (\overline{D}\,\overline{A}): Die Spalten 00 und 10 sind über den linken Rand benachbart. Zusammen mit den Zeilen 00 und 01 entsteht ein Viererblock, in dem D = 0 und A = 0 ist.

  • Orange (\overline{C}\,\overline{A}): Die vier Ecken (Felder 0, 2, 8, 10) liegen in der erweiterten Tafel als 2 × 2-Quadrat zusammen. In allen vier Feldern ist C = 0 und A = 0.

  • Grün (\overline{C}\,B): Die Zeilen 00 und 10 sind über den oberen Rand benachbart, zusammen mit den Spalten 11 und 10 entsteht ein Viererblock mit C = 0 und B = 1.

Y = \overline{D}\,\overline{A} \vee \overline{C}\,\overline{A} \vee \overline{C}\,B

Aus acht Mintermen mit je vier Variablen sind drei Terme mit je zwei Variablen geworden. Mit etwas Übung brauchst Du die Kopien nicht mehr zu zeichnen. In der normalen Tafel kennzeichnet man Blöcke über den Rand als zum Rand hin offene Umrandungen, so wie in den folgenden Schritten.

Schritt 5: Die vier KV-Tafeln des Dualzählers

Jetzt übertragen wir die vier Spalten Q_3^+ bis Q_0^+ der Zustandsfolgetabelle in vier KV-Tafeln mit den Variablen Q_3Q_2 an den Zeilen und Q_1Q_0 an den Spalten. Die Feldnummer ist der Zählerstand vor der Flanke; im Feld steht das jeweilige Bit des Folgestands.

Vier KV-Tafeln für die Folgezustände Q0+ bis Q3+ des 4-Bit-Dualzählers mit farbigen Blöcken und den abgelesenen Gleichungen: Q0+ = Q0-quer (Achterblock aus den Spalten 00 und 10 über den Rand), Q1+ = Q1 Q0-quer oder Q1-quer Q0 (zwei senkrechte Viererblöcke), Q2+ = Q2 Q0-quer oder Q2 Q1-quer oder Q2-quer Q1 Q0, Q3+ = Q3 Q0-quer oder Q3 Q1-quer oder Q3 Q2-quer oder Q3-quer Q2 Q1 Q0 (mit KI erstellt)
  • Q_0^+: Alle Einsen liegen in den Spalten Q_1Q_0 = 00 und 10. Über den Rand bilden sie einen Achterblock, in dem nur Q_0 = 0 konstant ist: Q_0^+ = \overline{Q_0}.

  • Q_1^+: zwei senkrechte Viererblöcke in den Spalten 01 und 10: Q_1^+ = Q_1\overline{Q_0} \vee \overline{Q_1}\,Q_0, dasselbe Ergebnis wie in Schritt 3.

  • Q_2^+: Ein Viererblock über den linken und rechten Rand (Q_2\overline{Q_0}), ein Viererblock links (Q_2\overline{Q_1}) und ein Zweierblock über den oberen und unteren Rand (\overline{Q_2}\,Q_1Q_0). Auch hier stimmt das Ergebnis mit der Rechnung aus Schritt 3 überein, aber der Weg ist viel kürzer.

  • Q_3^+: Drei Viererblöcke im unteren Bereich (Q_3\overline{Q_0}, Q_3\overline{Q_1}, Q_3\overline{Q_2}), die sich überlappen, und eine einzelne 1 im Feld 7, die keinen Nachbarn hat (\overline{Q_3}\,Q_2Q_1Q_0).

Damit sind alle vier Folgezustände vereinfacht:

\begin{aligned} Q_0^+ &= \overline{Q_0} \\ Q_1^+ &= Q_1\overline{Q_0} \vee \overline{Q_1}\,Q_0 \\ Q_2^+ &= Q_2\overline{Q_0} \vee Q_2\overline{Q_1} \vee \overline{Q_2}\,Q_1Q_0 \\ Q_3^+ &= Q_3\overline{Q_0} \vee Q_3\overline{Q_1} \vee Q_3\overline{Q_2} \vee \overline{Q_3}\,Q_2Q_1Q_0 \end{aligned}

Schritt 6: Von der Gleichung zum Flipflop

Das JK-Master-Slave-Flipflop

Die Gleichungen beschreiben, welcher Zustand nach der Taktflanke an den Ausgängen stehen soll. Gebaut wird der Zähler aber nicht aus Gattern allein, sondern aus Flipflops, deren Eingänge J und K beschaltet werden müssen. Dazu ein kurzer Blick auf das verwendete Flipflop:

Ein JK-Master-Slave-Flipflop besteht aus zwei hintereinandergeschalteten Speichern. Solange der Takt C = 1 ist, übernimmt der Master die Information von J und K, der Slave und damit der Ausgang Q bleiben unverändert. Mit der fallenden Taktflanke wird der Master gesperrt und der Slave übernimmt dessen Zustand an den Ausgang. Weil sich der Ausgang erst ändert, wenn die Eingänge schon gesperrt sind, können alle Flipflops eines Zählers die alten Ausgangswerte lesen und gleichzeitig umschalten, ohne sich gegenseitig zu stören.

Im Schaltzeichen nach DIN EN 60617-12 erkennst Du das Master-Slave-Prinzip am Zeichen für den verzögerten Ausgang (ein kleiner Winkel innen am Ausgang Q); der Takteingang C1 hat kein Dreieck, weil er nicht flankengesteuert ist. Beim klassischen JK-Master-Slave-Flipflop dürfen sich J und K während C = 1 nicht ändern, weil der Master sonst einen Zwischenzustand einfängt. Heute verwendet man oft taktflankengesteuerte JK-Flipflops wie in Flipflops. Für den Entwurf ist das egal: Beide haben dieselbe Wertetabelle und damit dieselbe Gleichung.

Charakteristische Gleichungen

Jede Flipflop-Art lässt sich durch eine Gleichung beschreiben, die den Folgezustand Q^+ aus den Eingängen und dem aktuellen Zustand Q berechnet, die charakteristische Gleichung. Sie folgt direkt aus der Wertetabelle des Flipflops (z. B. per DNF und KV-Tafel mit drei Variablen):

Charakteristische Gleichungen der taktgesteuerten Flipflops
Flipflop Verhalten charakteristische Gleichung
RS setzen mit S, rücksetzen mit R, S = R = 1 unzulässig Q^+ = S \vee \overline{R}\,Q (Bedingung SR = 0)
D übernimmt D Q^+ = D
T kippt bei T = 1, hält bei T = 0 Q^+ = T\overline{Q} \vee \overline{T}\,Q = T \oplus Q
JK setzen mit J, rücksetzen mit K, kippen bei J = K = 1 Q^+ = J\overline{Q} \vee \overline{K}\,Q

Die JK-Gleichung liest sich so: Ist das Flipflop zurzeit 0 (\overline{Q}), entscheidet J, ob es auf 1 geht. Ist es zurzeit 1 (Q), bleibt es 1, solange K = 0 ist.

Koeffizientenvergleich

Jetzt kommt die entscheidende Idee: Wir bringen jede Folgezustandsgleichung aus Schritt 5 in dieselbe Form wie die charakteristische Gleichung des JK-Flipflops,

Q_i^+ = (\ldots)\cdot\overline{Q_i} \vee (\ldots)\cdot Q_i,

und vergleichen dann die Klammern, so wie man in der Mathematik die Koeffizienten zweier Polynome vergleicht. Was vor \overline{Q_i} steht, ist J_i; was vor Q_i steht, ist \overline{K_i}.

Flipflop 0:

Q_0^+ = \overline{Q_0} = 1 \cdot \overline{Q_0} \vee 0 \cdot Q_0 \quad\Rightarrow\quad J_0 = 1, \quad \overline{K_0} = 0 \;\Rightarrow\; K_0 = 1

Flipflop 1:

Q_1^+ = Q_0 \cdot \overline{Q_1} \vee \overline{Q_0} \cdot Q_1 \quad\Rightarrow\quad J_1 = Q_0, \quad \overline{K_1} = \overline{Q_0} \;\Rightarrow\; K_1 = Q_0

Flipflop 2: Die beiden Terme mit Q_2 werden ausgeklammert, danach hilft De Morgan:

Q_2^+ = Q_1Q_0 \cdot \overline{Q_2} \vee (\overline{Q_1} \vee \overline{Q_0}) \cdot Q_2 \quad\Rightarrow\quad J_2 = Q_1Q_0, \quad \overline{K_2} = \overline{Q_1} \vee \overline{Q_0} = \overline{Q_1Q_0} \;\Rightarrow\; K_2 = Q_1Q_0

Flipflop 3: genauso, mit drei Variablen:

Q_3^+ = Q_2Q_1Q_0 \cdot \overline{Q_3} \vee (\overline{Q_2} \vee \overline{Q_1} \vee \overline{Q_0}) \cdot Q_3 \quad\Rightarrow\quad J_3 = K_3 = Q_2Q_1Q_0

Ergebnis: Jedes Flipflop bekommt J = K, es arbeitet also als T-Flipflop. Es kippt genau dann, wenn alle niederwertigeren Stellen 1 sind, so wie beim schriftlichen Addieren der Übertrag weitergereicht wird.

Zwei Hinweise für andere Zähler:

  • Kommt in einem Term der Folgezustandsgleichung weder Q_i noch \overline{Q_i} vor, gehört er in beide Klammern. Du ergänzt ihn mit (\overline{Q_i} \vee Q_i) = 1 und multiplizierst aus. Ein Beispiel dafür folgt beim BCD-Zähler.

  • Mit D-Flipflops entfällt der Koeffizientenvergleich, weil D_i = Q_i^+ gilt. Dafür ist die Logik vor den Eingängen meist aufwendiger, beim Dualzähler etwa D_1 = Q_1 \oplus Q_0. Mit T-Flipflops gilt T_i = Q_i \oplus Q_i^+, beim Dualzähler T_i = UND aller niederwertigeren Stellen.

Schritt 7: Der verdrahtete Synchronzähler

Aus den Ansteuergleichungen ergibt sich die Schaltung:

J_0 = K_0 = 1 \qquad J_1 = K_1 = Q_0 \qquad J_2 = K_2 = Q_0Q_1 \qquad J_3 = K_3 = Q_0Q_1Q_2

Schaltplan des 4-Bit-Synchronzählers aus vier JK-Master-Slave-Flipflops -K1 bis -K4 mit gemeinsamem Takt C: J und K von -K1 liegen auf 1, J und K von -K2 an Q0, J und K von -K3 am Ausgang des UND-Glieds -K5 aus Q0 und Q1, J und K von -K4 am Ausgang des UND-Glieds -K6 mit drei Eingängen aus Q0, Q1 und Q2; Ausgänge Q0 bis Q3 oben (mit KI erstellt)
  • Alle vier Takteingänge hängen am gemeinsamen Takt C, das macht den Zähler synchron.

  • An jedem Flipflop sind J und K miteinander verbunden.

  • -K5 bildet Q_0Q_1 für die dritte Stufe, -K6 bildet Q_0Q_1Q_2 für die vierte. Weil jedes UND-Glied seine Eingänge direkt von den Flipflops holt, spricht man von parallelem Übertrag. Man könnte -K6 auch aus dem Ausgang von -K5 und Q_2 bilden (serieller Übertrag): Das spart Eingänge, verlängert aber den Signalweg um eine Gatterlaufzeit.

Im Impulsdiagramm siehst Du den Unterschied zu Schritt 1: Alle vier Ausgänge schalten nach derselben Laufzeit, die Anzeige springt direkt von 7 auf 8.

Impulsdiagramm des Synchronzählers beim Übergang von 7 nach 8: Nach der fallenden Taktflanke bei t = 0 wechseln Q0, Q1 und Q2 auf 0 und Q3 auf 1 gleichzeitig nach 10 ns; die 7-Segment-Anzeige zeigt 7 und danach direkt 8 (mit KI erstellt)

Wie schnell darf der Takt sein?

Auch der Synchronzähler braucht Zeit, aber sie wächst nicht mehr mit der Stufenzahl. Nach einer Taktflanke müssen drei Dinge passieren, bevor die nächste Flanke kommen darf:

  1. Die Flipflop-Ausgänge stellen sich ein: Laufzeit t_\mathrm{pd,FF}.

  2. Die UND-Glieder bilden daraus die neuen Werte für J und K: Gatterlaufzeit t_\mathrm{pd,G} (beim seriellen Übertrag mehrere).

  3. J und K müssen vor der nächsten Flanke eine Mindestzeit stabil anliegen: Vorbereitungszeit t_\mathrm{su} (setup time).

T_\mathrm{min} = t_\mathrm{pd,FF} + t_\mathrm{pd,G} + t_\mathrm{su} \qquad f_\mathrm{max} = \frac{1}{T_\mathrm{min}}

Beispiel mit angenommenen Werten t_\mathrm{pd,FF} = 15\ \mathrm{ns}, t_\mathrm{pd,G} = 10\ \mathrm{ns} und t_\mathrm{su} = 20\ \mathrm{ns}: T_\mathrm{min} = 45\ \mathrm{ns}, also f_\mathrm{max} = 1 / 45\ \mathrm{ns} \approx 22\ \mathrm{MHz}. Dazu kommt die Grenze aus dem Datenblatt des Flipflops selbst (f_\mathrm{max} bzw. Mindestdauer von High- und Low-Phase des Takts); es gilt der kleinere Wert. In der Praxis rechnest Du mit den Höchstwerten (max.) aus dem Datenblatt, nicht mit den typischen Werten.

Schritt 8: Der BCD-Zähler und die Don’t-Care-Felder

Pseudotetraden als Joker

Für eine Dezimalanzeige soll der Zähler nur von 0 bis 9 zählen und dann wieder bei 0 beginnen: ein BCD-Zähler (Dekadenzähler). Die Zustandsfolgetabelle hat zehn gültige Zeilen. Die Kombinationen 10 bis 15 heißen Pseudotetraden; sie kommen im Zählzyklus nicht vor.

Zustandsfolgetabelle des BCD-Zählers; X = Don’t Care
Stand Q_3 Q_2 Q_1 Q_0 Q_3^+ Q_2^+ Q_1^+ Q_0^+ Folgestand
0 0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 0 1 0 2
2 0 0 1 0 0 0 1 1 3
3 0 0 1 1 0 1 0 0 4
4 0 1 0 0 0 1 0 1 5
5 0 1 0 1 0 1 1 0 6
6 0 1 1 0 0 1 1 1 7
7 0 1 1 1 1 0 0 0 8
8 1 0 0 0 1 0 0 1 9
9 1 0 0 1 0 0 0 0 0
10 bis 15 X X X X beliebig

Was nach einer Pseudotetrade passieren soll, ist zunächst egal. Deshalb stehen dort keine festen Werte, sondern ein X (Don’t Care, „ist egal“). In der KV-Tafel ist ein X ein Joker: Du darfst ihn wie eine 1 in einen Block aufnehmen, wenn der Block dadurch größer wird, und ihn sonst wie eine 0 liegen lassen. Ein Block nur aus X-Feldern ist sinnlos, weil er keine 1 abdeckt.

Vier KV-Tafeln für die Folgezustände Q0+ bis Q3+ des BCD-Zählers; die Felder 10 bis 15 enthalten X und werden in Blöcke einbezogen, wo sie diese vergrößern: Q0+ = Q0-quer, Q1+ = Q1 Q0-quer oder Q3-quer Q1-quer Q0, Q2+ = Q2 Q0-quer oder Q2 Q1-quer oder Q2-quer Q1 Q0, Q3+ = Q3 Q0-quer oder Q2 Q1 Q0 (mit KI erstellt)

Die X-Felder machen die Gleichungen deutlich kürzer als beim Dualzähler, vor allem bei Q_3^+:

\begin{aligned} Q_0^+ &= \overline{Q_0} \\ Q_1^+ &= Q_1\overline{Q_0} \vee \overline{Q_3}\,\overline{Q_1}\,Q_0 \\ Q_2^+ &= Q_2\overline{Q_0} \vee Q_2\overline{Q_1} \vee \overline{Q_2}\,Q_1Q_0 \\ Q_3^+ &= Q_3\overline{Q_0} \vee Q_2Q_1Q_0 \end{aligned}

Koeffizientenvergleich mit Don’t Care

Für Q_0, Q_1 und Q_2 funktioniert der Vergleich wie in Schritt 6:

  • Q_0^+ = 1 \cdot \overline{Q_0} \vee 0 \cdot Q_0 \Rightarrow J_0 = K_0 = 1

  • Q_1^+ = \overline{Q_3}\,Q_0 \cdot \overline{Q_1} \vee \overline{Q_0} \cdot Q_1 \Rightarrow J_1 = \overline{Q_3}\,Q_0, K_1 = Q_0

  • Q_2^+ wie beim Dualzähler: J_2 = K_2 = Q_1Q_0

Bei Q_3^+ fehlt im Term Q_2Q_1Q_0 die Variable Q_3. Er gehört deshalb in beide Klammern:

Q_3^+ = Q_3\overline{Q_0} \vee Q_2Q_1Q_0(\overline{Q_3} \vee Q_3) = Q_2Q_1Q_0 \cdot \overline{Q_3} \vee (\overline{Q_0} \vee Q_2Q_1Q_0) \cdot Q_3

Damit ist J_3 = Q_2Q_1Q_0 und \overline{K_3} = \overline{Q_0} \vee Q_2Q_1Q_0. Für K_3 zählen aber nur Zustände mit Q_3 = 1, und davon sind nur 8 und 9 gültig. In beiden ist Q_2 = Q_1 = 0, der Term Q_2Q_1Q_0 ist dort also immer 0. Es bleibt \overline{K_3} = \overline{Q_0}, also K_3 = Q_0.

Abkürzung direkt in der KV-Tafel: Für J_i brauchst Du nur die Hälfte der Tafel, in der Q_i = 0 ist; die andere Hälfte gilt für J_i als X. Für K_i fasst Du in der Hälfte mit Q_i = 1 die Nullen zusammen (dort soll das Flipflop zurückgesetzt werden), die andere Hälfte gilt als X. Bei K_3 liegen in der unteren Hälfte (Zeilen 11 und 10) nur eine 0 (Feld 9) und viele X; der Viererblock aus den Spalten Q_1Q_0 = 01 und 11 in dieser Hälfte (Felder 9, 11, 13, 15) ergibt direkt K_3 = Q_0.

Zusammengefasst:

J_0 = K_0 = 1 \qquad J_1 = \overline{Q_3}\,Q_0,\; K_1 = Q_0 \qquad J_2 = K_2 = Q_1Q_0 \qquad J_3 = Q_2Q_1Q_0,\; K_3 = Q_0

Schaltplan des BCD-Synchronzählers aus vier JK-Master-Slave-Flipflops -K1 bis -K4 am gemeinsamen Takt C: J und K von -K1 auf 1; J von -K2 vom UND-Glied -K5 aus Q3-quer und Q0, K von -K2 direkt an Q0; J und K von -K3 am UND-Glied -K6 aus Q0 und Q1; J von -K4 vom UND-Glied -K7 mit drei Eingängen aus Q0, Q1 und Q2, K von -K4 an Q0; Q3-quer wird vom Ausgang von -K4 über eine Leitung oben zurück zu -K5 geführt (mit KI erstellt)

Integrierte synchrone Dekadenzähler wie der 74HC160 zählen genau diese Folge; sie bringen zusätzlich Laden, Rücksetzen und einen Übertragsausgang für die nächste Dezimalstelle mit.

Fangzustände prüfen

Die X-Felder haben wir beim Vereinfachen frei belegt. Was passiert, wenn der Zähler nach dem Einschalten oder durch eine Störung doch einmal in einer Pseudotetrade landet? Das musst Du mit den fertigen Ansteuergleichungen nachrechnen. Für den Zustand 10 (1010) etwa gilt J_0 = K_0 = 1 (kippt auf 1), J_1 = \overline{Q_3}\,Q_0 = 0 und K_1 = Q_0 = 0 (hält 1), J_2 = K_2 = 0 (hält 0), J_3 = 0 und K_3 = 0 (hält 1): Folgezustand 1011 = 11.

Folgezustände der Pseudotetraden beim entworfenen BCD-Zähler
Pseudotetrade Folgezustand danach
10 (1010) 11 (1011) 4, weiter im Zählzyklus
11 (1011) 4 (0100) Zählzyklus
12 (1100) 13 (1101) 4, weiter im Zählzyklus
13 (1101) 4 (0100) Zählzyklus
14 (1110) 15 (1111) 0, weiter im Zählzyklus
15 (1111) 0 (0000) Zählzyklus

Aus jeder Pseudotetrade findet der Zähler nach höchstens zwei Takten in den Zählzyklus zurück. Ein Zähler mit dieser Eigenschaft heißt selbststartend. Bleibt ein Entwurf dagegen in einer Schleife aus Pseudotetraden hängen (Fangzustand, z. B. 12 → 13 → 12 …), legst Du die betroffenen X-Felder gezielt auf 0 oder 1 fest und vereinfachst neu, oder Du sorgst mit einem Rücksetzimpuls beim Einschalten für einen definierten Startzustand.

Wie geht es weiter?

Das Entwurfsverfahren aus diesem Artikel funktioniert für jede Zustandsfolge: Rückwärtszähler, Zähler mit beliebigem Zählumfang, Zähler im Gray-Code oder Steuerungen mit wenigen Zuständen. Das Rezept bleibt immer gleich:

  1. Zustandsfolgetabelle aufstellen, nicht benutzte Zustände als X kennzeichnen.

  2. Je Flipflop eine KV-Tafel für den Folgezustand zeichnen und vereinfachen.

  3. Folgezustandsgleichung in die Form der charakteristischen Gleichung bringen, Koeffizienten vergleichen.

  4. Schaltung zeichnen, Fangzustände und höchste Taktfrequenz prüfen.

Üben kannst Du das mit den Übungsaufgaben zum Entwurf von Synchronzählern, unter anderem mit einem Gray-Code-Zähler, einem BCD-Zähler im Glixon-Code und Laufzeitberechnungen aus Datenblattauszügen.

Leitfragen

  1. Welche Falschwerte zeigt ein 4-Bit-Asynchronzähler beim Übergang von 7 auf 8, und warum?

Die Flipflops schalten nacheinander, jeweils um die Laufzeit verzögert: Erst fällt Q0 (Stand 6), dann Q1 (Stand 4), dann Q2 (Stand 0), zuletzt steigt Q3 (Stand 8). Für einige Nanosekunden stehen also 6, 4 und 0 an den Ausgängen. siehe Abschnitt „Schritt 1: Das Problem des Asynchronzählers“

  1. Was steht in einer Zustandsfolgetabelle?

Für jeden Zustand der Flipflops vor der Taktflanke steht dort der Zustand nach der Taktflanke. Jede Spalte des Folgezustands ist eine eigene Wertetabelle mit den Flipflop-Ausgängen als Eingängen. siehe Abschnitt „Schritt 2: Die Zustandsfolgetabelle“

  1. Wie stellst Du DNF und KNF auf, und wann ist welche Form kürzer?

Für die DNF bildest Du aus jeder Zeile mit Ausgang 1 einen Minterm (UND-Term mit allen Variablen, bei 0 negiert) und verknüpfst sie mit ODER. Für die KNF bildest Du aus jeder Zeile mit Ausgang 0 einen Maxterm (ODER-Term mit allen Variablen, bei 1 negiert) und verknüpfst sie mit UND. Die DNF ist kürzer, wenn es wenige Einsen gibt, die KNF bei wenigen Nullen. siehe Abschnitt „Schritt 3: Funktionsgleichungen über DNF und KNF“

  1. Warum stehen die Köpfe einer KV-Tafel in der Reihenfolge 00, 01, 11, 10?

In dieser Gray-Reihenfolge unterscheiden sich benachbarte Felder in genau einer Variablen, auch über die Ränder hinweg. Benachbarte Einsen lassen sich deshalb immer zu einem kürzeren Term zusammenfassen. siehe Abschnitt „Schritt 4: Die KV-Tafel“

  1. Welche Regeln gelten für Blöcke in einer KV-Tafel?

Blöcke sind Rechtecke aus 1, 2, 4, 8 oder 16 Feldern, enthalten nur Einsen (und X), sollen so groß und so wenige wie möglich sein, dürfen sich überlappen und über die Ränder reichen; die vier Ecken sind benachbart. Variablen, die im Block wechseln, entfallen. siehe Abschnitt „Vereinfachungsregeln“

  1. Wie lauten die charakteristischen Gleichungen von RS-, D-, T- und JK-Flipflop?

D-Flipflop: Q^+ = D. T-Flipflop: Q^+ = T\overline{Q} \vee \overline{T}\,Q = T \oplus Q. JK-Flipflop: Q^+ = J\overline{Q} \vee \overline{K}\,Q. RS-Flipflop: Q^+ = S \vee \overline{R}\,Q mit SR = 0. siehe Abschnitt „Charakteristische Gleichungen“

  1. Wie gewinnst Du aus einer Folgezustandsgleichung die Ansteuerung von J und K?

Du bringst die Gleichung in die Form Q_i^+ = (\ldots)\,\overline{Q_i} \vee (\ldots)\,Q_i, Terme ohne Q_i kommen in beide Klammern. Die Klammer vor \overline{Q_i} ist J_i, die Klammer vor Q_i ist \overline{K_i} (Koeffizientenvergleich mit Q^+ = J\overline{Q} \vee \overline{K}\,Q). siehe Abschnitt „Koeffizientenvergleich“

  1. Was sind Don’t-Care-Felder, und warum musst Du beim BCD-Zähler die Pseudotetraden prüfen?

Don’t-Care-Felder (X) gehören zu Zuständen, die im Zählzyklus nicht vorkommen; Du darfst sie in Blöcke einbeziehen, wenn diese dadurch größer werden. Weil dabei die Folgezustände der Pseudotetraden festgelegt werden, prüfst Du mit den fertigen Gleichungen, ob der Zähler aus jeder Pseudotetrade in den Zählzyklus zurückfindet und nicht in einem Fangzustand hängen bleibt. siehe Abschnitt „Fangzustände prüfen“


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Synchronzähler entwerfen: Wertetabelle, DNF und KNF, KV-Diagramm und JK-Flipflops” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/synchronzaehler veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/elektrotechnik/digitaltechnik. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 13.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: