Schaltplan einer synchronen sequentiellen Schaltung mit steigenden Flanken getriggerten D-Flip-Flops

Wie zeichne ich einen Schaltplan für dieses System mit der Technik "ein Flip-Flop pro Zustand"?Zeitdiagramm

AKTUALISIEREN:

Das ist, was ich bisher habe, aber ich werde so verwirrt.

Geben Sie hier die Bildbeschreibung ein

Antworten (2)

Der erste Schritt zur Implementierung einer Zustandsmaschine besteht darin, das Zustandsdiagramm zu zeichnen, das sie implementieren wird. Ein Zustandsdiagramm zeigt jeden Zustand, in dem sich die Maschine befinden kann, zusammen mit allen Bedingungen, die dazu führen, dass sie von einem Zustand in einen anderen wechselt (oder nicht).

Ein Zeitdiagramm ist eigentlich eine unvollständige Spezifikation für eine Zustandsmaschine, da es nicht alle möglichen Kombinationen aus aktuellem Zustand und Eingängen abdeckt. Das bedeutet, dass Sie eine mögliche Antwort finden können, aber es kann auch andere geben. In diesem Fall sollten Sie die einfachste Antwort auswählen, die die Anforderungen erfüllt.

Die Ausgänge sind einfach; Wir können sehen, dass OUT1 dem Zustand B und OUT2 dem Zustand D entspricht.

Im gegebenen Zeitdiagramm sehen wir die folgenden Übergänge:

  • A → A wenn IN1 = 0 und IN2 = X
  • A → B, wenn IN1 = 1 und IN2 = 0
  • B → C wenn IN1 = 0 und IN2 = 0
  • C → A wenn IN1 = 0 und IN2 = 0
  • B → D wenn IN1 = 1 und IN2 = 0
  • D → D wenn IN1 = 0 und IN2 = 0
  • D → A wenn IN1 = 0 und IN2 = 1

Die folgenden Kombinationen sind nicht spezifiziert:

  • Zustand A, wenn IN1 = 1 und IN2 = 1
  • Zustand B, wenn IN1 = 0 und IN2 = 1
  • Zustand B, wenn IN1 = 1 und IN2 = 1
  • Zustand C, wenn IN1 = 1 und IN2 = 0
  • Zustand C, wenn IN1 = 0 und IN2 = 1
  • Zustand C, wenn IN1 = 1 und IN2 = 1
  • Zustand D, wenn IN1 = 1 und IN2 = 0
  • Zustand D, wenn IN1 = 1 und IN2 = 1

Eine Interpretation besteht darin, anzunehmen, dass die nicht spezifizierten Kombinationen keine Zustandsübergänge verursachen.

Andere Interpretationen sind möglich – zum Beispiel

  • Wir könnten davon ausgehen, dass IN2 ein „Reset“-Eingang ist, da der nächste Zustand in allen Fällen, wenn er aktiviert ist, A ist.
  • Wir könnten auch annehmen, dass Zustand C immer in Zustand A übergeht, weil wir nie sehen, dass er etwas anderes tut.
  • Das lässt nur den Fall für Zustand D übrig, wenn IN1 = 1 und IN2 = 0 – ich würde ihn eher in Zustand D belassen. Ich habe den Eindruck, dass Zustand D (und OUT2) Impulse auf IN1 „halten“ soll, die zwei sind oder mehr Uhren breit.

Zusammen decken diese Annahmen alle nicht spezifizierten Übergänge ab.

Erst nachdem Sie ein vollständiges Zustandsdiagramm haben, können Sie mit dem Entwerfen der Logik für eine Implementierung beginnen. Das Schöne an "One-Hot"-Designs (ein FF pro Zustand) ist, dass die Logik ziemlich genau dem Zustandsdiagramm eins zu eins folgt.

Tut mir leid, keine vollständigen Lösungen für Hausaufgaben, nur Quidance!

Nehmen Sie 4 ff:s vom D-Typ. Nennen wir sie a, b, c und d entsprechend den Zuständen. Alle bekommen die gleiche Uhr. Jeder hat ein anderes Gate, das den D-Eingang für das ff erzeugt. Das Gatter am D-Eingang von ff X sollte genau dann 1 ausgeben, wenn die Variablen eine solche Kombination haben, dass der nächste Zustand X sein sollte.

Einer der Zustände sollte der Reset-Zustand sein. Das Master-Reset-Signal setzt dieses ff und setzt andere zurück.

NACHTRAG: Dies ist ein schwierigerer Fall als ich dachte (nicht die Schaltung, es ist einfach). Aber lassen Sie uns einige Klarstellungen hinzufügen.

Das Pulsdiagramm hat für die Maschine die Zustände a, b, c und d benannt. Es ist besonders einfach, weil die ursprüngliche Forderung war, dass die Zustände direkt von den Ausgängen der Flip-Flops angezeigt werden (= ein ff pro Zustand). Deshalb habe ich die Flip-Flops als Staaten bezeichnet. Im Zustand a ist nur der Ausgang von ff a 1, im Zustand b ist nur der Ausgang von ff b 1 usw.

Das D-Typ-Flip-Flop kopiert den logischen Wert von seinem D-Eingang zu seinem Ausgang Q jedes Mal, wenn der Taktimpuls von 0 auf 1 springt. Um den Q-Ausgang von ff a im richtigen Moment auf 1 zu bringen, muss 1 zugeführt werden seinen D-Eingang gerade dann, wenn erwartet wird, dass die Maschine aus einem anderen Zustand oder aus dem Zustand a in den Zustand a springt .

Das Impulsdiagramm gibt mehrere verschiedene Fälle an, wenn der nächste Zustand ein ist . Somit ist eine ziemlich komplexe Gatterschaltung erforderlich, um eine geeignete Eingabe für den D-Eingang von ff a zu erzeugen.

Die Bedingungen, die zu Zustand b führen, sind einfacher. Die Maschine springt genau dann in den Zustand b (= setzt den Ausgang von ff b auf 1), wenn der aktuelle Zustand a und der Eingang IN1 1 ist. Verbinden Sie also mit dem D-Eingang von ff b den Ausgang eines UND-Gatters. Die Eingänge dieses AND sind der Q-Ausgang von ff a und das Signal IN1. Zu D von ff b ist wirklich nichts mehr nötig. Eigentlich ist das Impulsdiagramm verkürzt. Es lässt mich davon ausgehen, dass IN2 den Übergang von a nach b nicht beeinflusst .

Das Impulsdiagramm zeigt 4 verschiedene Fälle, in denen D von ff a =1 sein sollte. sie sind:

  • Zustand ist a und IN1=IN2=0
  • Zustand ist c (ich gehe davon aus, dass a automatisch auf c folgt , da nach c keine Alternativen angezeigt werden )
  • Zustand ist d und IN2=1
  • Zustand ist a , IN1=0 und IN2=1

Sie benötigen eine Gatterschaltung (= Verknüpfungsschaltung), die gerade in diesen Fällen 1 bis D von ff a erzeugt. Ich sehe, es braucht ein Multi-Input-OR und ein paar UNDs und Inverter.

Jetzt: Versuchen Sie fortzufahren

Hoffentlich können Sie sehen, wie OUT1 und OUT2 erzeugt werden.

"Jeder hat ein anderes Gate, das den D-Eingang für das ff erzeugt." - könnte bitte erklären, was Sie hier meinen