2.8 Dezimalzähler

Selber bauen mit Endlichem Automat in Digital

CTRDIV10 als Endlicher Automat

Noch ein paar Ausgänge dran für Z als 4er Bündel, Signal bei CT=0 und CT=9 und einem asynchronen Reset.

CTRDIV10 Schaltung

Als benutzerdefiniertes Bauteil einsetzen

Der Counter in Schaltung

Baue damit zweistelligen Zähler von 00..99?

Zweistelliger Zähler von 00..99

Der übliche Denkfehler

Habe ich auch schon in Abi-Lösungsvorschlag gefunden, bei 9 den Takt zur nächsten Stelle mit Und-Gatter durchschalten, erschütterndes Ergebnis: Nach 08 -> 19 -> 20. Im Digitalsimulator ist Timingdiagramm mit Einzelgatterschritten aktiv. Schüler sollten das Timingdiagramm auch auf Papier zu Wege bringen können 😁.

Denkfehler: CT=9 mit Takt verknüpfen

In der klassischen Ausbildung kannte man noch Master-Slave-FlipFlops mit Zweiflanken-Steuerung, die bei der positiven Takt-Flanke die Werte übernehmen, aber erst bei der negativen Flanke ausgegeben, dort treten die Probleme der heutigen Einflanken FF nicht auf, hier eine Modifikation zur Demonstration, in “alter” Technik kein Denkfehler:

Rettungsversuch mit Taktverzögerung

CT=0 und Takt 3 Gatterzeiten verzögern

Zählerstufen asynchron koppeln

Leider startet dadurch der Zähler beim Einschalten mit 10, kann mit PowerOn-Reset behoben werden..

Asynchrone Kopplung Zehner nach Einer mit CT=0

Die Stellen schalten nicht exakt synchron zum Takt um, je weiter links desto später (wir sind in einem Zeitbereich von wenigen Gatterzeiten also < 1µs), wann ist das ungünstig?

Verwenden der Zähler aus Digital erleichtert synchrone Lösung

Zähler aus Digital verwenden

In Digital Zähler mit 4Bit Ausgang nehmen. Der clr-Eingang (Clear) ist synchron zum Takt, wenn aktiv wird bei der nächsten steigenden Taktflanke auf 0 geschaltet, daher mit dem Und ein CT=9 Signal erzeugen und von 9 nach 0 springen.
Der en-Eingang (Enable) steuert die Berücksichtigung von positiven Taktflanken an C. Nur wenn en=1 ist, werden Flankenwechsel von 0->1 berücksichtigt. Das Umschalten der Zählstufen ist synchron zum Takt.