Forum: FPGA, VHDL & Co. FPGAs von Board abnehmbar? [Anfängerfrage]


von Julian M. (Gast)


Lesenswert?

Hallo liebe Forengemeinde,

ich bin Anfänger auf dem Gebiet FPGAs und habe eine wichtige Frage:

Wenn ich mir die Entwicklerboards für FPGAs so anschaue, dann sehen sie, 
im Unterschied zu Mikrocontrollerboards, irgendwie nicht so aus, als 
könne man den FPGA programmieren (bzw. konfigurieren) und danach 
abnehmen, um ihn in eine andere Schaltung einzubauen. Mir kommt es so 
vor, als seien diese FPGA-Boards nur dazu da, um eine Schaltung mit den 
Tastern und LEDs auszuprobieren. Ist das so oder täusche ich mich da und 
es lassen sich FPGAs (trotz aller technischer Unterschiede) prinzipiell 
genauso konfigurieren und dann verwenden wie Mikrocontroller?
Wie ist das dann mit verschiedenen Fassungen und Gehäusen? Gibt es dann 
auch Adapterplatinen wie z.B. beim STK600 von Atmel?

Danke schon mal im Voraus!

von dave (Gast)


Lesenswert?

>dann sehen sie, im Unterschied zu Mikrocontrollerboards, irgendwie nicht so >aus, 
als könne man den FPGA programmieren (bzw. konfigurieren) und danach
>abnehmen, um ihn in eine andere Schaltung einzubauen


Das geht i.d.R. nicht.
Ist aber auch bei µC-boards ungewöhnlich.
Jedenfalls wenn der µC mehr als eine Handvoll Pins hat. :-)

von Christian R. (supachris)


Lesenswert?

Das würde überhaupt nichts bringen. FPGAs haben in der Regel* keine 
internen Flash-Speicher. Die Konfig-Daten sitzen in einem exra Flash. 
Außerdem haben die allermeisten FPGAs BGA Gehäuse, da ist das eh 
schwierig mit Fassungen. Frequenzen von mehreren hundert MHz kommen noch 
dazu.
Ein FPGA ist was grundsätzlich anderes als in µC, auch wenn beide aus 
Silizium sind :)

*Ausnahmen gibts natürlich: Spartan 3AN, Lattice MachXO.

von user (Gast)


Lesenswert?

Man baut auf ein FPGA Board einen JTAG Anschluss drauf, damit kann man 
dann das FPGA und das Flash beschreiben. Man brauch dazu nur einen 
JTAG-Adapter von einem FPGA-Hersteller oder einen Nachbau

von user (Gast)


Lesenswert?

Für Altera wäre das der USB-Blaster

von Julian M. (Gast)


Lesenswert?

Danke für Eure Antworten.

So wie ich es jetzt verstehe - korrigiert mich wenn ich falsch liege - 
dann ist so ein FPGA-Board also dazu da, um die eigene Spezifikation 
einmal in echter Hardware auszuprobieren, also mit Logikgattern und 
FlipFlops so weiter und eben nicht nur am PC. Also quasi eine erweiterte 
Simulation, die so nah wie möglich an einen eventuellen fertigen IC 
herankommt - mit allen Vor- und Nachteilen.

Wenn ich - nur mal angenommen - für eine Kleinserie eine eben solche 
erfolgreich getestete Spezifikation als einbaufähigen IC haben will, 
dann muss ich mich wohl an einen Halbleiterfertiger wenden, oder? Und da 
habe ich dann wahrscheinlich sehr hohe Initialkosten und 
Mindestabnahmemengen.
Weiß da jemand Näheres?

PS:
Versteht mich nicht falsch - ich werde bestimmt nicht als Neuling gleich 
1000 ICs fertigen lassen, die ich dann womöglich in die Tonne treten 
kann, weil ich einen Fehler gemacht habe. Ich frage mehr hypothetisch.

von Andreas D. (rackandboneman)


Lesenswert?

Evtl suchst Du eher einen CPLD als einen FPGA!

von Der Weise (Gast)


Lesenswert?

Bei einer solch kleinen Serie, ist es gewiss günstiger, auch in der 
Produktion einen FPGA zu verwenden. Dafür sind die nämlich auch da, wenn 
eine eigene Fertigung zu teuer wäre. Man muss halt nur einen Flash mit 
der Konfiguration auf dem Board mit unterbringen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Julian M. schrieb:
> So wie ich es jetzt verstehe - korrigiert mich wenn ich falsch liege -
> dann ist so ein FPGA-Board also dazu da, um die eigene Spezifikation
> einmal in echter Hardware auszuprobieren, also mit Logikgattern und
> FlipFlops so weiter und eben nicht nur am PC.
Nein, ein FPGA ist wie ein SPeichermodul im PC, das auch erst beim nach 
dem Anlegen von Spannung "sein Programm" bekommt...

> Also quasi eine erweiterte
> Simulation, die so nah wie möglich an einen eventuellen fertigen IC
> herankommt - mit allen Vor- und Nachteilen.
Das machen einige (wenige)...

Julian M. schrieb:
> lassen sich FPGAs (trotz aller technischer Unterschiede) prinzipiell
> genauso konfigurieren und dann verwenden wie Mikrocontroller?
FPGAs werden idR. beim Start aus einem Flashbaustein geladen und sind 
danch konfiguriert.

> Wie ist das dann mit verschiedenen Fassungen und Gehäusen? Gibt es dann
> auch Adapterplatinen wie z.B. beim STK600 von Atmel?
Wozu?

Julian M. schrieb:
> Versteht mich nicht falsch - ich werde bestimmt nicht als Neuling gleich
> 1000 ICs fertigen lassen, die ich dann womöglich in die Tonne treten
> kann, weil ich einen Fehler gemacht habe.
Solche Mindestückzahlen wickelst du normalerweise nicht über ein ASIC 
ab. Dafür ist ein FPGA genau das richtige.

Julian M. schrieb:
> Wenn ich - nur mal angenommen - für eine Kleinserie eine eben solche
> erfolgreich getestete Spezifikation als einbaufähigen IC haben will,
> dann muss ich mich wohl an einen Halbleiterfertiger wenden, oder?
Frag einfach mal bei NEC an.
> Und da habe ich dann wahrscheinlich sehr hohe Initialkosten und
> Mindestabnahmemengen.
Aber unter 50000 ist die Sache eigentlich witzlos.
> Weiß da jemand Näheres?
Es gab/gibt Migrationspfade vom FPGA auf einen ASIC. Und der Trick ist, 
dass du dann erst mal mit der richtigen Hardware dein Produkt anfahren 
kannst, und danach auf das "billige" ASIC umsteigen.

von Christian R. (supachris)


Lesenswert?

Was genau willst oder sollst du eigentlich machen? Wie schon mehrfach 
gesagt, FPGAs sind SRAM-basiert, programmieren und ausbauen ist sinnlos. 
Du brauchst fast immer den externen Flash. FPGA Demoboards sind zur 
Demonstration der Leistungsfähigkeit, besonders bei neuen FPGAs und zur 
Beschleunigung der Entwicklung eigener Boards. Die Boards haben alles 
mögliche an Peripherie drauf, damit man so viel wie möglich Features 
testen kann (PCIe, GIBit LAN, USB....), außerdem Erweiterungs-Stecker 
für eigene Hardware. Somit ist man in der Lage, relativ schnell die 
eigene Zielhardware zu realisieren, ohne erst monatelang das 
erforderliche 8-Lagen Board zu designen. Außerdem gibts durch die Boards 
gleich Anregungen und Vorschriften, wie spezielle Sachen zu routen sind, 
wie die externen Komponenten angeschlossen werden usw.
Also schreib doch erst mal, was du eigentlich machen sollst oder willst.

von Fpgakuechle K. (Gast)


Lesenswert?

Julian M. schrieb:
> Danke für Eure Antworten.
>
> So wie ich es jetzt verstehe - korrigiert mich wenn ich falsch liege -
> dann ist so ein FPGA-Board also dazu da, um die eigene Spezifikation
> einmal in echter Hardware auszuprobieren, also mit Logikgattern und
> FlipFlops so weiter und eben nicht nur am PC. Also quasi eine erweiterte
> Simulation, die so nah wie möglich an einen eventuellen fertigen IC
> herankommt - mit allen Vor- und Nachteilen.

Njein, Prototyping ist eine selten gewordenen Anwendung von FPGA's.
FPGA's sind heute nicht mehr so teuer (40 € für nen Spartan-6 oder 
weniger)
und man locker designs mit 100 MHz und mehr laufen lassen. Auch 
Grosserien (Einbau-Navis Mercedes/BMW/Audi) werden mit FPGA's aufgebaut, 
ASICs lohnen sich immer weniger (außer Mixed-Signal, LowPower 
(Batteriebetrieb) und bei richtigen Grossserien (0.2M -1M).

FPGA's findest du heute in Medizintechnik, Industriee-Automatisierung, 
basestations, Nicht-Massenmarkt Kommunikation (Avionik, Security).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Fpga Kuechle schrieb:
> FPGA's sind heute nicht mehr so teuer
Und dann bietet auf Nachfrage jeder FPGA-Hersteller bei fertigem Design 
auch Migrationspfade an:
http://www.xilinx.com/products/silicon-devices/fpga/easypath-6/index.htm
Hier werden teildefekte FPGAs oder solche, die das Timing nicht 
einhalten und deshalb durch den Test fallen, weiterverwendet. Du darfst 
dann aber nicht mehr sagen: Ich kann (weil FPGA) mein Design 
nachträglich noch anpassen und Fehler beheben.

von Fpgakuechle K. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Fpga Kuechle schrieb:
>> FPGA's sind heute nicht mehr so teuer
> Und dann bietet auf Nachfrage jeder FPGA-Hersteller bei fertigem Design
> auch Migrationspfade an:
> http://www.xilinx.com/products/silicon-devices/fpga/easypath-6/index.htm
> Hier werden teildefekte FPGAs oder solche, die das Timing nicht
> einhalten und deshalb durch den Test fallen, weiterverwendet.

Nicht verwechseln! Es gibt echte FPGA zu ASIC Migration und es gibt 
diese Xilinx Pseudo-geschichte. Bei erstere gibt es zwei weitere 
Varianten -> Konversation auf Logigelement Ebene und auf Gatterebene. 
bei der logikelementgeschichte hat der ASIC dann ähnliche FPGA-ähnliche 
Makrozellenzellen (z.B. LUT's die (maskenprogrammierbare) ROMS sind). 
Dann kann man die netzliste nach der Synthese übernehmen. bei der 
zweiten beginnt die Umsetzung schon mit der Synthese.

Diese Xilinx-Geschichte ist m. E. nicht besonders lohnenswert. 2004 hab 
ich das mal durchgerechnet. Einrichtungskosten von einigen 10 k€ und
der Preisnachlass bewegte sich pro FPGA (Spartan-3) auf weniger als 1€.

MfG,

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Fpga Kuechle schrieb:
> 2004 hab ich das mal durchgerechnet.
Da gabs die Generation 6 noch nicht. Erst seither verspricht Xilinx:
1
Lowest total product cost:
2
    Zero re-engineering cost
3
    Zero risk of functionality or timing mismatch
4
    Zero re-qualification costs
5
    Zero risk of cost over-runs due to silicon respins
6
    Competitive NRE for 40nm solution
7
8
Guaranteed 35% price reduction*
9
*Relative to Virtex-6 price book at same volume quantity.

von Stefan W. (wswbln)


Lesenswert?

...ich denke, Julian M. hat da noch ein prinzipielles 
Verständnisproblem:

FPGAs werden zwar durch RAM-Zellen konfiguriert, bringen aber immer 
einen oder mehrere Mechanismen mit um nach dem Power-up konfiguriert zu 
werden oder sich selber zu konfigurieren. Bei manchen ist ein 
Konfig-Flash mit eingebaut oder man hängt es mit mehr (parallell-Flash) 
oder weniger (serial-Flash) Pins an das FPGA. Dieses liest dann, nachdem 
das Reset-Signal inaktiv wird, zunächst die Konfigurationsdaten vom 
Flash in die RAM-Zellen und nimmt dann seine Arbeit auf. Dieser Vorgang 
dauert normalerweise einige wenige Milisekunden und ist somit nach außen 
kaum "spürbar". Das Konfig-Flash wird entweder extern programmiert 
(parallel-Flash mit Sockel, heutzutage eher unüblich) oder während der 
Produktion über (JTAG-)Adapter mit ein paar Pins.

Klarer jetzt?

von Carsten S. (dg3ycs)


Lesenswert?

Stefan Wimmer schrieb:
> ...ich denke, Julian M. hat da noch ein prinzipielles
> Verständnisproblem:
>
Das denke ich auch...

Um das über Stefans (Korrekten) Beitrag hinaus noch weiterzuerklären 
glaube ich das hier beim TE auch eine etwas "falsche" Vorstellung von 
Entwicklungsboards auch auf µC Seite existiert.

Die Boards wie das STK500 von Atmel sind alles andere als "typisch" für 
die Entwicklungsboard. Das STK500 ist eine Mischung aus 
Programmiergerät, Test- und Minimaldemobard gedacht für absolute 
Neueinsteiger.

Letzendlich ist das über die Programmierfunktion hinaus ja auch nicht 
mehr als das was man sich auch in ein paar Minuten auf einer 
Lochrasterplatine aufbauen kann.

Niemand der sich mehr oder weniger Professionell mit der µC Entwicklung 
befasst programmiert ernsthaft seine Bausteine die er in die Geräte 
einsetzt mit einem Demoboard. Da nimmt man dann schon einen richtigen 
Adapter. Und erst Programmieren und dann umstecken ist sowieso "out". 
Das macht man nur wenn es sich gar nicht anders realisieren lässt - weil 
der Baustein es nicht unterstützt oder die Notwendigen Leitungen mit 
Peripherie die zum Prog-Vorgang inkompatibel ist belegt werden musste. 
Alles andere wird nach dem Bestücken "in Circuit" Programmiert.

Im Professionelleren Umfeld werden Demoboards genutzt wenn die Zielhard- 
und Software viel komplexer ist als alles was man mal ebend so auf 
Lochraster aufbaut. Wenn zum Beispiel eine Schaltung gleichzeitig 
Ethernet, CAN und ein TFT-Touch Display betreiben soll.

Dann sucht man sich unter all den für einen selbst In frage kommenden 
Herstellern ein Demoboard welches den Anforderungen am nächsten kommt.
Meist ist dann sogar noch einiges Mehr an Funktion vorhanden, da die 
Hersteller mit einem Board ja ein weites Feld abdecken wollen und die 
Kunden ja die unterschiedlichsten Wünsche haben.

Zu diesem DemoBoard gehören dann auch Beispielprogramme die damit schon 
laufen. Der Entwickler hat also ein System vor sich das bereits in den 
Grundlagen funktioniert.
Davon ausgehend beginnt man nun erst einmal seine eigene Anwendung zu 
entwickeln und zu probieren ob das überhaupt so wie vorgestellt 
realisiserbar ist. Da die HArdware garantiert funktioniert sind eine 
MEnge fehlerquellen schon mal ausgeschlossen. Wenn man doch mal zweifelt 
ob man vielleicht doch die Hardware jetzt "gekillt" hat spielt man das 
Demoprogramm wieder auf und kann testen.

Irgendwann hat man einen Stand erreicht wo man auf dem Board nicht mehr 
weiterkommt. Dann geht es ans HArdwaredesign. Dazu streicht man dann von 
der Schaltung alles weg was man nicht braucht und übernimmt den REst 
mehr oder weniger genau einfach für sein eigenes Produkt. Steht die 
Zielhardware dann spielt man die Software auf die auf dem Demoboard 
läuft und kann testen ob die auch auf der Zielhardware läuft. Tut sie es 
nicht hat man ein Hardwareproblem und kann geziehlt nach dem Problem 
suchen.

Man spart sich so eine Menge Zeit beim Suchen nach FEhlern wo man ohne 
Board einfach nur rätseln würde ob die Software, die Hardware oder aber 
beides Fehlerhaft ist.
Zudem kann man bereits Sachen testen -manchmal sogar ob es sich 
überhaupt realisieren lässt- bevor auch nur ein einziger Widerstand 
gelötet werden muss. Auch sind die Beispielprogramme explizit nicht nur 
als DEMO gedacht sonder um direkt vom Entwickler als Ausgangsbasis 
genutzt zu werden.

Bei Einfachstschaltungen wie auf dem STK500 spielt das keine große 
rolle, aber es gibt nicht wenige so komplexe Demoboards wo ein 
Entwickler erst einmal eine Woche Hardwaredesign machen muss um den 
Stand zu erreichen den so ein Board schon bietet. Und dann ist es immer 
noch virtuell und muss noch gefertigt werden. Wenn erst danach rauskommt 
das der Ansatz falsch war ist viel viel Geld verdampft...

Für viele Dinge die Einsteiger machen oder selbst für einfache 
Industriegeschichten braucht man sicher kein Entwicklungsboard. Fast die 
ganze Bandbreite der 8Bit µC kann man realistisch bearbeiten ohne je ein 
Dev. Board in die Hand zu nehmen. Aber je komplexer und Schneller die 
Anwendungen werden um so wichtiger werden diese Boards. Im 32Bit µC 
Bereich sind sie schon die REgel. Da hat man nicht selten auch schon mal 
vier Layer Platinen usw.

Und im FPGA Bereich arbeitet wohl keiner Ernsthaft mehr ohne 
Entwicklungshardware. Zumindest nicht bei völligen Neuentwicklungen.
Einzig wo bestehende Systeme abgeändert werden ist es auch üblich die 
alten Systeme als Ausgangspunkt zu nutzen...

Wie schon von den Vorschreibern angedeutet:
Im FPGA Bereich hat man fast immer deutlich mehr als zwei Lagen. 
Vierlagige Platinen sind nur bei kleinen FPGA noch machbar. Zweilagig 
nur bei den kleinsten Vertretern und unter verzicht auf mögliche 
Leistungsmerkmale. Die Großen fordern dann schon mal 8 und mehr Lagen.
Und das schon um nur mal ein Lämpchen leuchten zu lassen.

Deshalb sind hier selbst für einfache Sachen die Demoboards aktuell.
Man portiert also nicht den programmierten Chip, sondern man kopiert den 
gesamten für einen selbst relevanten Schaltungsteil des Demoboards auf 
sein Design und programmiert den dortigen Chip dann InCircuit.

Gruß
Carsten

von Julian M. (Gast)


Lesenswert?

OK, ich glaube ich habe das jetzt einigermaßen verstanden. Danke noch 
mal.
Ich komme aus der Informatik und deshalb ist Elektrotechnik sowie diese 
Art von Hardware Neuland für mich (wenngleich wir VHDL, Rechenwerke 
(z.B. Addierer), FlipFlops, Register usw. im Studium behandeln).

Den Schluss, den ich daraus ziehe ist, dass es für einen Anfänger das 
beste ist, sein Projekt auf einem fertigen FPGA-Board zu realisieren.

Dazu jetzt noch eine Frage:
Ist es mir möglich von einem PC aus via USB mit dem FPGA zu 
kommunizieren? Gibt es da einen Treiber oder so etwas? Oder vielleicht 
ein Projekt, das irgendwie einen FPGA mit einem Computer verwendet und 
wo ich sehen kann wie sowas funktioniert. Ich meine jetzt nicht das 
Konfigurieren, sondern anschließend während des "Betriebs".

Mein Ziel ist es, Berechnungen, die auf einer CPU oder einer GPU zu 
langsam sind, auf einen FPGA auszulagern (quasi eine spezialisierte 
ALU). Die gewonnenen Daten sollen dann allerdings wieder am PC 
verarbeitet werden (denn hier kann ich dann eine GUI und anderen 
Schnickschnack ganz einfach dazuprogrammieren). Dabei will ich natürlich 
auch etwas lernen und ausprobieren, wie z.B. Pipelining.

von Christian R. (supachris)


Lesenswert?

Für einen Anfänger wäre eine (USB) basierte serielle Schnittstelle schon 
mal genug Arbeit. Wenn es schneller gehen muss, dann vielleicht einen 
schnelleren USB Controller wie Cypress FX2 oder FTDI FT232H.
Mich beschleicht irgendwie das Gefühl, dass du Bitcoins generieren 
willst und mal gelesen hast, dass das mit FPGAs schnell geht. Irgendwie 
klingt das alles so. Lös dich aber bitte auf jeden Fall von dem 
Gedanken, ein FPGA sei so etwas, wie ein schneller µC.

von MoritzS (Gast)


Lesenswert?

Falls letzteres der Fall sein sollte (auch ich bekam diesen Verdacht) 
und das entsprechende Projekt auf Hackaday noch nicht kennst:
http://hackaday.com/2011/08/22/fpga-bitcoin-miner-is-probably-the-most-power-efficient/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.