Spaß mit FPGAs

Aus /dev/tal
Version vom 18. Juni 2016, 11:25 Uhr von Phip (Diskussion | Beiträge) (Werkzeuge: +Infos)

Wechseln zu: Navigation, Suche

Dieses Projekt befindet sich in der Evaluationsphase. Es folgt die Beschaffungsphase. Dann folgt die Spaß-mit-FPGAs-Phase.

     
Spaß mit FPGAs

Release status: experimental [box doku]

XC3S700A.jpg
Description Wissen über FPGAs und derer Programmierung sammeln
Author(s)  phip
Platform  FPGA, PC/Laptop
Ein alter Spartan-3 FPGA-Entwicklerboard

Das Projekt Spaß mit FPGAs ist eine konsequente Fortführung der aus der Spielerei mit Arduinos und Raspberry Pis gesammelten Erfahrungen.

Eigenstudium

phip hilft bei Fragen und leiht Bücher zum Lernen aus.

Schaltungslogik

Grundlende Begriffe wie Gatter, Flipflop, XOR, uvm … sollten keine Fremdworte sein

Hardwarebeschreibungssprache

Um digitale Schaltungen in einem FPGA realisieren zu können, sind Kenntnisse einer Hardwarebeschreibungssprache (Hardware Description Language, HDL) notwendig, mit der die Logikgatter entworfen werden. Verilog und VHDL haben sich als HDL etabliert.

VHDL

VHDL ist in Europa sehr beliebt. Zur Übersicht der Sprache empfehlen sich folgende Quellen:

Hardware

Für dieses Projekt muss mindestens ein FPGA beschaffen werden. Hier Auflistung der bisher gefundenen, günstigen Angebote.

Name Logic Cells DSP Slices Flipflops Verteilter RAM (kb) Block-RAM (kb) 6,6 GB/s
Transceiver
Preis (Modul zum Löten) Lötbare I/O Pins Preis (Entwicklerboard) herausgeführter I/O
XC6SLX9 9.152 16 11.440 90 576 0 ZR TECH
54,00 €
26-PIN, VGA, PS2, …
XC7A15T 16.640 45 20.800 200 900 4 Xilinx Artix-7 2x50 Pin FPGA-Modul
64,26 €
87
XC7A35T 33.280 90 41.600 400 1.800 4 Xilinx Artix-7 2x50 Pin FPGA-Modul
76,16 €
87 Basys3 Artix-7 FPGA Board
132,92 €
83,87 €*
Type-A USB
VGA
4 × 12-pin_Pmod
XC7A100T 101.440 240 126.800 1.188 4.860 8 Xilinx Artix-7 2x50 Pin FPGA-Modul
117,81 €
87 Nexys 4 FPGA Board
339,71 €
190,03 €*
168,80 €*
Type-A USB
SD card
12-bit VGA
3-Achsen Accelerometer, …

mit * markierte Preise gelten nur für Beschaffung als Student/Akademiker

Die Entwicklerboards haben noch RAM und andere Faxen aufgelötet. Man hat die Qual der Wahl zwischen Chip (alles selber machen [lassen]), Modul (nur noch Pins verbinden) und Entwicklerboard (alles Fertig vorgekaut), je nach Anwendung (Lernen/Entwickeln/Projektimplementierung)

Obwohl die Artix-7 FPGAs von Xilinx die „kleinsten“ FPGAs sind, haben sie für diesen Preis schon ganz viel zu bieten. Artix-7 FPGAs haben einiges direkt im Chip implementiert, was die Schaltungszeit erheblich erhöht und logische Zellen für andere Zwecke einspart, z. B. PCIe v2.0 mit 4 Lanes = 4×5 Gb/s (damit kann man PCIe-Karten an den FPGA anbinden oder den FPGA in einen PCIe-Slot stecken), Ver-/Entschlüsselung mit 256-bit AES; an den Pins können 211 Gb/s (Duplex) übertragen werden, die im FPGA enthaltenen Transceiver können 6.6 Gb/s übertragen, es ist sogar ein 12-bit 1 MSP/s (500 kHz) ADC enthalten (reicht zum Empfang eines FM Radiosenders mittels SDR). Kintex und Virtex können noch mehr, aber das ist eine andere Welt.

Werkzeuge

Als Freie Software zum Lernen von VHDL und als Testumgebung der geschriebenen Schaltungen bietet sich GHDL in Verbindung mit GTK-Wave an.

Für die Entwicklung auf einem FPGA sind die Tools der Hersteller leider immer noch die erste Wahl.

Xilinx FPGAs

Bei Xilinx gibt es eine kostenlose WebPack-Lixenz zu haben. Einfach bei Xilinx registrieren und sich bei seiner Arbeit von Xilinx beschatten lassen

ISE

ISE ist die alte (Oktober 2013) FPGA Design Suite. Sie wird für FPGA-Serien <7 benötigt.

Installation

Auf dem Datending bereits heruntergeladen: /mnt/datending/software/Xilinx/ise/Xilinx_ISE_DS_14.7_1015_1/xsetup ausführen (Für Windows gibt es dort auch eine EXE). Die Installation dauert eine Weile, mindestens 17 GiB freien Festplattenspeicher werden benötigt.

Ausführen

 . /opt/Xilinx/14.7/ISE_DS/settings64.sh
 export XILINXD_LICENSE_FILE=1234@server

Nachdem die Shell mit den Umgebungsvariablen eingerichtet wurde, einfach ise eingeben.

Für Xilinx-Programmierkabel wird noch eine eigenst kompilierte LibUSB benötigt (git clone git://git.zerfleddert.de/usb-driver). Lass die Finger davon, wenn Du es nicht brauchst. export LD_PRELOAD=/mnt/vhdl/usbcable/usb-driver/libusb-driver.so

Vivado

ISE ist die neue FPGA Design Suite von Xilinx.

Installation

Auf dem Datending bereits heruntergeladen: /mnt/datending/software/Xilinx/vivado/2016.2/xsetup ausführen.

Ausführen

Irgendwo in den Anwendungen sind neue Icons mit Namen aufgetaucht – einfach anklicken.

Projektstatus

Planung JTAG-Adapter beschaffen
Planung FPGA beschaffen
Planung FPGA-Modul mit Spannungsversorgung verlöten