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.
Syncronzaehler der 0,1,2,3,4,5,6,0,1,2,3,4,5,6 zaehlt ohne ueber Reset zu gehen.
Hatte auch gerade Lust, etwas zu malen: Hier ist die Variante mit JK-Flipflops :)
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:
1 | 0 -> 0: 0 |
2 | 0 -> 1: α |
3 | 1 -> 0: β |
4 | 1 -> 1: 1 |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.