Ich versuche, einen asynchronen Zähler mit JK-Flip-Flops mit einer beliebigen Sequenz zu entwerfen.
Die Reihenfolge ist: 0 ,1,10,11, 0 ,5,14,15.
Ich weiß, wie man diese Art von Problemen löst, aber in diesem Fall wiederholt die Sequenz eine Zahl, 0.
Ich möchte das so lösen: https://www.youtube.com/watch?v=Zce6NlHuvfs
Aber ich weiß nicht, wie ich das Problem der Wiederholung einer Zahl in der Folge lösen soll.
Irgendeine Idee?
Vielen Dank im Voraus.
Wenn Sie die Zuordnung der Zählstände 0-7 zu den Ausgängen aufschreiben
count oputput
C2 C1 C0 O3 O2 O1 O0
0 0 0 0 0 0 0 = 0
0 0 1 0 0 0 1 = 1
0 1 0 1 0 1 0 = 10
0 1 1 1 0 1 1 = 11
1 0 0 0 0 0 0 = 0
1 0 1 0 1 0 1 = 5
1 1 0 1 1 1 0 = 14
1 1 1 1 1 1 1 = 15
Sie sehen, dass
O0 = C0
O1 = O3 = C1
O2 = (C0 ODER C1) UND C2
Sie können das also einfach mit einem 3-Bit-Zähler, einem ODER- und einem UND-Gatter erreichen:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Hinweis: Zwischen Zählstand 5 und 6 besteht jedoch ein sogenannter Hazard , dh es können mehrere Flanken auftreten, bevor das Signal auf den neuen Zustand einschwingt. Das ist kein Problem, wenn Sie sich nicht um Ausgangskanten kümmern, sondern nur um Pegel.
Anstatt einen Zähler zu erstellen, der in einer seltsamen Reihenfolge zählt, lassen Sie den Zähler normal zählen und ordnen Sie das Ergebnis dann einer Nachschlagetabelle zu. Es scheint, dass Ihre Zahlen auf den Bereich 0-15 beschränkt sind, also 4 Bit. Das bedeutet, dass Sie nur einen 4-Bit-Speicher mit 4-Bit-Adressen für insgesamt 64 Bit benötigen.
Noch einfacher ist es, dies alles in Firmware in einem Mikrocontroller zu tun. Generieren Sie die Zählung durch Inkrementieren und verwenden Sie dann die niedrigen 4 Bits, um in eine Tabelle zu indizieren.
Peter Schmidt