2. Sie laden vom Hersteller des FPGAs (Intel) das Hardware-Design-Paket Quartus 20.1.1 herunter (waehlen Sie Edition Lite, Release 20.1.1, Betriebssystem nach Wahl) und installieren Sie es auf Ihrem Rechner.
3. Jetzt kommt eine heikle Angelegenheit: VHDL vs. Verilog... Wenn Sie Spass haben wollen, dann suchen Sie nach "verilog vs vhdl"; speziell der "Contest" und die Reaktionen darauf sind interessant... ;-)
Ich habe die ersten Praktikumsaufgaben sowohl mit VHDL als auch mit Verilog geloest und konstatiere: die Wahl der Sprache ist nebensaechlich. Die wesentliche Schwierigkeit (bei beiden) liegt im Begreifen der Tatsache, dass das KEINE Programmiersprachen sind, sondern Sprachen zum Beschreiben von PARALLEL ARBEITENDER Hardware. Allenfalls ist Verilog syntaktisch ein bisschen einfacher, weil es naeher bei C liegt als VHDL, das eher an ADA erinnert.
Nun haben Sie die Qual der Wahl. Mein Rat waere: Nehmen Sie Verilog. Aber ich kann auch mit VHDL leben, wobei Sie dann bei Problemen eher auf sich allein gestellt sind. Vielleicht noch eine kleine Entscheidungshilfe: Fuer Verilog gibt's den guten freien Simulator Icarus , mit GHDL fuer VHDL habe ich keine Erfahrung.
Hier ist eine Verilog-Einfuehrung , und hier eine andere . Sehr nuetzlich sind auch diese Codierungsrichtlinien fuer blockierende und nichtblockierende Zuweisungen, sowie diese Hinweise zur Codierung von FSMs.
4. Es folgt das eigentliche Loesen der Praktikumsaufgabe:
a) Einrichten eines Projektes
- Benutzen Sie den "New Project Wizard"
- Family: Cyclone IV E
- Specific device selected in list
- Device: EP4CE115F29C7
b) Anlegen und Hinzufuegen eines Verilog-Moduls
- Pushbutton (Input) steuert ueber einen Inverter eine LED (Output) an
- Warum muss dort ein Inverter (und keine einfache Verbindung) hinein?
- Fuegen Sie die Datei zum Projekt hinzu (Project/Add Files)
c) Anpassen und Hinzufuegen des
"Pin Assignment File"
- Waehlen Sie einen Druckknopf und eine LED aus
- Aktivieren Sie die entsprechenden Zeilen im Assignment File
- Tragen Sie die Namen der Signale aus b) in den Assignment File ein
- Lesen Sie die Datei ein (Assignments/Import Assignments)
d) Hinzufuegen des
"Clock Constraint File"
- Enthaelt im Moment nur auskommentierte Zeilen (keine Clock vorhanden)
- Fuegen Sie die Datei zum Projekt hinzu (Project/Add Files)
e) Generieren des Bitstrings fuer den FPGA
- Start Compilation (erzeugt einen .sof-File - den eigentlichen
Bitstring)
- Im "Programmer" konvertieren Sie den .sof-File in einen .svf-File
f) Uebertragen des .svf-Files zum FPGA-Board
- Genaueres im Praktikum
g) Ausprobieren, ob Ihre Schaltung das macht, was sie soll
- Genaueres im Praktikum
2. Die Schaltung aus 1. wird mit einem Zaehler angesteuert, der einen "Umlauf" des Lauflichtes in etwa 1.34 sec durchfuehrt. Wie viele Zaehlerstufen sind also notwendig? Wo muessen die drei Bits fuer den Decoder abgegriffen werden? Was muss man aendern, wenn sich beim Druecken des Pushbuttons die Laufrichtung umkehren (und beim Loslassen wieder normalisieren) soll?
3. Verwenden Sie in dieser Aufgabe (wie in allen folgenden Aufgaben) eine nicht-auskommentierte Version des "Clock Constraint File", so dass eine korrekte Analyse des zeitlichen Verhaltens Ihrer Schaltung von der Synthese-Software durchgefuehrt werden kann.