Ich muss einen Zähler mit zwei Eingängen entwerfen: x
und y
. Wenn y = 0
, verhält sich der Zähler wie ein 3-Bit-Ringzähler, und wenn y = 1
, verhält er sich wie ein 3-Bit-Johnson-Zähler. Wenn x = 0
, wird aufwärts gezählt, und wenn x = 1
, wird abwärts gezählt. Ich darf nur D-Flip-Flops und alle von mir benötigten Logikgatter verwenden.
Als Referenz sind hier die Zustandstabellen eines 3-Bit-Rings und eines Johnson-Zählers (in dieser Reihenfolge):
Also habe ich natürlich diese große Zustandstabelle erstellt:
Da es zwei Eingänge und drei Zustände gibt, hängt jeder folgende Zustand von fünf Bits ab. Daher sind die K-Maps für Q1+
, Q2+
und Q3+
(die eigentlich D1
, D2
und D3
für die Flip-Flops sind) Maps von fünf Variablen, was dies etwas kompliziert macht.
Die Frage ist: Gibt es eine Möglichkeit, die Minimierung mit k-maps einfacher durchzuführen (vielleicht fehlt mir etwas)? Oder, wenn es keine Möglichkeit gibt, die Minimierung zu vereinfachen, ist es dann klüger, k-Maps von fünf Variablen oder vielleicht eine andere Methode (vielleicht Quine-Mccluskey oder etwas ganz anderes) zu verwenden?
Eine Konstruktionsvereinfachung besteht darin, zuerst die Up/Down-Johnson- und Ringzähler unabhängig voneinander zu entwerfen. Platzieren Sie dann einfach einen Mux, der Q*
je nach y
.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Sie haben ausdrücklich angegeben, dass Sie beliebige Logikgatter verwenden können, die Sie benötigen. In diesem Fall müssen (und sollten) Sie überhaupt keine Minimierung vornehmen.
Hier sind zwei Optionen:
Verwenden Sie die Zustandstabelle, um eine nicht minimale Produktsummenform abzulesen. (Jede Zeile ist ein Produkt der fünf Eingabevariablen, und Sie summieren alle Produkte, die dazu führen, dass die Ausgabevariable wahr ist.)
Ich verstehe, dass Sie die Lösung von @apalopohapa nicht verwenden können, da sie 6 Flip-Flops anstelle von 3 hat, aber Sie können das kombinatorische Äquivalent ausführen: Führen Sie die nächsten Zustandsfunktionen nur für den Ringzähler aus, führen Sie die nächsten Zustandsfunktionen nur für den Johnson-Zähler aus , verwenden Sie dann Muxes, die von gesteuert werden, y
um die endgültigen nächsten Zustandswerte auszugeben. (Sowohl Ringzähler als auch Johnson-Zähler sind gerade deshalb beliebt, weil die nächste Zustandslogik übrigens sehr klein ist.)
Es gibt auch Logikminimierungsprogramme (Google "espresso logic minimizer"), aber in diesem Fall brauchen Sie wirklich keine.
JimmyB
Benutzer24994
JimmyB
Superkatze