2. Sie studieren die Anleitung von XESS zum Werkzeugpaket ISE WebPack , das vom FPGA-Chip-Hersteller XILINX zur Verfuegung gestellt wird und das Sie auch kostenlos von dort auf Ihrem privaten Rechner installieren sollten, um die Praktikumsaufgaben vernuenftig vorbereiten zu koennen. ACHTUNG: Laden Sie NICHT die neueste Version dieser Tools ("Vivado") herunter, sondern gehen Sie auf http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html und waehlen Sie dort die ISE-Version 14.7, in der auch die etwas aelteren FPGAs noch unterstuetzt werden.
3. Jetzt kommt eine heikle Angelegenheit: VHDL vs. Verilog... Wenn Sie Spass haben wollen, dann werfen Sie Google an und suchen 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:
- Einrichten eines Projektes
- Anlegen eines Verilog-Moduls
- Generieren des Bitstrings fuer den FPGA
- Uebertragen des Bitstrings zum FPGA-Board
- Ausprobieren, ob Ihre Schaltung das macht, was sie soll
5. Bitte beachten Sie:
- unser FPGA ist ein xc3s1000-4ft256
- in den "Configuration Options" I/O-Pins auf "float" stellen
- in den "Startup Options" Startup-Clock auf "JTAG Clock" stellen
2. Die Schaltung aus 1. wird jetzt 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 soll?