InhaltVorheriges Kapitel Nächstes Kapitel

7 Zähler und Teiler

7.3 Entwurf asynchroner Zähler

Soll die Realisierung eines Zählers in asynchroner Form durchgeführt werden, ist zwischen die beim synchronen Entwurf definierten Schritte 1. und 2. eine weitere Phase einzufügen, die die Taktung der beteiligten Flipflops regelt.

1. Schritt:
Bestimmung der Anzahl der benötigten Flipflops und der Zustandskodierung.

Diese Entwicklungsphase wird wie bei den synchronen Zählern durchgeführt.

2. Schritt: Taktversorgung
Für jeden notwendigen Zählschritt muß bestimmt werden, welche Flipflops ihren Wert ändern. Nur für diese Flipflops wird ein Taktsignal erzeugt.
Außer dem externen Zähltakt können an dieser Stelle auch geeignete Änderungen der Flipflop-Ausgänge Verwendung finden.
Flipflops, deren Ausgänge stabil bleiben, werden nicht getaktet; ihre logischen Eingänge bleiben somit undefiniert, sie können als "don't care"-Positionen behandelt werden. Dies führt u.a. zu wesentlichen Vereinfachungen im Verknüpfungsnetz.
Es muß also für diesen Vorgang nicht wie bei den synchronen Zählern die Funktion "Speichern" gewählt werden; bei asynchronen Zählern wird das gleiche Ziel durch "nicht takten" erreicht.

3. Schritt: Entwurf des Verknüpfungsnetzes.

Das Verknüpfungsnetz muß jetzt außer den logischen Eingängen auch die Takteingänge versorgen.
Gegenüber den synchronen Netzen wird die Situation dadurch unübersichtlich, daß unmittelbar nach einem FF-Wechsel alte und neue Eingangssignale das Netzwerk speisen. Die neuen Werte laufen wie eine Welle durch das Verknüpfungsnetz, bis der nächste Zählerstand schließlich nach mehreren Zwischenständen stabil am Ausgang Y anliegt.


Hinweis:


Entwurfsbeispiel:

Als Beispiel für den Entwurf einer asynchronen Zählerschaltung soll die Entwicklung eines "Modulo-16-Zählers" verfolgt werden.


Takt
Q
Q+
D
C
B
A
D
C
B
A
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
2
0
0
1
0
0
0
1
1
3
0
0
1
1
0
1
0
0
4
0
1
0
0
0
1
0
1
5
0
1
0
1
0
1
1
0
6
0
1
1
0
0
1
1
1
7
0
1
1
1
1
0
0
0
8
1
0
0
0
1
0
0
1
9
1
0
0
1
1
0
1
0
10
1
0
1
0
1
0
1
1
11
1
0
1
1
1
1
0
0
12
1
1
0
0
1
1
0
1
13
1
1
0
1
1
1
1
0
14
1
1
1
0
1
1
1
1
15
1
1
1
1
0
0
0
0

Tab. 7.1: Übergangstabelle des asynchronen Mod-16-Zählers.



In die Übergangstabelle des Modulus-16-Zählers ist die Sequenz der bereits kodierten Zustände eingetragen. Die Zählfolge ist zyklisch, da dem Zustand '1111' der (Anfangs­)Zustand '0000' folgt.

Für jeden Bitwechsel einer Variablen wird jetzt die folgende Betrachtung durchgeführt:
Existiert ein Flipflop-Ausgang, dessen Signalwechsel auf Grund seines Schaltverhaltens unmittelbar für die Taktung einer Zustandsvariablen herangezogen werden kann?

Diese Fälle existieren offenbar; einige Beispielübergänge wurden in obiger Tabelle schraffiert dargestellt.

Für die asynchrone Taktung des Modulus-16-Zählers ergeben sich damit die folgenden Möglichkeiten:

FFA: dieses FF wechselt mit jedem Takt, es muß also mit dem externen Taktsignal gesteuert werden;
FFB: Flipflop B wechselt beim Übergang QA: 1 0, die Taktung erfolgt also mit QA;
FFC: Flipflop C wechselt beim Übergang QB: 1 0, die Taktung erfolgt also mit QB;
FFD: Flipflop D wechselt beim Übergang QC: 1 0, die Taktung erfolgt also mit QC.



Takteingang
Taktsignal
CA
ext. Takt
CB
QA
CC
QB
CD
QC

Tab. 7.2:Taktung des Modulus-16-Zählers.



Mit jedem Takt der Flipflops ist in diesem Beispiel also nur die Funktion "Wechseln" (toggle) gefordert, was typisch ist für binärkodierte Zustände.
Der Zähler kann damit leicht aus einer Kaskade von T-Flipflops aufgebaut werden. Die Funktion "toggle" kann allerdings auch durch Rückkopplung des invertierten Ausgangs bei D-Flipflops erreicht werden:

Abb. 7.11:D-Flipflop beschaltet als T-Flipflop.



Abb. 7.12: Aus D-Flipflops aufgebauter Modulo-16-Zähler.


7.3.1 Entwurf eines asynchronen BCD-Zählers

Der BCD-Zähler stellt einen Binärzähler dar, der nach Erreichen des Zählerstandes '9' zum Anfangszustand '0' zurückkehrt, er kann also auch als "Modulo-10"-Zähler bezeichnet werden:

Takt
Q
Q+
D
C
B
A
D
C
B
A
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
2
0
0
1
0
0
0
1
1
3
0
0
1
1
0
1
0
0
4
0
1
0
0
0
1
0
1
5
0
1
0
1
0
1
1
0
6
0
1
1
0
0
1
1
1
7
0
1
1
1
1
0
0
0
8
1
0
0
0
1
0
0
1
9
1
0
0
1
0
0
0
0

Tab. 7.3: Übergangstabelle des asynchronen BCD-Zählers.

Die vom Binärzähler her bekannten Zustände '9' bis '15', die beim BCD-Zähler nicht realisiert werden, tragen die Bezeichnung "Pseudotetraden" ("Pseudodezimalen", vgl. auch "Pseudotriaden" beim "Modulo-6"-Zähler).

Zur schaltungstechnischen Realisierung dieses Zählers bieten sich insbesondere zwei Lösungswege an, die beide verglichen werden sollen:



7.3.2 BCD-Zähler als modifizierter Mod-16-Zähler

Wie die Übergangstabelle zeigt, ähnelt der BCD-Zähler dem bereits behandelten "Modulo-16"-Zähler. Dessen Taktung kann also zunächst übernommen werden; sie muß allerdings bei Erreichen der durch den BCD-Code vorgegebenen Abbruchgrenze modifiziert werden.
Zur Taktung sollen außer dem Zähltakt die "1  0"-Übergänge der beteiligten Flipflops zur Verfügung stehen (fallende Taktflanke ist aktiv).

Takt
Q
Q+
D
C
B
A
D
C
B
A
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
·

·

·
·

·

·
·

·

·
8
1
0
0
0
1
0
0
1
9
1
0
0
1
0
0
0
0
Mod-10-Zähler
9
1
0
0
1
1
0
1
0
Mod-16-Zähler
FFD
FFB

Tab. 7.4: Übergangstabelle des asynchronen BCD-Zählers.


Welche Modifikationen am Mod-16-Zähler vorzunehmen sind, läßt sich aus der Übergangstabelle 7.4 ersehen.
Der Vergleich zwischen Mod-10- und Mod-16-Zähler an der Abbruchgrenze (Takt 9) zeigt, daß die Taktung von FFA und FFC unverändert bleiben kann. Für FFB und FFD ist folgende Änderung einzubauen:

Flipflop B:

Der normalerweise stattfindende Übergang 0  1 muß vermieden werden. Dies kann dadurch erreicht werden, daß nicht getaktet wird (der D-Eingang könnte auch auf '0' gesetzt werden, aber dies wäre untypisch für asynchrone Zähler).
Soll außerdem die Taktung mit CB = QA erhalten bleiben, dann darf sie jetzt offenbar nur stattfinden solange QD = 0.
Es ergibt sich damit als Lösung für CB:

.(7.6)

Flipflop D:

Zusätzlich zur Taktung mit QC muß jetzt noch in dem Fall getaktet werden, daß QA = QD = 1 ist. Damit folgt:

.(7.7)


7.3.3 Methodischer Gesamtentwurf des BCD-Zählers

Um einen Gesamtentwurf des asynchronen BCD-Zählers durchzuführen, wird zunächst wie beim synchronen Fall vorgegangen.

Im ersten Schritt wird das Übergangsdiagramm aufgestellt. Da vier Flipflops notwendig sind, wird ein KV-Diagramm mit vier Argumenten gewählt. Die gewünschte Zählsequenz ist damit dokumentiert:

Abb. 7.13: Übergangsdiagramm des BCD-Zählers.


In diesem Diagramm wurden die Pseudotetraden des Zählers durch 'X' markiert. Diese "don't-care"-Felder sind die ersten Positionen für eine spätere Optimierung.

Anschließend werden die Anwendungsdiagramme erstellt.

Der Übergangstabelle entsprechend, müssen in diesem Diagramm zunächst diejenigen Felder markiert werden, bei denen eine Taktung erfolgen muß (d.h. die Felder, die einem sich ändernden Signal Q+ entsprechen). Über diese "notwendige" (minimale) Taktung kann ebenfalls mit Hilfe der Übergangstabelle entschieden werden.


Tab. 7.5:Notwendige Taktung des asynchronen BCD-Zählers.
Flipflop
Takt #
A
alle
B
1,3,5,7
C
3,7
D
7,9

Offenbar ist eine Taktung nach folgendem (asynchronen) Schema nicht möglich:


Abb. 7.14: Asynchroner Zähleraufbau (ripple-counter).

Diese Schaltung ermöglicht nicht die geforderte Taktung von Flipflop D (vgl. mit dem Übergangsdiagramm).

Während bei den Flipflops A, B und C die hier gezeigte Taktung beibehalten werden kann, muß, wie aus der Tabelle ersichtlich, Flipflop D mit QA getaktet werden (es könnte auch eine Taktung mit dem Eingangstaktsignal erfolgen, dies würde aber zu einem erhöhten Schaltungsaufwand führen, s.u.):

Abb. 7.15: Asynchroner Zähler mit modifizierter Taktung.


Wird diese Grundschaltung gewählt, ist allerdings zu beachten, daß eine erweiterte Taktung vorliegt. Flipflop B wird zusätzlich mit dem Zustandswechsel 9 getaktet, entsprechendes gilt für Flipflop D, das zusätzlich bei den Taktpositionen 1, 3 und 5 von Flipflop A getaktet wird.

Es ergibt sich damit folgende zu berücksichtigende Taktung:


Tab. 7.6: Ausgewählte Taktung des asynchronen BCD-Zählers (in Klammern: zusätzliche Taktungen).
Flipflop
Takt #
A
alle
B
1,3,5,7,(9)
C
3,7
D
(1),(3),(5),7,9


Im Anwendungsdiagramm (Abb. 7.16) werden die Felder, die diesen Taktpositionen entsprechen, durch -Zeichen markiert. Nicht bezeichnete Felder können in einer nachfolgenden Optimierung als "don't-care"-Felder angesehen werden.

Abb. 7.16: Anwendungsdiagramme des BCD-Zählers:
X: "don't-care"-Felder,: getaktete Felder.

Bis zu diesem Punkt war der Gesamtentwurf des asynchronen BCD-Zählers Flipflop-unabhängig. Im nächsten Schritt ist wiederum die Eintragung der entsprechenden Flipflop-Ansteuerungen vorzunehmen. Im Beispiel wird dies für eine Realisierung mit D-Flipflops vollzogen (Abb. 7.17).

Abb. 7.17: Anwendungsdiagramme des BCD-Zählers (für D-FF-Realisierung).

Mit Hilfe geeigneter Verbund-Bildungen ergeben sich die folgenden Funktionsgleichungen für die Flipflop-Ansteuerungen:

(7.8)


Für die gesuchte Schaltung gilt also die folgende Realisierung:

Abb. 7.18: Asynchroner BCD-Zähler.


7.3.4 Phasen der methodischen Entwicklung asynchroner Zähler

Die Entwicklungsphasen, die zu einem asynchronen Zähler führen, können zusammenfassend wie folgt beschrieben werden:


7.3.5 Mehrstufige Zähler

Mehrstufige Zähler können sehr leicht durch Kaskadierung einzelner Zählerstufen aufgebaut werden. Ein entsprechendes Prinzip wurde bereits bei der allgemeinen Beschreibung und Klassifizierung der Zähler eingeführt.

Am Beispiel des asynchronen BCD-Zählers kann diese für die praktische Anwendung wichtige Methode erläutert werden.

Die einzelne Zählerstufe wird zunächst (nicht DIN-konform) durch ein einfaches Ersatzschaltbild beschrieben:

Abb. 7.19: Schaltsymbol (nicht nach DIN) eines BCD-Zählers.


Der durch dieses Symbol dargestellte Zähler entspricht einer Zähldekade (Tetrade), d.h. der Zählbereich beträgt 0 - 9. Sollen größere Zählbereiche erschlossen werden, müssen entsprechend viele Zähler (Dekaden) kaskadiert werden:

Der höchstwertige Ausgang QD wird also jeweils mit dem Takteingang des folgenden Zählers verbunden.


Beispiel:

Ein dreistelliger BCD-Zähler (drei Dekaden) besitzt einen Zählbereich von '000' bis '999'.



InhaltVorheriges Kapitel Nächstes Kapitel