Asynchronzähler
Ein Asynchronzähler (engl. Ripple Counter) ist ein Bauteil aus der Digitaltechnik, das eine Folge von natürlichen Zahlen erzeugt. Die Darstellung der Zahlen erfolgt im Dualsystem. Der darstellbare Zahlenbereich ist dabei von der Anzahl n der hintereinandergeschalteten T-Flipflops abhängig (man spricht daher auch von n-Bit-Asynchronzählern). Der darstellbare Wertebereich für einen n-Bit-Zähler umfasst [0; 2n-1].
Inhaltsverzeichnis
Aufbau
Ein T-Flipflop zeichnet sich dadurch aus, dass es genau dann seinen Ausgang Q gegenüber dem aktuellen Zustand ändert, wenn eine aktive Taktflanke an seinem Takteingang C anliegt (meist ist das die fallende Taktflanke, d. h. es ist negativ flankengetriggert). In allen anderen Fällen behält es den aktuellen Ausgangszustand Q bei.
Im Asynchronzähler ist der Eingang des ersten Flipflops mit einem Taktgeber verbunden, der in regelmäßigen Abständen zwischen High- und Low-Pegel wechselt. Nur dann, wenn dieses Taktsignal von High nach Low wechselt (negative Taktflanke), findet am Ausgang Q0 ein Pegelwechsel statt (also von Low nach High bzw. von High nach Low). Der Ausgang Q0 wechselt also nur halb so oft seinen Zustand wie das Signal an seinem Takt-Eingang.
Durch die Hintereinanderschaltung (Kaskadierung) von mehreren T-Flipflops wird dieser Effekt vervielfacht. Jedes Flipflop führt am Ausgang halb so viele Pegelwechsel durch wie sein Vorgänger. Q0 ändert seinen Zustand halb so oft wie das Signal am Takt-Eingang von FF0. Q0 liefert nun das Taktsignal für FF1, so dass Q1 seinen Zustand halb so oft ändert wie Q0 und damit nur zu jeder vierten negativen Taktflanke des Taktsignals am Takt-Eingang von FF0.
Die folgende Tabelle illustriert die verschiedenen Zustände eines 4-Bit-Vorwärtszählers. Es ist zu beachten, dass die Ausgänge Q3, Q2, Q1, Q0 zu einer Dualzahl zusammengefasst vorwärts zählen. Werden die invertierten Ausgänge <math>\bar Q3</math>, <math>\bar Q2</math>, <math>\bar Q1</math>, <math>\bar Q0</math> zusammengefasst, zählen diese rückwärts.
Die Zählrichtung hängt von der Verschaltung der Takteingänge ab: werden die Q-Ausgänge als Takt für die nachfolgenden negativ flankengetriggerten T-Flipflops verwendet, zählen die Q-Ausgänge vorwärts. Werden die <math>\bar Q</math>-Ausgänge als Takt für die nachfolgenden negativ flankengetriggerten T-Flipflops verwendet, zählen die Q-Ausgänge rückwärts. Verwendet man hingegen positiv flankengetriggerte T-Flipflops, so ist das Vorwärts- und Rückwärtszählen wiederum vertauscht.
Des Weiteren ist zu berücksichtigen, dass der Zählerwert gespiegelt betrachtet werden muss, da das am wenigsten signifikante Bit (LSB = Least Significant Bit) Q0 im Zähleraufbau links liegt, bei der natürlichen Zahlendarstellung (siehe Tabelle) aber auf der rechten Seite steht.
Anstelle von T-Flipflops können für einen asynchronen Zähler grundsätzlich auch JK-Flip-Flops verwendet werden, wenn diese durch ein High Signal an beiden Eingängen (J=1 und K=1) in den Toggelzustand versetzt werden. Mit dieser Anschlussbelegung verhalten Sie sich gleich wie T-Flipflops.
Zählablauf:
Q3 | Q2 | Q1 | Q0 | Binärwert | Dezimalwert |
0 | 0 | 0 | 0 | 0000 | 0 |
0 | 0 | 0 | 1 | 0001 | 1 |
0 | 0 | 1 | 0 | 0010 | 2 |
0 | 0 | 1 | 1 | 0011 | 3 |
0 | 1 | 0 | 0 | 0100 | 4 |
0 | 1 | 0 | 1 | 0101 | 5 |
0 | 1 | 1 | 0 | 0110 | 6 |
0 | 1 | 1 | 1 | 0111 | 7 |
1 | 0 | 0 | 0 | 1000 | 8 |
1 | 0 | 0 | 1 | 1001 | 9 |
1 | 0 | 1 | 0 | 1010 | 10 |
1 | 0 | 1 | 1 | 1011 | 11 |
1 | 1 | 0 | 0 | 1100 | 12 |
1 | 1 | 0 | 1 | 1101 | 13 |
1 | 1 | 1 | 0 | 1110 | 14 |
1 | 1 | 1 | 1 | 1111 | 15 |
0 | 0 | 0 | 0 | 0000 | 0 |
Eigenschaften
Im Unterschied zum Synchronzähler wird beim Asynchronzähler nicht jedes Flipflop mit demselben Taktsignal C versorgt. Der Eingangstakt, der am ersten Flipflop anliegt, wird vielmehr durchgereicht. Durch die Schaltzeiten der internen Bauelemente kommt es daher beim Asynchronzähler zu Verzögerungen, die sich Bauteil für Bauteil aufsummieren. Jedes Flip-Flop hat eine eigene Gatterlaufzeit in Form der Propagation-Delay-Zeit tP (beschrieben unter Flipflop). Bei einer Reihenschaltung von n Flipflops ergibt sich für das letzte Flipflop folgende Signalverzögerung:
- <math> t_\mathrm{n} = n \cdot t_\mathrm{P} \qquad t_\mathrm P = \text{Signallaufzeit eines Flipflops} \qquad n = \text{Anzahl der Flipflops} </math>
Bei einem n-Bit-Asynchronzähler mit einer großen Anzahl von Flipflops ergibt sich also eine deutliche Verschiebung zwischen dem Takt am ersten Flipflop und dem Ausgangssignal des letzten Flipflops. Dadurch ist es möglich mit einem Asynchronzähler ein sehr schnelles Signal zu zählen, der Zählvorgang muss aber dann nach einer definierten Zeit (z. B. 1 s) abgebrochen werden. Das Ergebnis liegt dann konstruktionsbedingt etwas später an. Frequenzzähler nutzen den Asynchronzähler auch als Frequenzteiler.
Ein weiterer Unterschied zwischen den beiden Zählertypen ist, dass der Asynchronzähler konstruktionsbedingt nur in der natürlichen Reihenfolge zählen kann, während ein Synchronzähler auch in der Lage ist, beliebige Zahlenfolgen zu erzeugen (etwa 1, 3, 7, 5, 1, …).
Nachteile
Da es durch die Laufzeit des Taktsignales durch die Kette von Flipflop in komplexen digitalen Schaltungen wie z. B. bei FPGAs, CPLDs und bei ASICs bei hohen Taktfrequenzen bei Umschaltvorgängen des asynchronen Zählers zu ungültigen Zuständen an den Ausgangsleitungen Q kommt, sollten Asynchronzähler im Regelfall bei der Schaltungsentwicklung nicht verwendet werden. Die Grenzfrequenz, bis zu welcher ein Asynchronzähler fehlerfrei arbeitet, kann mit folgender Formel berechnet werden:
- <math> f_\mathrm{G} = \frac{1}{(n+1) \cdot t_\mathrm P} \qquad t_\mathrm P = \text{Signallaufzeit eines Flipflops} \qquad n = \text{Anzahl der Flipflops} </math>
Synchronzähler bieten hier sichere Alternativen mit mehr Möglichkeiten. Asynchronzähler wurden und werden auch heute noch manchmal in diskreten digitalen Schaltungen niedriger Frequenz und bei Ansammlungen von 74xx-Chips verwendet.
Varianten
Wenn der Asynchronzähler in Zwischenintervallen zählen soll, die keine Zweierpotenz darstellen (etwa [0; 5]) benötigt man eine Rücksetzleitung, die bei einem bestimmten Zahlenwert (hier 5 = 101) alle Flipflops auf 000 zurücksetzt. Dies ist aber mit reinen T-Flipflops nicht möglich und erfordert zusätzlich eine Schaltlogik, die das Signal (hier 101) in das Reset-Signal umwandelt.
Zur Auswertung des Schaltzustands, der ein Rücksetzen auf den Anfangswert 0 zur Folge hat, müssen zusätzlich Logikgatter an die Ausgänge der Flipflops angeschlossen werden. Wenn der jeweilige Rücksetzzustand anliegt, geben diese Gatter das Signal zum Zurücksetzen. Weiterhin müssen in diesem Fall alle Flipflops zusätzlich einen asynchronen Reseteingang besitzen.
Literatur
- Tietze, Ulrich; Schenk, Christoph: Halbleiter-Schaltungstechnik. 12. Auflage. Springer, 2002, ISBN 3-540-42849-6.
- Beuth, Klaus: Digitaltechnik. 10. Auflage. Vogel, 1998, ISBN 3-8023-1755-6.
- Seifart, Manfred; Beikirch, Helmut: Digitale Schaltungen. 5. Auflage. Technik, 1998, ISBN 3-341-01198-6.