Hallo zusammen,
bei der Herleitung von Synchronzählern (mit JK-Flipflops) komme ich
gerade nicht weiter. Die Herleitung von n-Bitzählern bereitet mir keine
Probleme, also 3-Bit (0-7), 4-Bit (0-15), etc. Ich habe KV-Diagramme und
charakteristische Gleichungen verwendet. Daraus dann die Schaltung
abgeleitet.
Mir geht es um den Fall, wenn ich z. B: einen 3Bit-Zähler verwende und
nur von 0 bis 6 zähle. Also die volle Bandbreite eines 3-Bitzählers (8
Zustände) nicht ausschöpfe. Was mache ich mit den "freien Plätzen"?
Bau ich mir dann hinten einfach einen Codierer dran, der filtert (7 in 0
umschreibt) oder gibt es eine elegantere Methode? Besser wäre es ja wenn
der Zähler nach 6 rückgesetzt wird und bei 0 beginnt.
Grüße
Hä ?
Weiß nicht ob ich genau verstehe was Du willst.
Für die 7 Zustände brauchst Du alle drei Bit.
Die FF sind also alle da, was willst Du weglassen ?
Welchen freien Platz ?
Nach 110 soll der nicht auf 111 weiter zählen ?!
Wenn 110 noch ein gültiger zustand ist und 111 zum Rücksetzen führen
soll hast Du zwei Möglichkeiten.
a.
3 fach UND Verknüpfung führt zum Reset
Nachteil: 111 liegt ein paar Gatterlaufzeiten an bis reset kommt
b:
Logig: 110 am Ausgang + steigende Flanke am CLK = Reset.
http://www.digitaltechnik-grundlagen.de/zahler-und-frequenzteiler/3-bit-synchronzaehler-d-flipflop/
Hallo,
mit "freiem Platz" hab ich die achte Zeile mit 111 gemeint.
Ich mache also wie gewohnt die Wahrheitstabelle und trage dann für die
Zustände die ich nicht benötige, die X im KV-Diagramm ein und
vernachlässige sie dann in der Gleichung, richtig?
Simon E. schrieb:> Bau ich mir dann hinten einfach einen Codierer dran, der filtert (7 in 0> umschreibt) oder gibt es eine elegantere Methode? Besser wäre es ja wenn> der Zähler nach 6 rückgesetzt wird und bei 0 beginnt.
Ein Synchronzähler läst sich als Statemaschine darstellen. In der kann
man Eintragen das nach dem Code 110 der Code 000 folgt. So tritt der
verbotene Code 111 erst gar nicht auf. Genauso gut kann man da beliebige
Zählfolgen generieren.
Simon E. schrieb:> Ich mache also wie gewohnt die Wahrheitstabelle und trage dann für die> Zustände die ich nicht benötige, die X im KV-Diagramm ein und> vernachlässige sie dann in der Gleichung, richtig?
Genau, die letzte Zeile der Wahrheitstabelle enthält einfach lauter X:
1
Q₂ Q₁ Q₀ | J₂ K₂ J₁ K₁ J₀ K₀
2
——————————————————————————————
3
0 0 0 | 0 X 0 X 1 X
4
0 0 1 | 0 X 1 X X 1
5
0 1 0 | 0 X X 0 1 X
6
0 1 1 | 1 X X 1 X 1
7
1 0 0 | X 0 0 X 1 X
8
1 0 1 | X 0 1 X X 1
9
1 1 0 | X 1 X 1 0 X
10
1 1 1 | X X X X X X
11
——————————————————————————————
Die Logikterme sind so einfach, dass man sie auch ohne KV-Diagramme
erraten kann:
1
_ _
2
J₀ = Q₁ + Q₂
3
K₀ = 1 (oder auch K₀ = Q₀)
4
J₁ = Q₀ _
5
K₁ = Q₀ + Q₂ (oder auch K₁ = Q₁+Q₂)
6
J₂ = Q₀Q₁
7
K₂ = Q₁
Das Schöne an den JK-Flipflops ist, dass mindestens die Hälfte der
Einträge in der Wahrheitstabelle X sind. Mit D-Flipflops wären die Terme
komplizierter, und man bräuchte deutlich mehr als die 3 Gatter.
Statt mit 2 OR und 1 AND kann man das Feedback-Netzwerk auch mit 4 NAND,
also einem einzigen 74x00 realisieren.
Michael Knoelke schrieb:> Wenn 110 noch ein gültiger zustand ist und 111 zum Rücksetzen führen> soll hast Du zwei Möglichkeiten.>> a.> 3 fach UND Verknüpfung führt zum Reset> Nachteil: 111 liegt ein paar Gatterlaufzeiten an bis reset kommt
Aber nicht wenn man einen synchronen Zähler bauen will.
> b:> Logig: 110 am Ausgang + steigende Flanke am CLK = Reset.
Und auch das ist nur fast richtig. Die Logik führt keinen Reset aus,
sondern führt einfach zum nächsten Zustand (wie er durch das
Zustandsdiagramm definiert ist). 000 ist dabei ein ganz normaler Zustand
wie alle anderen auch. Bei einem synchronen Zähler sitzen dafür vor den
J- bzw. K-Eingängen der Flipflops entsprechende Gatter.
Für Details schaue man in das Datenblatt nach der Innenschaltung eines
synchronen nicht-binären Zähler-IC. Z.B. 74xx192.
XL
Simon E. schrieb:> Besser wäre es ja wenn der Zähler nach 6 rückgesetzt wird und> bei 0 beginnt.
Genau, du dekodierst die 7 und löst damit einen Reset aus.
Erst mal vielen Dank für alle Antworten :-)
Mit so viel Resonanz hätt ich gar nicht gerechnet.
@Yalu:
Eine Frage zu Deiner Wahrheitstabelle:
Q₂ Q₁ Q₀ | J₂ K₂ J₁ K₁ J₀ K₀
——————————————————————————————
0 0 0 | 0 X 0 X 1 X
0 0 1 | 0 X 1 X X 1
0 1 0 | 0 X X 0 1 X
0 1 1 | 1 X X 1 X 1
1 0 0 | X 0 0 X 1 X
1 0 1 | X 0 1 X X 1
1 1 0 | X 1 X 1 0 X
1 1 1 | X X X X X X
——————————————————————————————
Wie kommst Du direkt auf die Eingangbeschaltung für J und K?
Ich hab eine Tabelle mit Q2, Q1 und Q0 zum Zeitpunkt t_n gemacht und
daneben die zum Zeitpunkt t_n+1. Dort sind die Zeilen ja einfach um eins
nach oben versetzt.
Dann hab ich daraus für die drei Ausgänge die KV-Diagramme abgeleitet
und die Anwendungsgleichungen bestimmt.
Diese hab ich mit den charakteristischen Gleichungen eines JK-Flipflop
gleichgesetzt und daraus die Verknüpfungsgleichungen erstellt.
Ist das der gleiche Weg oder kann man das auch schneller machen?
Simon E. schrieb:> Wie kommst Du direkt auf die Eingangbeschaltung für J und K?>> Ich hab eine Tabelle mit Q2, Q1 und Q0 zum Zeitpunkt t_n gemacht und> daneben die zum Zeitpunkt t_n+1. Dort sind die Zeilen ja einfach um eins> nach oben versetzt.>> Dann hab ich daraus für die drei Ausgänge die KV-Diagramme abgeleitet> und die Anwendungsgleichungen bestimmt.>> Diese hab ich mit den charakteristischen Gleichungen eines JK-Flipflop> gleichgesetzt und daraus die Verknüpfungsgleichungen erstellt.
Das sieht nach der gleichen Methode aus, nur dass du noch einen
Zwischenschritt einfügst.
Ich habe mir einfach für jedes Q und jeden Zählschritt die Übergänge
angeschaut:
Ist bspw. ein bestimmtes Q vor Eintreffen der Taktflanke 0 und danach 1,
kann dieser Übergang wahlweise mit J=1 und K=0 (Setzen des Ausgangs auf
1) oder mit J=1 und K=1 (Toggeln des Ausgangs) realisiert werden. Also
kann man in die Wahrheitstabelle J=1 und K=X schreiben. Entsprechendes
gilt für alle anderen Übergänge.
Es gibt für jedes Q vier verschiedene Zustandsübergänge:
1
Qvorher Qnachher | J K
2
–––––––––––––––––––––––––––
3
0 0 | 0 X
4
0 1 | 1 X
5
1 0 | X 1
6
1 1 | X 0
7
–––––––––––––––––––––––––––
Das Qvorher und Qnachher sind einfach jeweils zwei senkrecht
übereinander liegende Werte im linken (Q-) Teil der Wahrheitstabelle, da
bei einem Zähler der Zustand bei jedem Takt von einer Zeile zur nächsten
springt. Das kann man mit dem Auge schnell erfassen, liest dann die
zugehörige J/K-Kombination aus der obigen kleinen Tabelle aus und trägt
sie in die Wahrheitstabelle ein. Das geht so fix, dass man eigentlich
keinen Zwischenschritt braucht.
Anders sieht es aus, wenn man keinen Zähler, sondern einen allgemeineren
endlichen Automat konstruieren will, der bei jedem Takt abhängig von
einem oder mehreren Eingangssignalen in verschiedene Folgezustände
springt. Dann ist es sicher sinnvoll, diese Übergänge noch einmal
explizit aufs Papier zu schreiben. Wenn ich mich richtig erinnere, haben
wir damals im Studium (ist schon eine Weile her und das meiste ist
vergessen) die Zustandsübergänge folgendermaßen mit jeweils einem
Zeichen notiert: