Spaß mit FPGAs: Unterschied zwischen den Versionen

Aus /dev/tal
Wechseln zu: Navigation, Suche
(Hardware: + XC6SLX9)
(Vivado: ausgelagert)
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<p class="smw-editpage-help">Dieses Projekt befindet sich in der Evaluationsphase. Es folgt die Beschaffungsphase. Dann folgt die Spaß-mit-FPGAs-Phase.</p>
 
<p class="smw-editpage-help">Dieses Projekt befindet sich in der Evaluationsphase. Es folgt die Beschaffungsphase. Dann folgt die Spaß-mit-FPGAs-Phase.</p>
  
[[Datei:Spartan3_entwicklerboard_2.jpg|300px|thumb|right|Ein alter Spartan-3 FPGA-Entwicklerboard]]
+
{{ProjektInfoBox
 +
|name        = Spaß mit FPGAs
 +
|status      = beta
 +
|image      = Artix-7_XC7A100T_CSG324ABX-00008265_crop.jpg
 +
|description = Wissen über FPGAs und derer Programmierung sammeln
 +
|author      = phip
 +
|username    = phip
 +
|version    =
 +
|update      =
 +
|platform    = FPGA, PC/Laptop
 +
|license    =
 +
|download    =
 +
}}
 +
 
 +
[[Datei:Spartan3_entwicklerboard_2.jpg|300px|thumb|right|Ein altes 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.
 
Das Projekt '''Spaß mit FPGAs''' ist eine konsequente Fortführung der aus der Spielerei mit Arduinos und Raspberry Pis gesammelten Erfahrungen.
  
Zeile 22: Zeile 36:
  
 
==Hardware==
 
==Hardware==
Für dieses Projekt muss mindestens ein FPGA beschaffen werden. Hier Auflistung der bisher gefundenen, günstigen Angebote.
+
Für dieses Projekt muss mindestens ein FPGA beschaffen werden. Artix-7 bietet in Verbindung mit Vivado verglichen mit anderen verfügbaren FPGAs das Meiste für $Preis. Weitere FPGAs folgen bei Gelegenheit. Der Vollständigkeit halber gibt es noch einige Spartan-FPGA, die auf der Suche über den Weg liefen. Für diese ist die veraltete ISE zum Erstellen der Netzlisten nötig. ISE macht aber keinen Spaß mehr, wenn man ein mal mit Vivado gearbeitet hat. Der einzige Vorteil der alten und kleinen FPGAs ist, dass man bei der Erstellung der Netzliste für diese nicht so viel Zeit/RAM benötigt wie für größere FPGAs.
 +
 
 +
Hier Auflistung der bisher gefundenen, günstigen Angebote. Module zum Stecken/Löten benötigen einen eigenen JTAG-Programmierer (ca. 50-300 €).
 +
 
 +
===Xilinx===
  
 
{| class="wikitable"
 
{| class="wikitable"
|- style="background:#888888; color:#000000"  
+
|- style="background:#888888; color:#000000 text-align:center"  
! Name
+
! FPGA Name
! Logic Cells
+
! Logik-Zellen Äquivalent
 
! DSP Slices
 
! DSP Slices
 
! Flipflops
 
! Flipflops
! Verteilter RAM (kb)
+
! Verteilter RAM (Kb)
! Block-RAM (kb)
+
! Block-RAM (Kb)
! 6,6 GB/s<br />Transceiver
+
! Preis [€] (Modul zum Stecken/Löten<ref name=":0" group="L" />)
! Preis (Modul zum Löten)
+
! (GP) I/O
! Lötbare I/O Pins
+
! Preis [€] (Entwicklerboard)
! Preis (Entwicklerboard)
+
! (GP) I/O<ref name=":2" group="L">auf dem Board sind noch zusätzlich andere Dinge über andere IOs abrufbar und ansprechbar</ref>
! herausgeführter I/O  
+
|-
 +
| style="text-align:center" |XC3S50A
 +
| style="text-align:center" |1.584
 +
| style="text-align:center" |– (3<ref name=":3" group="L">Multiplizierer</ref>)
 +
| style="text-align:center" |?
 +
| style="text-align:center" |11
 +
| style="text-align:center" |54
 +
| style="text-align:center" colspan="2" |
 +
| style="text-align:center" |Numato Lab Elbert&nbsp;V2<br />[http://numato.com/elbert-v2-spartan-3a-fpga-development-board/ 26,89]
 +
| style="text-align:center" |39
 
|-  
 
|-  
|style="text-align:center"| XC6SLX9
+
| style="text-align:center" | XC3S250E
|style="text-align:center"| 9.152
+
| style="text-align:center" | 5.508
|style="text-align:center"| 16
+
| style="text-align:center" |– (16<ref name=":3" group="L" />)
|style="text-align:center"| 11.440
+
| style="text-align:center" | ?
|style="text-align:center"| 90
+
| style="text-align:center" | 38
|style="text-align:center"| 576
+
| style="text-align:center" | 216
|style="text-align:center"| 0
+
| style="text-align:center" | Waveshare Evaluation Development Board<br />[https://www.amazon.de/Waveshare-Spartan-3E-XC3S250E-Evaluation-Development/dp/B00KM70X30/ref=sr_1_12?s=computers&ie=UTF8&qid=1466335106&sr=1-12&keywords=FPGA 28,99]
|style="text-align:center"|  
+
| style="text-align:center" | 88
|style="text-align:center"|  
+
| style="text-align:center" | Papilio One 250K [http://www.watterott.com/en/Papilio-One-250K-Xilinx-XC3S500E-FPGA-Board 40,36]
|style="text-align:center"| ZR TECH<br />[http://www.ebay.de/itm/141762290694 54,00 €]
+
| style="text-align:center" | 48
|style="text-align:left" | 26-PIN, VGA, PS2, …
+
|-
 +
| style="text-align:center" |XC3S500E
 +
| style="text-align:center" |10.476
 +
| style="text-align:center" |– (20<ref name=":3" group="L" />)
 +
| style="text-align:center" |?
 +
| style="text-align:center" |73
 +
| style="text-align:center" |360
 +
| style="text-align:center" colspan="2" |
 +
| style="text-align:center" |Papilio&nbsp;One 500K<br />[http://www.exp-tech.de/papilio-one-500k 63,70] [http://www.watterott.com/en/Papilio-One-500K 69,05]
 +
| style="text-align:center" |48
 
|-  
 
|-  
|style="text-align:center"| XC7A15T
+
| style="text-align:center" rowspan="2" |XC6SLX9
|style="text-align:center"| 16.640
+
| style="text-align:center" rowspan="2" |9,152
|style="text-align:center"| 45
+
| style="text-align:center" rowspan="2" |16
|style="text-align:center"| 20.800
+
| style="text-align:center" rowspan="2" |11,440
|style="text-align:center"| 200
+
| style="text-align:center" rowspan="2" |90
|style="text-align:center"| 900
+
| style="text-align:center" rowspan="2" |576
|style="text-align:center"| 4
+
| style="text-align:center" rowspan="2" colspan="2" |
|style="text-align:center"| Xilinx Artix-7 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-15-1C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A15T-1CSG324C?c=131 64,26 €]
+
| style="text-align:center" |Numato Lab Mimas<br />[http://numato.com/mimas-spartan-6-fpga-development-board/ 31,38]
|style="text-align:center"| 87
+
| style="text-align:center" |70
 +
|-
 +
| style="text-align:center" | ZR TECH Espier&nbsp;III<ref name=":0" group="L">JTAG Benötigt (ca. 40-300 oder Einzelteileprojekt)</ref><br />[http://www.ebay.de/itm/141762290694 54,00]
 +
| style="text-align:center" | 2<ref name=":4" group="L">insgesamt 22, jedoch teilen sich die IOs die FPGA-Pins mit PS/2 … und den Widerständen des VGAs</ref>
 
|-  
 
|-  
|style="text-align:center"| XC7A35T
+
| style="text-align:center" rowspan="2" | XC7A15T
|style="text-align:center"| 33.280
+
| style="text-align:center" rowspan="2" | 16.640
|style="text-align:center"| 90
+
| style="text-align:center" rowspan="2" | 45
|style="text-align:center"| 41.600
+
| style="text-align:center" rowspan="2" | 20.800
|style="text-align:center"| 400
+
| style="text-align:center" rowspan="2" | 200
|style="text-align:center"| 1.800
+
| style="text-align:center" rowspan="2" | 900
|style="text-align:center"| 4
+
| style="text-align:center" | 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-15-1C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A15T-1CSG324C?c=131 64,26]
|style="text-align:center"| Xilinx Artix-7 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-35-2C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A35T-2CSG324C?c=131 76,16 €]
+
| style="text-align:center" | 87
|style="text-align:center"| 87
+
|-
|style="text-align:center"| Basys3 Artix-7 FPGA Board<br />[https://shop.trenz-electronic.de/de/26084-Basys3-Artix-7-FPGA-Board?c=131 132,92 €]<br />83,87 €*
+
| style="text-align:center" | Digilent Cmod A7<ref name=":5" group="L">USB-JTAG im Breadboardmodul enthalten</ref><br />[https://shop.trenz-electronic.de/de/27383-Cmod-A7-Breadboardable-Artix-7-15T-FPGA-Module 80,24]
|style="text-align:left" | Type-A USB<br />VGA<br />4 × 12-pin_Pmod
+
| style="text-align:center" | 44+2<ref name=":6" group="L">Analog I/O</ref>
 
|-  
 
|-  
|style="text-align:center"| XC7A100T
+
| style="text-align:center" rowspan="2" | XC7A35T
|style="text-align:center"| 101.440
+
| style="text-align:center" rowspan="2" | 33.280
|style="text-align:center"| 240
+
| style="text-align:center" rowspan="2" | 90
|style="text-align:center"| 126.800
+
| style="text-align:center" rowspan="2" | 41.600
|style="text-align:center"| 1.188
+
| style="text-align:center" rowspan="2" | 400
|style="text-align:center"| 4.860
+
| style="text-align:center" rowspan="2" | 1.800
|style="text-align:center"| 8
+
| style="text-align:center" | 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-35-2C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A35T-2CSG324C?c=131 76,16]
|style="text-align:center"| Xilinx Artix-7 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-100-2C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A100T-2CSG324C?c=131 117,81 ]
+
| style="text-align:center" | 87
|style="text-align:center"| 87
+
| style="text-align:center" | Digilent Arty<br />[https://shop.trenz-electronic.de/de/26958-Arty-Artix-7-35T-Arty-FPGA-Evaluation-Kit?c=20&showb2c=1 120,65]
|style="text-align:center"| Nexys 4 FPGA Board<br />[https://shop.trenz-electronic.de/de/25305-Nexys-4-FPGA-Board-Xilinx-Artix-7-100T?c=131&showb2c=1 339,71 ]<br />190,03 €*<br />168,80 €*
+
| style="text-align:center" | 4×8, +Arduino, +ChipKit
|style="text-align:center"| Type-A USB<br />SD card<br />12-bit VGA<br />3-Achsen Accelerometer,
+
|-
 +
| style="text-align:center" | Digilent Cmod A7<ref name=":5" group="L" /><br />[https://shop.trenz-electronic.de/de/27385-Cmod-A7-Breadboardable-Artix-7-35T-FPGA-Module 95,21]
 +
| style="text-align:center" | 44+2<ref name=":6" group="L" />
 +
| style="text-align:center" | Digilent Basys&nbsp;3<br />[https://shop.trenz-electronic.de/de/26084-Basys3-Artix-7-FPGA-Board?c=131 132,92]<br />83,87<ref group="L" name=":1">Preis gilt nur für Beschaffung als Student/Akademiker</ref>
 +
| style="text-align:center" | 4×8
 +
|-
 +
| style="text-align:center" | XC7A100T
 +
| style="text-align:center" | 101.440
 +
| style="text-align:center" | 240
 +
| style="text-align:center" | 126.800
 +
| style="text-align:center" | 1.188
 +
| style="text-align:center" | 4.860
 +
| style="text-align:center" | 2x50 Pin FPGA-Modul<br />[https://shop.trenz-electronic.de/de/TE0725-02-100-2C-Xilinx-Artix-7-2x50-Pin-FPGA-Modul-XC7A100T-2CSG324C?c=131 117,81]
 +
| style="text-align:center" | 87
 +
| style="text-align:center" | Digilent Nexys&nbsp;4&nbsp;DDR<br />[https://shop.trenz-electronic.de/de/25305-Nexys-4-FPGA-Board-Xilinx-Artix-7-100T?c=131&showb2c=1 339,71]<br />168,80<ref name=":1" group="L" />
 +
| style="text-align:center" | 4×8, 1×8&nbsp;LVDS
 
|}
 
|}
mit * markierte Preise gelten nur für Beschaffung als Student/Akademiker
+
<references group="L" />
  
 
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)
 
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.
 
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.
 +
 +
====Xilinx Artix Pin-I/O====
 +
Beim Kauf von FPGAs ist drauf zu achten, ob das FPGA die Pins für den gewünschten Einsatz enthält. Die begehrten GTP-Transciever  mit 6.6 Gb/s gibt es nur bei bestimmten Packungen. Hier eine „kleine“ Übersicht über die einzelnen Packungsgrößen und den Preis des kleinsten FPGAs und den Mengenrabatt bei Abnahme mehrerer. Beim Kauf muss noch berücksichtigt werden, dass Spannungswandler (3,3; 1,8; 1,0 V), Oszillatoren und andere Bauteile benötigt werden.
 +
 +
{| class="wikitable"
 +
|- style="background:#888888; color:#000000 text-align:center"
 +
! Packung
 +
! GTP
 +
! I/O
 +
! XC7A…T
 +
! Beispiel
 +
! Preis [€] × 1
 +
! Preis [€] × x
 +
|-
 +
| style="text-align:center" | CPG236
 +
| style="text-align:center" | 2
 +
| style="text-align:center" | 106
 +
| style="text-align:center" | 15-50
 +
| style="text-align:center" | XC7A15T-1CPG236C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/fpga/3074457345629543423 49,52]
 +
| style="text-align:center" | 30,02 × 3
 +
|-
 +
| style="text-align:center" | CSG324
 +
| style="text-align:center" | 0
 +
| style="text-align:center" | 210
 +
| style="text-align:center" | 15-100
 +
| style="text-align:center" | XC7A15T-1CSG324C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/programmable-logic/fpga/3074457345629544898 53,23]
 +
| style="text-align:center" | 38,72 × 3
 +
|-
 +
| style="text-align:center" | CSG325
 +
| style="text-align:center" | 4
 +
| style="text-align:center" | 150
 +
| style="text-align:center" | 15-50
 +
| style="text-align:center" | XC7A15T-1CSG325C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/programmable-logic/fpga/3074457345629545673 57,06]
 +
| style="text-align:center" | 41,50 × 3
 +
|-
 +
| style="text-align:center" | FTG256
 +
| style="text-align:center" | 0
 +
| style="text-align:center" | 170
 +
| style="text-align:center" | 15-100
 +
| style="text-align:center" | XC7A15T-1FTG256C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/programmable-logic/fpga/3074457345629543456 42,57]
 +
| style="text-align:center" | 30,96  × 4
 +
|-
 +
| style="text-align:center" | {S,F}B{B,V}484
 +
| style="text-align:center" | 4
 +
| style="text-align:center" | 285
 +
| style="text-align:center" | 200
 +
| style="text-align:center" | XC7A200T-1FBG484C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/kits-and-tools/development-kits/3074457345629520240 251,34]
 +
| style="text-align:center" | 230,39 × 3
 +
|-
 +
| style="text-align:center" | FGG484
 +
| style="text-align:center" | 4
 +
| style="text-align:center" | 250
 +
| style="text-align:center" | 15-100
 +
| style="text-align:center" | XC7A15T-1FGG484C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/fpga/3074457345629545716 65,64]
 +
| style="text-align:center" | 47,74 × 3
 +
|-
 +
| style="text-align:center" | FGG676
 +
| style="text-align:center" | 8
 +
| style="text-align:center" | 300
 +
| style="text-align:center" | 75-100
 +
| style="text-align:center" | XC7A75T-1FGG676C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/fpga/3074457345629539806 161,77]
 +
| style="text-align:center" | 148,28 × 4
 +
|-
 +
| style="text-align:center" | FB{G,V}676
 +
| style="text-align:center" | 8
 +
| style="text-align:center" | 400
 +
| style="text-align:center" | 200
 +
| style="text-align:center" | XC7A200T-1FB676I
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/kits-and-tools/development-kits/3074457345629519487 339,04]
 +
| style="text-align:center" | 286,89 × 4
 +
|-
 +
| style="text-align:center" | FF{G,V}1156
 +
| style="text-align:center" | 16
 +
| style="text-align:center" | 500
 +
| style="text-align:center" | 200
 +
| style="text-align:center" | XC7A200T-1FFG1156C
 +
| style="text-align:center" | [https://products.avnet.com/shop/en/emea/kits-and-tools/development-kits/3074457345629787194 332,31]
 +
| style="text-align:center" | 281,18 × 4
 +
|}
 +
 +
[http://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf Hier] gibt es mehr fiese Feinheiten und eine Übersicht über Kintex und Virtex. FPGAs, die sich kaum ein Normalsterblicher leisten kann (z. B. [https://products.avnet.com/shop/en/emea/programmable-logic/fpga/3074457345629648803 XCVU440-3FLGA2892E] für 82.506,70 €).
 +
 +
===Altera===
 +
 +
 +
===Microsemi===
 +
Ein [https://www.youtube.com/watch?v=7AFGcAyK7kE Video] stellt eindrucksvoll einen günstigen Einstieg in FPGAs abseits des Massenmarkts: mit IGLOO nano FPGAs von Microsemi lassen sich kleine Projekte verwirklichen und der Umgang mit FPGAs erlernen; ab [http://www.mouser.de/Semiconductors/Programmable-Logic-ICs/_/N-3oh8v?Keyword=IGLOO&FS=True&Ns=Pricing|0 6 €] geht es los.
 +
 +
Wie diese Winzlinge angesteuert werden wird hier nach dem Studium der Datenblätter bei Gelegenheit beschrieben stehen. [http://www.microsemi.com/products/fpga-soc/fpga/igloo-nano Link]
 +
 +
Mittlerweile gibt es schon IGLOO2 … ab [http://www.mouser.de/Semiconductors/Programmable-Logic-ICs/_/N-3oh8v?Keyword=IGLOO2&FS=True&Ns=Pricing|0 18 €] …
  
 
==Werkzeuge==
 
==Werkzeuge==
Zeile 95: Zeile 247:
 
Für die Entwicklung auf einem FPGA sind die Tools der Hersteller leider immer noch die erste Wahl.
 
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 dank der nicht abschaltbaren WebTalk (Technologie) von Xilinx beschatten lassen.
 +
====ISE====
 +
ISE ist die alte (Oktober 2013) FPGA Design Suite. Sie wird für FPGA-Serien <7 benötigt. Es lassen sich nur Netzlisten für einige auserwählte FPGAs erstellen. Für andere FPGAs muss eine Lizenz erworben werden. Also aufgepasst beim FPGA-Kauf!
 +
 
 +
ISE wird nicht weiter entwickelt. Eine Installation auf modernen Linux-Systemen ist mit Einschränkungen bei der Konfiguration und Interaktion mit dem FPGA verbunden, sollte diese überhaupt klappen Die erstellte Netzliste muss auf einem anderen Weg in den FPGA gelangen (wird bei Gelegenheit beschrieben).
 +
=====Installation=====
 +
[http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html hier] herunterladen.
 +
Auf dem Datending bereits heruntergeladen: <code>/mnt/datending/software/Xilinx/ise/Xilinx_ISE_DS_14.7_1015_1/xsetup</code> 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 <code>ise</code> eingeben.
 +
 
 +
Für Xilinx-Programmierkabel wird noch eine eigenst kompilierte LibUSB benötigt (<code>git clone git://git.zerfleddert.de/usb-driver</code>). Lass die Finger davon, wenn Du es nicht brauchst.
 +
<code>
 +
export LD_PRELOAD=/mnt/vhdl/usbcable/usb-driver/libusb-driver.so
 +
</code>
 +
 
 +
====Vivado====
 +
Vivado ist die neue FPGA Design Suite von Xilinx. [[Xilinx Vivado|Siehe]] extra Seite.
 +
 
 +
===Altera FPGAs===
 +
Quartus Prime Lite Edition, Quartus II Web Edition software, ModelSim-Altera Starter Edition und Altera IP megafunctions benötigen keine Lizenzdatei und sind ohne Lizenz nutzbar. Viel Spaß beim Warten auf die E-Mail Verifikation, um die Software herunterzuladen.
 +
====Quartus Prime Lite Edition====
 +
Geeignet für Arria II, Cyclone IV, Cyclone V, MAX II, MAX V und MAX 10 FPGAs.
 +
[http://dl.altera.com/?edition=lite Hier] herunterladen und installieren.
  
 
==Projektstatus==
 
==Projektstatus==
 +
Dies ist der derzeitige Stand der Dinge im /dev/tal.
 +
:{{Wertung|rot}}JTAG-Adapter beschaffen
 
:{{Wertung|rot}}FPGA beschaffen
 
:{{Wertung|rot}}FPGA beschaffen
 
::{{Wertung|rot}}FPGA-Modul mit Spannungsversorgung verlöten
 
::{{Wertung|rot}}FPGA-Modul mit Spannungsversorgung verlöten
  
 +
Privat gibt es noch FPGAs bei [[Benutzer:Endres|Endres]] und [[Benutzer:phip|phip]].
 
[[Kategorie:Projekt]]
 
[[Kategorie:Projekt]]
 +
[[Kategorie:FPGA]]

Aktuelle Version vom 25. September 2017, 15:03 Uhr

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

     
Spaß mit FPGAs

Release status: beta [box doku]

Artix-7 XC7A100T CSG324ABX-00008265 crop.jpg
Description Wissen über FPGAs und derer Programmierung sammeln
Author(s)  phip
Platform  FPGA, PC/Laptop
Ein altes 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. Artix-7 bietet in Verbindung mit Vivado verglichen mit anderen verfügbaren FPGAs das Meiste für $Preis. Weitere FPGAs folgen bei Gelegenheit. Der Vollständigkeit halber gibt es noch einige Spartan-FPGA, die auf der Suche über den Weg liefen. Für diese ist die veraltete ISE zum Erstellen der Netzlisten nötig. ISE macht aber keinen Spaß mehr, wenn man ein mal mit Vivado gearbeitet hat. Der einzige Vorteil der alten und kleinen FPGAs ist, dass man bei der Erstellung der Netzliste für diese nicht so viel Zeit/RAM benötigt wie für größere FPGAs.

Hier Auflistung der bisher gefundenen, günstigen Angebote. Module zum Stecken/Löten benötigen einen eigenen JTAG-Programmierer (ca. 50-300 €).

Xilinx

FPGA Name Logik-Zellen Äquivalent DSP Slices Flipflops Verteilter RAM (Kb) Block-RAM (Kb) Preis [€] (Modul zum Stecken/Löten[L 1]) (GP) I/O Preis [€] (Entwicklerboard) (GP) I/O[L 2]
XC3S50A 1.584 – (3[L 3]) ? 11 54 Numato Lab Elbert V2
26,89
39
XC3S250E 5.508 – (16[L 3])  ? 38 216 Waveshare Evaluation Development Board
28,99
88 Papilio One 250K 40,36 48
XC3S500E 10.476 – (20[L 3]) ? 73 360 Papilio One 500K
63,70 69,05
48
XC6SLX9 9,152 16 11,440 90 576 Numato Lab Mimas
31,38
70
ZR TECH Espier III[L 1]
54,00
2[L 4]
XC7A15T 16.640 45 20.800 200 900 2x50 Pin FPGA-Modul
64,26
87
Digilent Cmod A7[L 5]
80,24
44+2[L 6]
XC7A35T 33.280 90 41.600 400 1.800 2x50 Pin FPGA-Modul
76,16
87 Digilent Arty
120,65
4×8, +Arduino, +ChipKit
Digilent Cmod A7[L 5]
95,21
44+2[L 6] Digilent Basys 3
132,92
83,87[L 7]
4×8
XC7A100T 101.440 240 126.800 1.188 4.860 2x50 Pin FPGA-Modul
117,81
87 Digilent Nexys 4 DDR
339,71
168,80[L 7]
4×8, 1×8 LVDS
  1. 1,0 1,1 JTAG Benötigt (ca. 40-300 € oder Einzelteileprojekt)
  2. auf dem Board sind noch zusätzlich andere Dinge über andere IOs abrufbar und ansprechbar
  3. 3,0 3,1 3,2 Multiplizierer
  4. insgesamt 22, jedoch teilen sich die IOs die FPGA-Pins mit PS/2 … und den Widerständen des VGAs
  5. 5,0 5,1 USB-JTAG im Breadboardmodul enthalten
  6. 6,0 6,1 Analog I/O
  7. 7,0 7,1 Preis gilt 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.

Xilinx Artix Pin-I/O

Beim Kauf von FPGAs ist drauf zu achten, ob das FPGA die Pins für den gewünschten Einsatz enthält. Die begehrten GTP-Transciever mit 6.6 Gb/s gibt es nur bei bestimmten Packungen. Hier eine „kleine“ Übersicht über die einzelnen Packungsgrößen und den Preis des kleinsten FPGAs und den Mengenrabatt bei Abnahme mehrerer. Beim Kauf muss noch berücksichtigt werden, dass Spannungswandler (3,3; 1,8; 1,0 V), Oszillatoren und andere Bauteile benötigt werden.

Packung GTP I/O XC7A…T Beispiel Preis [€] × 1 Preis [€] × x
CPG236 2 106 15-50 XC7A15T-1CPG236C 49,52 30,02 × 3
CSG324 0 210 15-100 XC7A15T-1CSG324C 53,23 38,72 × 3
CSG325 4 150 15-50 XC7A15T-1CSG325C 57,06 41,50 × 3
FTG256 0 170 15-100 XC7A15T-1FTG256C 42,57 30,96 × 4
{S,F}B{B,V}484 4 285 200 XC7A200T-1FBG484C 251,34 230,39 × 3
FGG484 4 250 15-100 XC7A15T-1FGG484C 65,64 47,74 × 3
FGG676 8 300 75-100 XC7A75T-1FGG676C 161,77 148,28 × 4
FB{G,V}676 8 400 200 XC7A200T-1FB676I 339,04 286,89 × 4
FF{G,V}1156 16 500 200 XC7A200T-1FFG1156C 332,31 281,18 × 4

Hier gibt es mehr fiese Feinheiten und eine Übersicht über Kintex und Virtex. FPGAs, die sich kaum ein Normalsterblicher leisten kann (z. B. XCVU440-3FLGA2892E für 82.506,70 €).

Altera

Microsemi

Ein Video stellt eindrucksvoll einen günstigen Einstieg in FPGAs abseits des Massenmarkts: mit IGLOO nano FPGAs von Microsemi lassen sich kleine Projekte verwirklichen und der Umgang mit FPGAs erlernen; ab 6 € geht es los.

Wie diese Winzlinge angesteuert werden wird hier nach dem Studium der Datenblätter bei Gelegenheit beschrieben stehen. Link

Mittlerweile gibt es schon IGLOO2 … ab 18 €

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 dank der nicht abschaltbaren WebTalk (Technologie) von Xilinx beschatten lassen.

ISE

ISE ist die alte (Oktober 2013) FPGA Design Suite. Sie wird für FPGA-Serien <7 benötigt. Es lassen sich nur Netzlisten für einige auserwählte FPGAs erstellen. Für andere FPGAs muss eine Lizenz erworben werden. Also aufgepasst beim FPGA-Kauf!

ISE wird nicht weiter entwickelt. Eine Installation auf modernen Linux-Systemen ist mit Einschränkungen bei der Konfiguration und Interaktion mit dem FPGA verbunden, sollte diese überhaupt klappen … Die erstellte Netzliste muss auf einem anderen Weg in den FPGA gelangen (wird bei Gelegenheit beschrieben).

Installation

hier herunterladen. 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

Vivado ist die neue FPGA Design Suite von Xilinx. Siehe extra Seite.

Altera FPGAs

Quartus Prime Lite Edition, Quartus II Web Edition software, ModelSim-Altera Starter Edition und Altera IP megafunctions benötigen keine Lizenzdatei und sind ohne Lizenz nutzbar. Viel Spaß beim Warten auf die E-Mail Verifikation, um die Software herunterzuladen.

Quartus Prime Lite Edition

Geeignet für Arria II, Cyclone IV, Cyclone V, MAX II, MAX V und MAX 10 FPGAs. Hier herunterladen und installieren.

Projektstatus

Dies ist der derzeitige Stand der Dinge im /dev/tal.

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

Privat gibt es noch FPGAs bei Endres und phip.