Zähler aus D-FlipFlops (asynchron)

Gast #4597579
Lesenswert?

Hallo!

Ich bin noch neu in der VHDL-Sprache und habe schwierigkeiten bei 
folgender aufgabe: Es muss aus FlipFlops ein asynchroner 4Bit Zähler 
entworfen (Schaltplan liegt bereits vor). Die gesamte Schaltung besitzt 
fürs erste nur den Taktsignal als Eingang, alles andere passiert intern.
Was ich bisher gemacht habe:

- D-FlipFlop als VHDL Module implementiert (mit Daten-, 
Taktsignal-Eingang und Ausgang und Ausgang negiert, mit Prozess 
beschrieben)
- das Schematische Symbol für den FlipFlop generiert und mit Schemata 
die gesamte Schaltung etstellt (die Schaltung selbst hat bei der 
Überprüfung keine Fehler und ist mit dem Schaltplan identisch).

Mein Problem ist dass ich an den Ausgängen nur undefined rausbekomme, da 
es mir nicht gelingt, die Dateneingänge der FlipFlops in der großen 
Schaltung zu initialisieren. Zum Beispiel wird an Dateneingang von 
FlipFlop 1 der negierte Ausgang Rückgekoppelt, das heißt, ich habe bei 
der Gesamtschaltung keinen expliziten Zugriff auf die einzelnen 
Dateneingänge. Der Zähler sollte automatisch von 0000 hochzählen, was 
aber wegen fehlender Belegung nicht geschieht.

Ich habe schon versucht bei der port Deklaration vom FlipFlop den 
Dateneingang mit '0' als initial Wert zu definieren:

entity DFF is
port(D : in STD_LOGIC := '0';
     CLK : in STD_LOGIC;
     Q, NOT_Q : out STD_LOGIC);
end DFF;

leider hat das bei der Simulation keine Auswirkung, die Ausgänge bleiben 
weiterhin Undefined.
Wo mach ich den Fehler? Könnte mir jemand bitte helfen?

Danke im Voraus und schönen Abend noch!
Moderator (Firma: Titel) Persönliche Seite #4597608
Lesenswert?

attilatrp schrieb:
> leider hat das bei der Simulation keine Auswirkung, die Ausgänge bleiben
> weiterhin Undefined.
Lass doch mal die Waveform sehen. Und auch die Testbench dazu.

> Wo mach ich den Fehler?
Irgendwo ausserhalb des geposteten Codes...

attilatrp schrieb:
> - das Schematische Symbol für den FlipFlop generiert und mit Schemata
> die gesamte Schaltung etstellt
Warum als Schematic? Mach doch alles in VHDL. Das ist einfacher zu 
überschauen, als wenn du noch ein Programm lernen musst...
Gast #4597646
Lesenswert?

Hallo lkmiller und vielen Dank erstmal für deine Antwort!

Die Aufgabe schreibt es leider vor, dass man die Schaltung als Schemata 
erstellt, mir wäre Code auch lieber.

Ich poste paar Screenshots von der Schaltung, Waveform, sowie TestBench 
und FlipFlop-Beschreibung.

Viele Grüße
Angehängte Dateien:
Gast #4597774
Lesenswert?

Also, als Code habe ich es jetzt hinbekommen, muss nur noch irgendwie 
rausfinden, wie ich das jetzt grafisch schaffe, dass ich Signal D mit 
dem initial Wert '0' versehe.

Falls sich damit jemand auskennt, würde ich mich über Tipps freuen!
Gast #4601953
Lesenswert?

Nein, die Aufgabe schreibt es so vor. Habe es jetzt auch in Schemata 
hinbekommen.

Nun soll man selber ein Reset in die gesamte Schaltung einbauen.
Dafür steht ein Eingang "Reset" zur Verfügung, wenn dort eine 1 anliegt, 
müssen die Flipflops nach und nach auf 0 zurückgesetzt werden. Dabei 
darf man die Flipflops nicht verändern, und es stehen nur AND und 
NAND-Gatter zur Verfügung. Ich habe jetzt zwar eine Schaltung gemacht, 
was aber glaub ich nicht so funktioniert, wie es sollte(die Zähler 
werden nicht immer zurückgesetzt). Ich füge ein Bild von der Waveform 
und von der Schaltung ein.

Mir sind die Ideen ausgegangen, kann mir da jemand helfen, wo ich den 
Fehler mache?
Angehängte Dateien:
Gast #4602002
Lesenswert?

Ich merke gerade, dass ich die Signal bei Waveform aus versehen 
abgeschnitten habe.

Zeile 1: Clock-Signal
Zeile 2: Reset-Signal
Zeile 3: Cleared-Signal (Soll genau dann eine 1 liefern, wenn alle 
Flipflops in Zustand 0 sind)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren