Forum: FPGA, VHDL & Co. Zähler aus D-FlipFlops (asynchron)


von attilatrp (Gast)


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!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

: Bearbeitet durch Moderator
von attilatrp (Gast)



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

von attilatrp (Gast)


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!

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Haste keine D-FF mit Reset zur Verfügung?

von attilatrp (Gast)


Angehängte Dateien:

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?

von attilatrp (Gast)


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)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.