Systematisches Vorgehen beim Entwerfen von digitalen Schaltungen mit D-FlipFlops
-
Hallo Leute,
ich bringe mir gerade selbst bei wie man einfache digitale Schaltungen baut.
Wenn diese Schaltungen keiner Speicherbausteine wie D-FlipFlops enthaelt gehe
ich wie folgt vor:(1) Wahrheitswerttabelle
(2) Minimieren der Terme mittels Karnaugh Diagramm
(3) Bauen der SchaltungBis jetzt hatte ich immer Erfog mit dieser Methode, die Schaltungen haben
immer funktioniert.
Jetzt moechte ich auch Schaltungen bauen die D-FlipFlops enthalten. Aber da
ist mir das Vorgehen nicht so ganz klar. Wie kann man da die Wahrheitswerttabelle
aufstellen? Oder macht man da was anderes?Besten Dank
-
Du kannst für Schaltwerke ebenfalls Tabellen aufstellen. Im Gegensatz zu Schaltnetzen kommt dort aber ein zeitabhängiger Output vor. Die Ausgabe zum Zeitpunkt t kann durch die Rückkopplung und Zwischenspeicherung im FlipFlop nämlich ein Eingabesignal zum Zeitpunkt t+1 sein.
Eigentlich eignen sich endliche Automaten sehr gut zum modellieren kleiner Schaltwerke. Aus einem Automaten kann man mit etwas Übung sofort die Übergangsgleichungen ablesen und daraus wiederum die Schaltung malen. Man spart sich also die Übergangstabelle, welche sehr groß werden kann.
Das Thema ist enorm umfangreich. Ich würde Dir zu Skripten oder Büchern der Digitaltechnik raten, weil die ganzen Feinheiten hier nicht dargestellt werden können.
-
Ich schliesse mich meinem Vorredner mal an. Modellier das auf Basis von endlichen Automaten. Die Flipflops kannst Du als Speicher ansehen, die einen Zustand angeben. Bei 5 Flipflops hast Du also 2^5 Zustaende. Dann machst Du eine Tabelle in der Du abhaengig von Zustand und den Eingangsgroessen die Ausgabe und den neuen Zustand angibst. Du kannst das dann am Schluss praktisch voellig getrennt von einander realisieren. Zum einen hast Du einen Speicher (Zustand), zum anderen hast Du ein Schaltnetz, das seinen Input vom Speicher und von den sonstigen Eingangsvariablen kriegt und seinen Output wieder an den Speicher und an irgendeine Ausgabe weiterleitet.
-
Hallo Leute,
vielen Dank fuer die Informationen! Ich werde mich
mal mit diesen Automaten befassen.Besten Dank
-
Hallo Leute,
ich habe jetzt vor mir eine ganz einfache Schaltung zu bauen mit nur einem Eingang und einem Ausgang.
Der Eingang stellt ein Bit da und die Eingabesequenz wird alle drei Taktzyklen
geteilt und der Ausgang soll eine 1 im letzten Taktzyklus ausgeben falls innerhalb der drei Taktzyklen mindestens eine 1 vorhanden war.Also z.B.:
Clock__: 1 2 3 | 4 5 6
Eingang: 0 0 0 | 1 0 1
Ausgang: 0 0 0 | 0 0 1Den Automaten habe ich mir aufgemalt, insgesamt habe ich jetzt acht Zustaende(2^3).
Aber das ist irgendwie ziemlich unuebersichtlich. Und mit Hilfe des Automaten stelle ich jetzt die Tabelle auf?
-
Also erst mal vorweg: Ein gutes Buch über Digitaltechnik wuerde dir sicher sehr helfen. Da werden genau diese Dinge ausfuehrlich erklaert.
Erstmal gibt es verschiedene Automatentypen (Moore, Mealy, Medvedjev), die sich darin unterscheiden von was der Ausgang abhaengt.
Ich nehme an, dass bei dir der Ausgang nur vom Zustand abhaengt.
Jetzt hast du 2 Funktionen: Eine die dir sagt wie du vom einen in den naechsten Zustand kommst (nennen wir sie f) und eine die dir die Ausgaenge in Abhaengigkeit der internen Zustaende der Schaltung beschreibt.Input --->( f(Input,Zustand) )----- ^ I I I I---[Flipflops]<----I---->( g(Zustand) )--> Output
Diese beiden Funktionen kannst du aus dem Automaten rauslesen. Beispiel:
8 Zustaende, fuer Zustand 0 gilt: bleibe in Zustand 0, wenn eine 0 kommt und gehe zu Zustand 1 wenn eine 1 kommt.ZustandAlt, Input | ZustandNeu 000 0 000 000 1 001
So kannst du eine Wahrheitstabelle fuer die Funktion f mit 4 Eingaengen und 3 Ausgaengen aufstellen.
Dann machst du das gleiche mit g. Nehmen wir an in Zustand 2 ist der Ausgang 1, sonst 0:
Zustand Output 000 0 001 0 010 1 011 0 ... 0
Das ist auch eine kombinatorische Funktion, von der du schon weisst, wie du sie in Hardware realisieren kannst.
In dem speziellen Fall, den du jetzt hast, koenntest du auch einen Counter, der auf 3 Zaehlt und eine FSM mit 2 States machen. Das waere evt. weniger muehsam...
-
Danke fuer die Informationen, ich werde mal versuchen das so umzusetzen.