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!
>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. :-)
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.
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
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.
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.
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.
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.
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).
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.
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,
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. |
...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?
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.