FPGA fun - erste Schritte, Hardware Vorbereitungen
ACHTUNG: ICH ÜBERNEHME KEINERLEI GARANTIE FÜR FUNKTION, SCHÄDEN ETC., ICH GEBE AUCH KEINERLEI SUPPORT BEI PROBLEMEN.
FPGAs sind eine feine Sache, man designed ein board, packt eine FPGA drauf, schließt ein paar Ein- und Ausgänge an - die Logik dazwischen macht man später.
Dazu die Vorteile echter paraller Verarbeitung, jede Menge verfügbare Logikzellen, viele IO-Ports.
Aber der Einstieg ist schwierig: VHDL bzw. Verilog als Sprache, diverse Software Tools, kryptische Fehlermeldungen, teure Development Boards.
Auf dieser Seite dokumentiere ich meine allerersten Schritte mit einer XILINX Spartan 6, Ausgang und Fortsetzung dieses Abenteuers sind noch ungewiss.
Zum Einsatz kommen ein ZTEX FPGA Board sowie das zugehörige Experimentier-Board 1.3, welches seinerseits auf einem selbstgebauten Testboard mit 4 Schaltern und 8 LEDs sitzt.
Daten des ZTEX USB-FPGA-Board-1.11c
- XILINX Spartan6 XC6SLX25 (Mitte)
- Cypress EZ-USB FX2-100 (links)
- 128KBit EEPROM (links unten)
- microSD Karten Slot, SDHC fähig, benötigt SPI-fähige SD Karte (rechts oben, hier schon bestückt mit SD Karte)
- 64MByte DDR SDRAM (rechts unten)
- USB-2.0 Port am EZ-USB FX2
- 82 IO Pins der FPGA an 2.54mm Pinheader verfügbar (Unterseite des PCB)
- 8 IO Pins des EZ-USB FX2-100 an 2.54mm Pinheader verfügbar (Unterseite des PCB)
Die FPGA kann den Bitstream entweder per USB über den EZ-USB FX2 laden oder der EZ-USB liest den Bitstream aus der SD Karte und lädt diese in die FPGA. Es gibt eine Java basierte Entwicklungsumgebung, die auf den EZ-USB zugreift, ein separater Programmieradapter ist also nicht unbedingt notwendig (sehr wohl aber praktisch, wenn man mit der XILINX Software arbeitet).
Daten des ZTEX Experimentier-Board 1.3
Bild: Experimentierboard mit aufgestecktem FPGA Board.
- Schaltregler für die FPGA Spannungen sowie FPGA IO-Spannungen(1.2V/8A, 2.6V/2.5A, 3.3V/2.5A)
- Eingangsspannung 4.5..16 V DC mit 2.1 mm Powerbuchse (, Bild links, +Pol innen)
- Lötstellen für 4 Stück Pinheader 1x23 2.54mm für externe Verbindungen (oben, unten)
- Standard JTAG Connector für XILINX Programmieradapter, sowie 8poliger Pinheader für non-Standard JTAG Belegung (rechts oben)
- Jumper für VCC IO Voltage sowie VCC TOP Voltage; jeweils 1.2V/2.6V/3.3V (rechts unten)
Das Experimentierboard 1.3 verfügt über keine LEDs, Schalter etc., deswegen wird das Experimentierboard auf ein weiteres selbstgefertigtes Board gesteckt. Der Einfachheit halber gebe ich nur den Schaltplan an.
Das Adapterboard für LEDs und Taster
DOWNLOAD schematics
Wichtig beim Adapterboard sind nur die Zuordnungen der Schalter und LEDs zu den FPGA Pins für die nachfolgenden Beispiele:
- LED1..LED8 ENABLE = M12, active low
- LED1 = R9, active high
- LED2 = P8, active high
- LED3 = N9, active high
- LED4 = M9, active high
- LED5 = N8, active high
- LED6 = T7, active high
- LED7 = P7, active high
- LED8 = M7, active high
- SWITCH1 = M6, active high
- SWITCH2 = P4, active high
- SWITCH1 = N6, active high
- SWITCH2 = P6, active high
Alle In- und Outputs des Adapterboards sind mit FPGA Bank 2 verbunden. Zusätzlich befindet sich auf dem Adapterboard ein +5V Linearregler für die Versorgung der LEDs.
WICHTIG: Die Adapterplatine sorgfältigst auf Funktion, Kurzschlüsse etc. prüfen!
Letzte Kontrollen bevor das erste mal Strom angeschlossen wird
Der Jumper JP1 muss so gejumpert werden, dass VCC_IO = 3.3V beträgt. Andernfalls kann eine zu hohe Spannung an den Eingängen die FPGA beschädigen.
Teil 2: Software.
Nach den Hardware Vorbereitungen geht es an die Software.
hier geht es weiter..