Wie entwerfe ich eine getaktete synchrone Zustandsmaschine für eine Kombinationssperre?

7

Ich brauche Hilfe bei der Erfüllung einer Aufgabe, ich bin bei einigen Dingen festgefahren. Da bin ich sehr neu in diesem Thema auf endlichen Maschinen.

Ich habe versucht, das Zustandsdiagramm, die Zustandstabelle, die Übergangstabelle, die K-Kartenwerte und die K-Karten (Karnaugh - Karte) selbst zu erstellen. Vieles ist jedoch unvollständig, weil ich nicht weiß, wie ich weitermachen soll.

Alle Hinweise oder Hilfe wird geschätzt; Ich bitte nicht um Antworten, sondern nur um Anleitung. Ich habe es jetzt eine ganze Woche lang versucht, aber immer noch nicht abgeschlossen.

Sie können meine Aufgabe unten lesen. In meinen Zeichnungen sind Fragen gelb hervorgehoben, die zeigen, wo ich feststecke oder wo ich am meisten Probleme habe, eine Lösung zu finden.

Aufgabe: Entwerfen Sie eine getaktete synchrone Zustandsmaschine für eine Kombinationssperre mit zwei Eingängen (X und Y) und einem Ausgang (Z).

Die Eingabe 'X' wird verwendet, um den Sequenzeintrag zu initialisieren. Der Eingang 'Y' wird verwendet, um die zu entsperrende Binärsequenz einzugeben. Der Ausgang 'Z' wird genau dann eingeschaltet, wenn die Binärsequenz nach der Initialisierung in der richtigen Reihenfolge eingegeben wird und eingeschaltet bleiben muss, solange der X-Eingang hoch bleibt.

Diese Kombinationssperre funktioniert wie folgt. Der Eingang 'X' muss in der vorherigen Taktperiode von niedrig nach hoch gewechselt haben und sollte danach hoch bleiben (Initialisierung). Die Eingabe der ersten Binärziffer muss erfolgen, bevor der nächste Taktzyklus beginnt, und die Eingabe der verbleibenden Ziffern erfolgt bei den nachfolgenden Takten.

Wenn eine falsche Sequenz eingegeben wird, muss sie neu initialisiert werden, um die richtige Sequenz einzugeben. Geben Sie hier die Bildbeschreibung ein

Meine Tabellen und Zeichnungen für diese Aufgabe:

Zustandsdiagramm

Zustandstabelle und Übergangstabelle

K-Map-Werte

K-Karten

AKTUALISIEREN!

Zustandsdiagramm Zustandstabelle

Zustandstabelle Zustandsdiagramm

Omuse
quelle
2
Bevor Sie zu weit gehen, beachten Sie, dass das Zeitdiagramm den Code zeigt, der zuerst LSB am Y-Eingang eingegeben wird. Ihr Zustandsdiagramm verarbeitet es MSB-first.
Dave Tweed
5
+1 für eine tolle Frage. Dies ist ein hervorragendes Beispiel dafür, wie Hausaufgaben gestellt werden sollten.
Vladimir Cravero
1
Der "lustige" Teil beim Schreiben der Entscheidungstabelle ist, dass Sie eine spärliche Übergangstabelle haben; Die meisten möglichen Kanten in der Grafik sind egal! Ich habe diese Synthese gerne für all meine jüngsten Arbeiten an Zustandsmaschinen auf automatisierte Compiler geworfen. . .
user2943160
@ user2943160: Ja, aber das geht am eigentlichen Punkt der Frage vorbei, nämlich ein detailliertes Verständnis dafür zu entwickeln, was das Synthesetool tatsächlich für Sie tut.
Dave Tweed
Ich denke, dass der Initialisierungsstatus unerwünscht und falsch ist. Sobald Sie 'x' als hoch abgetastet haben, werden die nächsten Zustände sofort die richtige (oder nicht) 'y'-Sequenz abtasten. Aufgrund des Initialisierungsstatus fehlt Ihnen der erste 'y'-Wert.
Claudio Avi Chami

Antworten:

1

Geben Sie hier die Bildbeschreibung ein Hier ist eine Teilversion der Tabelle, die Sie erstellen müssen. Insgesamt gibt es 64 Zeilen. Sie bestimmen das Q3 * (Q3 +) und die anderen, indem Sie überlegen, was der nächste Zustand ist, wenn ich mich im aktuellen Zustand befinde und X, Y betrachte.

Nehmen Sie zum Beispiel Zeile 2: Aktueller Zustand 0000 (RESET) und X = 1, Y = 0, dies bedeutet, dass der nächste Zustand 0001 (UNLOCK) ist. Auch Z ist 0, wenn ich im Zustand 0000 bin.

Sie erhalten dann die Ausgangslogik für Q0 *, indem Sie alle Einsen in Ihrer Spalte Q0 * nehmen. Zum Beispiel habe ich jetzt (\ bedeutet "nicht")

Q0 * = \ Q3 \ Q2 \ Q1 \ Q0X \ Y + \ Q3 \ Q2 \ Q1 \ Q0XY + \ Q3 \ Q2 \ Q1Q0 \ X \ Y + etc ...

Sie können diesen Ausdruck dann höchstwahrscheinlich vereinfachen. Sie werden Karnaugh-Tabellen nicht wirklich erstellen können, da es 4 Zustandsbits und 2 Einträge = 6 Dimensionen gibt. Ich schlage vor, Sie verwenden die kanonische Methode für die Logik, wie ich gerade erklärt habe.

Weitere Informationen finden Sie hier: https://en.wikipedia.org/wiki/Canonical_normal_form

Yanik Richard
quelle