2.2 Zähler (a-)synchron, Zustandsdiagramm

Asynchrone Zähler (Ripple Counter)

Siehe Mezdata->Asynchrone Zähler

Asynchroner DIV4 Zähler
Asynchroner DIV4 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?

  1. Bsp: CLK = 100 Hz; Q = 25 Hz -> 4/1 -> 2 FlipFlops nötig
  2. CLK = 8000 Hz; Q = 500 Hz ->
  3. CLK = 32768 Hz (Uhrenquarz); Q = 1 Hz ->
  4. 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

Zustandsdiagramm
Zähler als Endlichen Automaten erzeugen

Zustandsfolgetabelle

In der Zustandsfolgetabelle steht, welcher Zustand als nächstes kommt. Nach 0 kodiert mit 00 kommt 1 kodiert mit 01 usw.

Zustandsfolgetabelle
Zustandsfolgetabelle des Zählers

Schaltung erstellen

Synchroner DIV4 Zähler
Synchroner DIV4 Zähler, Timing mit Gatterlaufzeiten

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?

Schaltplan
Schaltplan

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.

Blockschaltbild
Blockschaltbild

Aufgabe: Zähler DIV6 bauen

Entwickeln Sie mit Digital einen Zähler DIV6: Zustandsdiagramm, Zustandsfolgetabelle, Schaltung..

Zustandsdiagramm CTR DIV6
Zustandsdiagramm CTR DIV6

Zustandsdiagramm-Lösung:

Lösung Schaltplan
CTR DIV6
Schaltplan CTR DIV6

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.

CTR DIV6 mit async Reset
CTR DIV6 mit async Reset

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.
CTR DIV16 als Dezimalzähler
CTR DIV16 als Dezimalzähler

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.

Zweistelliger Dezimalzähler
Zweistelliger Dezimalzähler