Forum: FPGA, VHDL & Co. Ist der Einstieg in FPGA wirklich so zäh?


von Oliver F. (ollif)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe jetzt seit ein paar Tagen ein Terasic DE0 Nano Board.

Ich habe die zugehörigen Beispiele (LED Blinken, Binär Zähler) 
durchgearbeitet. Jetzt wollte ich mich an die DDFS von Lothar Miller 
wagen.
http://www.lothar-miller.de/s9y/categories/31-DDFS

Erst mal nur als Simulation.

Projekt erstellt und Compiliert. Ist fehlerfrei durchgelaufen.

Dann in Quartus auf Run Simulation Tool-> rtl Simulation geklickt.
Model Sim geht auf die Signale in das Wave Fenster geschoben das Clock 
signal zugewiesen und Freq auf 224 gesetzt(force)
dann Simulate run -all gestartet mit folgendem Ergebnis(siehe Anhang).

Mache ich hier generell etwas falsch? Oder kennt jemand gute Tutorial 
für DE0 Nano Boards? Ob VHDL oder Verilog spielt für mich erst mal keine 
Rolle.

Ich nutze dass ganze nur als Hobby.

Vielen Dank im voraus.


Gruß

Oliver

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


Lesenswert?

Oliver F. schrieb:
> das Clock signal zugewiesen und Freq auf 224 gesetzt(force)
Vergiss gleich am Anfang dieses vermurkste "force". Arbeite mit einer 
Testbench, dann ist der gesamte Workflow in VHDL...

Und vor Allem: das ist nicht viel komplizierter. Sieh dir mal das Hello 
World Beispiel an:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
Dort siehst du, dass einfach das Blinklicht als Komponente in die 
"Testbench" (dort eher Taktgenerator) eingebunden wird.

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


Lesenswert?

Oliver F. schrieb:
> Freq auf 224 gesetzt(force)
Das ist nicht richtig. So wie ich das sehe, hast du nur die oberen drei 
Bits von Freq_Data auf '1' die unteren Bits aber unverändert gelassen 
und damit den gesamten Freq_Data Vektor auf "111UUUUU" gesetzt.

So, jetzt kommts: std_logic ist eine neunwertige Logik. 'U' ist der 
Initialwert und bedeutet "Uninitialized", der Wert wurde also nie 
geändert. Und 'U' verknüpft mit irgendwas Anderem gibt ebenfalls 'U'. Es 
wird also aus einer Berechnung mit diesem "111UUUUU" Vektor immer nur 
Käse herauskommen.

von Oliver F. (ollif)


Lesenswert?

Hallo Lothar,

vielen Dank für die Infos habe jetzt nochmal mit force "11100000" 
simuliert dann hat es geklappt.
Werde trotzdem auf Testbenches umsteigen weil das weniger geklicke und 
einfacher reproduzierbar ist.

Danke nochmal.

Gruß Oliver

von Mike (Gast)


Lesenswert?

Kleiner Tipp: alles was du über Mausklicks auslöst siehst du unten im 
Textfenster nochmal in Befehlsform. Das kannst du in eine Textdatei 
schreiben und anschließend über do <dateiname> ausführen. Das erspart 
einem reichlich Klickerei für immer wiederkehrende Aufgaben. Beispiel:

1
restart -f
2
run 10 us

Setzt die Simulation zurück und lässt sie dann für 10 us laufen.

Das Wave-Fenster kann man anklicken und über "Speichern" ein do-File 
erzeugen das einem die ganzen Signale wieder herstellt. Das ist gerade 
bei größeren Projekten sehr praktisch.

von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Lesenswert?

Hallo,
auf meiner Homepage, www.pdp11gy.com kannst Du dir das Beispiel, einen 
RL02 Diks Simulator komplett runterladen. Kapitel 1B
Viel Spaß und viel Glück,
Reinhard

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.