2.2 Zähler (a-)synchron, Zustandsdiagramm
Asynchrone Zähler (Ripple Counter)
Siehe Mezdata->Asynchrone Zähler
Aufgabenstellungen: Erstelle Timing-Diagramm unter Beachtung der Gatterdurchlaufzeiten. Welche “Zwischenzustände” ergeben sich? Ändere die Verschaltung so, dass der Zähler vorwärts zählt. Baue einen CTR DIV8 Zähler.
Aufgabe: Zähler als Frequenzteiler
Zähler können als Frequenzteiler verwendet werden, am Zähler oben liegt an Q0 die halbe und an Q1 ein viertel der Frequenz von CLK an. Wie viele Zählerstufen sind bei folgenden Teilverhältnissen nötig?
- Bsp: CLK = 100 Hz; Q = 25 Hz -> 4/1 -> 2 FlipFlops nötig
- CLK = 8000 Hz; Q = 500 Hz ->
- CLK = 32768 Hz (Uhrenquarz); Q = 1 Hz ->
- CLK = 1 MHz; Q = 200 Hz ->
Synchrone Zähler
Bei den asynchronen Zählern schalten die Ausgänge nicht gleichzeitig um, der Taktimpuls läuft wie eine Welle durch die FlipFlops, dies führt zu teilweise unerwünschten Zwischenzuständen. Die FlipFlops sollten alle zur selben Zeit synchron zum Takt umschalten, der Takt muss an allen CLK-Eingängen anliegen, die D-Eingänge brauchen dann aber schon die richtigen Werte für den Folgezustand. Ein Schaltnetz gibt die Werte für den Folgezustand vor.
Synchronen DIV4 Zähler mit Digital bauen
Mit Digital ist es recht einfach sowas zu bauen, dazu gibt es endliche Automaten. Beginnen wir mit einem Zustandsdiagramm:
Zustandsdiagramm
Zustandsfolgetabelle
In der Zustandsfolgetabelle steht, welcher Zustand als nächstes kommt. Nach 0 kodiert mit 00 kommt 1 kodiert mit 01 usw.
Schaltung erstellen
Aus der Zustandsfolgetabelle lässt sich mit einem Klick eine Schaltung erstellen.
Hier noch ein Timing-Diagramm mit Gatterlaufzeiten um das gleichzeitige Umschalten der Ausgänge zu verdeutlichen.
Schaltwerk?
Ein endlicher Automat wird auch als Schaltwerk bezeichnet.
Ein Vorbereitungsschaltnetz ermittelt aus dem Jetzt-Zustand Z (bzw. Zn) den Folgezustand Z’ (bzw. Zn+1). Ein Register (mehrere FF schalten synchron) übernehmen den Folgezustand beim nächsten Takt.
Aufgabe: Zähler DIV6 bauen
Entwickeln Sie mit Digital einen Zähler DIV6: Zustandsdiagramm, Zustandsfolgetabelle, Schaltung..
Zustandsdiagramm-Lösung:
Lösung Schaltplan
Bonus: Um asynchronen Reset erweitern
Der Zähler dreht im Takt seine Runden, will man ihn aber sofort zurücksetzen also einen asynchronen Reset durchführen können, müssen die D-FlipFlops durch D-FlipFlops mit asynchronem Set und Clr Eingang ersetzt werden. Könnte z.B. bei einer Stoppuhr nützlich sein.
Zähler-Baustein aus Digital verwenden für Dezimalzähler (CTR DIV 10)
Statt selber einen Zähler zu bauen, kann ein in Digital vorhandener n-Bit-Zählerbaustein als Dezimalzähler (CTR DIV 10) beschaltet werden.
- Um auf 9 zählen zu können braucht es 4 Bit, den Zähler entsprechend einstellen.
- Der Eingang en (enable) ermöglicht, dass der Zähler zählt wenn er High ist, nur dann wird der Takt verarbeitet.
- Der Eingang clr (clear) ist ein synchroner Rücksetz-Eingang, d.h. wenn er High ist, wird beim nächsten Takt der Zähler auf 0 gesetzt.
- Mit dem Und-Gatter wird mit dem Zählerstand 9 (CT=9) der Zähler wieder auf 0 gesetzt.
Zweistelliger Dezimalzähler
Es ist nun leicht, einen mehrstelligen Dezimalsystem-Zähler zu bauen.
In dem Moment, wo die Einer-Stelle auf 0 gesetzt wird sollte die Zehner-Stelle um eins erhöht werden. CT=9 wird dazu mit dem en-Eingang der nächsten Stelle verbunden. Zunächst eine Lösung mit Denkfehler. Nach 89 kommt nicht 90..
Zweistelliger Zähler richtige Lösung
Die Ziffer darf erst zurückgesetzt werden, wenn von der vorherigen Ziffer ein Übertrag kommt und der Ziffernwert 9 ist.
Dreistelliger Dezimalzähler
Nach diesen Prinzip können Zähler beliebig viele Stellen gebaut werden.
Zeitzähler
Es ist nun leicht, einen Minuten und Sekundenzähler zu bauen: