Inhalt | Vorheriges Kapitel | Nächstes Kapitel |
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.
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![]() |
FFC: |
Flipflop C wechselt beim Übergang QB:
1 ![]() |
FFD: |
Flipflop D wechselt beim Übergang QC:
1 ![]() |
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:
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).
|
|
| |||||||
![]() | ![]() | ||||||||
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. |
|
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). |
|
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:
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'.
Inhalt | Vorheriges Kapitel | Nächstes Kapitel |