Entwerfen Sie einen 4-Bit-Synchronzähler mit D-Flip-Flops und 16 x 4 ROM, der jede beliebige Zählsequenz erzeugen kann

Welche Einschränkungen gibt es bei der Zählreihenfolge? Geben Sie die ROM-Inhalte für die folgenden Sequenzen an: a) 12, 13, 14, 15, 5, 6, 7, 0, 1, 2, 3, 4, 11, 10, 9, 8, 12, 13 usw. b) 8, 9, 0, 1, 8, 9, etc...

Dies ist die Frage einer Beispielprüfung. Ich habe kein Problem damit, einen n-Bit-Synchronzähler mit einer beliebigen Art von Flip-Flop zu entwerfen. Meine Zweifel betreffen den ROM-Teil, in dem Buch habe ich kein Beispiel dafür, wie man ein ROM in einen Zähler implementiert, können Sie mir den Schritt dazu sagen? und ich verstehe nicht die frage nach den einschränkungen der sequenzen, beziehen sie sich auf das muster (ich sehe es nicht) oder was bedeuten sie? Meine letzte Frage wäre, muss ich zwei 4-Bit-Zähler entwerfen?, einen für jede Sequenz?

Vielen Dank

Antworten (2)

Ein Zähler ist nur eine Zustandsmaschine, die bei jeder Taktflanke von einem Zustand zum nächsten fortschreitet. Normalerweise verwendet man Logik, um aus dem aktuellen Zustand den nächsten Zustand zu bestimmen, um beispielsweise Binärzähler, BCD-Zähler oder Gray-Code-Zähler zu erstellen.

Aber es gibt keinen Grund, warum die Next-State-Logik nicht durch ein ROM ersetzt werden könnte. Das ROM würde von den Zustands-Flip-Flops adressiert werden, und die Ausgabe des ROM wäre der nächste Zustand der Flip-Flops. Auf diese Weise können Sie eine Folge von Zuständen beliebiger Länge bis zu 2 N erstellen , wobei N die Anzahl der Flip-Flops ist. Die Zustände können in beliebiger Reihenfolge auftreten, solange jeder Zustand einen eindeutigen nächsten Zustand hat.

Wenn ich gut verstehe, was Sie meinen, hat das ROM den nächsten Zustand der Sequenz im Speicher (es ist nicht erforderlich, die logische Gleichung für jeden Eingang des Flipflops zu berechnen). Die Ausgänge des ROM sind also die Eingänge des Fli-Flops, richtig? und die Adressen des ROMs sind jeweils die Zustände des Flip-Flops (was passiert mit den Adressen, die nicht verwendet werden?)
Wenn es Adressen gibt, die nicht verwendet werden, würden Sie ihnen Werte geben, die den Zähler in der gewünschten Reihenfolge in einen der Zustände versetzen. Dadurch kann sich der Zähler von einem Start in einem ungültigen Zustand erholen.

Haben Sie die D-Typen in einer normalen Aufwärtszählerkonfiguration, um das ROM zu adressieren. Das ROM hätte dann jede Ausgangssequenz der Reihe nach im Speicher. Als Zähleradresse neuer Speicherplatz wird dessen Inhalt adressiert und erscheint auf dem Datenbus - Ihre Ausgabe. Einfach.

Aber das spricht nicht die zweite Sequenz an ...
@DaveTweed Da beide Sequenzen praktischerweise eine Zweierpotenz lang sind, können Sie die Sequenz einfach im ROM wiederholen.