Kann mir jemand bitte in zwei drei einfachen Sätzen sagen was ein FPGA ist und wo man ihn einsetzt? Werden darauf veränderliche logische Gatter realisiert ?
lmaxlck schrieb: > Kann mir jemand bitte in zwei drei einfachen Sätzen sagen was ein FPGA > ist und wo man ihn einsetzt? Nein, solche Sätze müssen lang sein, dann sind sie aber nicht einfach. Wenn du es deutsch brauchst dann liess in der FPGA - ist aber nicht unbedingt leichtverdaulich, weil typisch WP weder stringent noch pädagogisch aufbereitet. https://de.wikipedia.org/wiki/Field_Programmable_Gate_Array Gut aufbereitet ist dagegen das Zynq-book. Das kaut allerdings gleich alles bis zum SoC durch: http://www.zynqbook.com/ Auf deutsch und nicht kostenlos wäre dieses, was auch die professionelle produktentwicklung einschliesst: ISBN: 3-446-21288-4
Guck dir mal so eine Produktübersicht an, da steht dabei was verbaut ist: https://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf In Zynqs sind dann noch normale Prozessoren und so mit dabei, also ein ARM SoC mit FPGA in einem Bauteil. lmaxlck schrieb: > Werden darauf veränderliche logische Gatter > realisiert ? Das FPGA verhält sich so, als seien dort veränderliche logische Gatter verbaut. Aber das ist natürlich nicht der Fall. Ein FPGA ist ein Chip der nicht verändert wird. Es wird nur das Verhalten geändert. Das geschieht auch nicht durch echte logische Gatter, sondern durch LUTs. Bei der Konfiguration werden werte in die LUTs geschrieben. Danach kann man so eine LUT wie eine logische Schaltung verwenden. Man kann die LUT aber auch als Speicher verwenden.
Ich würde es so sagen: Eine Ansammlung von ungeheuer vielen Gattern und Flipflops, und ganz ungeheuer vielen Verbindungsleitungen zwischen ihnen. Die Verbindungsleitungen lassen sich durch Programmieren durchgängig schalten oder deaktivieren. Bei den Gattern handelt es sich um Wahrheitstabellen, deren Inhalt und damit deren Funtion ebenfalls programmierbar ist, meist haben sie vier oder sechs Eingänge. Mit einem FPGA kann man eine komplexe logische Schaltung realisieren, ohne etwas löten zu müssen.
C. A. Rotwang schrieb: > weil typisch WP weder stringent noch > pädagogisch aufbereitet. > > https://de.wikipedia.org/wiki/Field_Programmable_Gate_Array Das liegt daran, dass dort mehrere Leute zu unterschiedlichen Zeiten der Geschichte der FPGAs Beiträge aus ihrer Sicht eingebracht haben. Ich selber habe da auch schon Hand anlegen müssen, um es leserlicher zu machen, man scheitert aber regelmäßig, eine didaktisch sinnvolle Struktur durchzubringen, wenn man beginnt, Teile rauszustreichen oder umzuändern. Wenn ein Artikel erst einmal ein gewisses Gewicht hat, scheut sich jeder die Streichung seiner Passage zu akzeptieren oder die Umgestaltung durch einen anderen WP-Autor hinzunehmen. Wer aber nur 3 Sätze haben will, ist mit der Einleitung gut bedingt. Die haben schon Hunderte Studenten und Diplomanden genau so abgeschrieben. * Korrektur: Wie ich gerade sehe, wurde doch wieder von anderen rumgefummelt. Wenn ich schon sehe, dass die Begriffsdefinition Logikgatter auf Heise und einen Ego-Shooter zurückgeführt wird (siehe die jüngste Änderung) ist das wohl wieder mal änderungsbedürftig :-(
:
Bearbeitet durch User
Ich frage mich immer wieder, warum es in der heutigen Zeit nicht möglich ist, sich solch eine allgemeine Frage sich selber zu beantworten. Ich will nicht wissen, wie oft diese Frage alleine schon hier im Forum beantwortet wurde. Wenn man sich den Suchmaschinen des Internets bedient, dann kommt man auch sehr schnell auf eine Antwort. Oder anders gesagt: Was erwartet sich der Fragende hier für eine Antwort zu bekommen, die so nicht auf z. B. Wikipedia steht? Schade schade schade
Jürgen S. schrieb: > C. A. Rotwang schrieb: >> weil typisch WP weder stringent noch >> pädagogisch aufbereitet. >> >> https://de.wikipedia.org/wiki/Field_Programmable_Gate_Array > > Das liegt daran, dass dort mehrere Leute zu unterschiedlichen Zeiten der > Geschichte der FPGAs Beiträge aus ihrer Sicht eingebracht haben. Die Anschlussfrage, die folgt, ist: 'Warum gibt es den diese verschiedene Ansichten bei der Definition zu FPGA'? IMHO liegt es daran das es keine (oder nur gering verbreitetet) verbindlichen Lebrbuchtexte zu diesem Bauteil gibt und das ganz im Unterschied zu Transistor, Memory etc.. Dort habe sich bereits mehrer Lehrerkonferenzen o.ä. zusammengefunden um einheitliche Definitionen zu finden, die man auch in Landesweiten Prüfungen abfragen kann. Und wenn man ein Lexikontypisch-kurze Definition verfasen möchte, ist man bei FPGA gezwungen jede Menge Fachbegriffe und 'grundlagen' zu verwenden, die an anderer Stelle der wikipedia auch nicht erklärt werden. Beispielsweise "Gate-Array", ASIC-Topologie, TTL-Grab, Clock-tree,interconnect. Viele Begriffe, die sich fast ausschliesslich im 'Praktiker-Jargon' finden und da auch nur im historischen Kontext. > Ich > selber habe da auch schon Hand anlegen müssen, um es leserlicher zu > machen, man scheitert aber regelmäßig, eine didaktisch sinnvolle > Struktur durchzubringen, wenn man beginnt, Teile rauszustreichen oder > umzuändern. Ich hab mal den aktuellen Stand mit dem letzen verglichen an dem ich beteiligt war (vor über 10 Jahren). Inhaltlich scheint das meiste geblieben, es könnten immer noch viel mehr Schemas sein (Blockstrukturen FPGA, Entwurfs-Worflow, built tool chain, Screenshoots bestimmender Arbeitsschritte) aber diese anzufertigen geht über das Zeitbudget des typischen WP-Tippheinis ;-), von lizenzrechtlichen Problemen (Screenshoots) gabz abgesehen.
C. A. Rotwang schrieb: > von lizenzrechtlichen Problemen (Screenshoots) gabz abgesehen. Ja, das ist immer schwierig. Ganz pragmatisch können wir ja jetzt unsere Versuche und Basteleien mit GHDL/Verilator, GTKwave, Yosis, NextPNR nutzen um den Artikel aufzuhübschen. Ich glaube mich zu erinnern in den SymbiFlow Vorträgen gibt es auch Graphiken über den kompletten Toolflow die wohl auch frei lizenziert sind.
"FPGA" ist aber auch ein sehr weites Feld. Häufig meint man damit die LUTs und FFs, aber moderne FPGAs haben drum herum noch jede Menge Blöcke auf dem Chip, manchmal auch CPUs. Das sind also so Zwitter zwischen ASIC und FPGA wobei ... ich finde ja generell, dass auch FPGAs ASICs sind. Nur das AS ist eben dabei die Anwendung, dass es konfigurierbar ist aber genau wie bei ASICs wird der Chip nicht verändert, er verhält sich nur anders je nach Konfiguration. Also wo man sonst sagt das ist eben ein ASIC der enthält eine CPU/Netzwerkswitch/... so ist für mich auch das FPGA ein ASIC und das enthält eben eine Schaltung die es ermöglicht das Verhalten des Chips zu verändern.
Gustl B. schrieb: > Also wo man sonst sagt das ist eben ein ASIC der enthält eine > CPU/Netzwerkswitch/... so ist für mich auch das FPGA ein ASIC und das > enthält eben eine Schaltung die es ermöglicht das Verhalten des Chips zu > verändern. So wie sich dein Beitrag liest, vermute ich dass du den Begriff ASIC falsch verstehst (oder jedenfalls anders als ich :-)) ASIC: Application Specific Integrated Circuit, auf deutsch am ehesten kundenspezifischer integrierter Schaltkreis ASSP: Application Specific Standard Product synonym zu COTS: Commercial Off The Shelf, auf deutsch am ehesten Katalogprodukt Ich gebe dir recht, das digitale ASICs und FPGAs aus Anwendersicht stark verwandt sind. Immer wenn man keine passenden ASSPs in den Katalogen findet, dann muss man selber ran und baut eben eine Anwendungsspezifische Logik. Diese kann dann in einen FPGA oder ASIC, je nach Stückzahl/Clockfrequenz.
Gustl B. schrieb: > "FPGA" ist aber auch ein sehr weites Feld. Häufig meint man damit die > LUTs und FFs, aber moderne FPGAs haben drum herum noch jede Menge Blöcke > auf dem Chip, manchmal auch CPUs. Aus didaktischen Gründen würde ich da sehr strikt sein und unter FPGAs nur die Bausteine/Chipbereich mit LUTs, FFs und Routing Miteinschliessen. Alles erweiterte sind dann System-on-Chip. Ähnlich zu modernen Prozessoren, didaktisch ist beschränkt was ein Prozessor ist, dass ein moderner "CPU" (eben auch ein SoC) auch RAM Controller und GPU enthält wird erwähnt aber es gehört nicht zum Prozessor.
Christoph Z. schrieb: > sehr strikt sein und unter FPGAs > nur die Bausteine/Chipbereich mit LUTs, FFs und Routing > Miteinschliessen. Praktisch bringt doch jedes aktuelle FPGA noch eine umfangreiche Sammlung an zusätzlichen Macros mit: Block-RAM, DSP-Blöcke, Phaser, Serdes, IO-Buffer, PLLs/DCMs usw. usw. Kann heute überhaupt noch ein in Deinem Sinn "reines" FPGA (nur LUTs, FFs und Interconnect) kaufen?
Christoph Z. schrieb: > Aus didaktischen Gründen würde ich da sehr strikt sein und unter FPGAs > nur die Bausteine/Chipbereich mit LUTs, FFs und Routing > Miteinschliessen. Macht Sinn, ja, passt aber nicht so recht zur Realität. Da kauft man einen FPGA und bekommt in SoC (wobei ich auch FPGAs ohne CPU als SoC bezeichnen würde, da ist ja neben den LUTs und FFs noch viel weiteres Zeug dabei). Christoph Z. schrieb: > Alles erweiterte sind dann System-on-Chip. Kann man so sehen, aber dann ist eigentlich alles da draußen ein SoC. Zumindest alles was etwas komplexer ist.
Burkhard K. schrieb: > Praktisch bringt doch jedes aktuelle FPGA noch eine umfangreiche > Sammlung an zusätzlichen Macros mit: Block-RAM, DSP-Blöcke, Phaser, > Serdes, IO-Buffer, PLLs/DCMs usw. usw. Sagen wir mal die Software bringt das mit. > Kann heute überhaupt noch ein in > Deinem Sinn "reines" FPGA (nur LUTs, FFs und Interconnect) kaufen? Wieso sollte sich der Begriff "Gate Array" mit diesen Elementen beissen? Der Gate Array Teil bleibt ja immer und die anderen Elemente sind funktionell nötig (PLL, IOB-Driver, Serdes). Über embedded CPUs kann man diskutieren. Das gehört schon in den SoC - Bereich.
weltbester FPGA-Pongo schrieb im Beitrag #6424569: > Wieso sollte sich der Begriff "Gate Array" mit diesen Elementen beissen? Die Beschränkung auf LUTs, FFs und Interconnects war nicht mein Vorschlag. weltbester FPGA-Pongo schrieb im Beitrag #6424569: > Über embedded CPUs kann man diskutieren. Das gehört schon in den SoC - > Bereich. Ack. Hier würde ich auch die Grenze zwischen FPGAs und SoCs ziehen.
weltbester FPGA-Pongo schrieb im Beitrag #6424569: > Über embedded CPUs kann man diskutieren. Das gehört schon in den SoC - > Bereich. Burkhard K. schrieb: > Ack. Hier würde ich auch die Grenze zwischen FPGAs und SoCs ziehen. Lassen wir also die CPU weg. Auch dann ist eine Erklärung von "FPGA" sehr unvollständig wenn man BRAM,MMCM/SerDes/PCIe/DSP/Ethernet/XADC/ ... weglässt. Ja, das was der Entwickler hauptsächlich anpassen kann sind die LUTs und FFs, aber ohne die anderen Bestandteile wäre ein aktuelles FPGA nur ein Schatten seiner selbst. Ohne BRAM oder DSP wären schon viele der Vorteile gegenüber kleinerer SoCs mit CPU weg.
Christoph Z. schrieb: > Gustl B. schrieb: >> "FPGA" ist aber auch ein sehr weites Feld. Häufig meint man damit die >> LUTs und FFs, aber moderne FPGAs haben drum herum noch jede Menge Blöcke >> auf dem Chip, manchmal auch CPUs. > > Aus didaktischen Gründen würde ich da sehr strikt sein und unter FPGAs > nur die Bausteine/Chipbereich mit LUTs, FFs und Routing > Miteinschliessen. Nein, das entspricht nicht der technischen Entwicklung. Kleine SRAM-Speicherblöcke werden seit Jahrzehnten neben den simplen Gattern als Schaltungselemente eingesetzt. Beim 4004 waren es die Registerbänke, bei Videosopelen wie Pong kleine ROMS als Zeichengenerator, Speicher bei FSM zur Realisierung der Abbildungsfunktionen. Ebenso (single ended) I/O Blöcke, deren Configuration (Drive strength, SlewRate,Pulls) muss man auch beherrschen will man den FPGA aufs PCB nageln. Man könnte eine Trennung in FPGA und CPLD setzen, wenn man anhand des Routings unterscheidet. CPLD's haben 'vorhersehbares Routing und garantieren damit eine maximale Taktfrequenz, FPGA's nicht. Deshalb muss man beim FPGA stärer ins Place&Route einsteigen. (STA,floorplanning, dedicated routing) > Alles erweiterte sind dann System-on-Chip. Ähnlich zu > modernen Prozessoren, didaktisch ist beschränkt was ein Prozessor ist, > dass ein moderner "CPU" (eben auch ein SoC) auch RAM Controller und GPU > enthält wird erwähnt aber es gehört nicht zum Prozessor. Ja und Nein, An dem Chip kann man diese Trennung IMHO nicht klar machen, da man auch 'alte' FPGA's (Spartan-2) an eine externe CPU klöppeln kann (Bspw PCI32-bridge, speicherbus) in den FPGA ein Wishbone-Bus setzt und man hat auch ein 'System' zur freien Programmierung. Trennen kann man aber die Tätigkeitsfelder der Entwickler, 'reiner FPGA' ist digitaler Schaltungsentwurf, während es bei Embedded Systemen dann zum Systementwurf wird, bei dem die Schaltungstechnik darunter weniger interessiert und auch vom System-Entwickler kaum nocht verstanden wird. Der schlägt sich dann lieber mit Hardware-AbstraktionsLayer, Datentransferprotokolldefinitionen, Interruptssystem etc rum. Ich seh das ähnlich dem Unterschied zwischen System-, Applikations- undEmbedded Programmierer. Der Chip ist gleich aber die Entwurfsschritte und die tools die diese Herren benutzen eher unterschiedlich. Und viele, die das eine beherrschen, können das andere eher rudimentär bis garnicht.
Gustl B. schrieb: > Christoph Z. schrieb: >> Aus didaktischen Gründen würde ich da sehr strikt sein und unter FPGAs >> nur die Bausteine/Chipbereich mit LUTs, FFs und Routing >> Miteinschliessen. > > Macht Sinn, ja, passt aber nicht so recht zur Realität. Da kauft man > einen FPGA und bekommt in SoC (wobei ich auch FPGAs ohne CPU als SoC > bezeichnen würde, da ist ja neben den LUTs und FFs noch viel weiteres > Zeug dabei). Burkhard K. schrieb: > Praktisch bringt doch jedes aktuelle FPGA noch eine umfangreiche > Sammlung an zusätzlichen Macros mit: Block-RAM, DSP-Blöcke, Phaser, > Serdes, IO-Buffer, PLLs/DCMs usw. usw. Kann heute überhaupt noch ein in > Deinem Sinn "reines" FPGA (nur LUTs, FFs und Interconnect) kaufen? Aus didaktischen Gründen lässt man in den ersten paar Tagen gerne mal ein paar Details weg um sie dann später zu behandeln, wenn die Grundlagen dann schon sitzen. Ich möchte hier ja auch nur einen Vorschlag machen, wie man die moderne Komplexität (am Anfang) herunterbrechen kann um bessere Verständlichkeit zu schaffen. Retorisch gefragt: Wer von euch würde z. B. einem Elektronikanfänger beim Erklären eines Kondensators gleich das Ersatzschaltbild mit 5 Elementen (C, ESR, ESL, Anschluss Induktivität) an den Kopf werfen, mit dem Argument, dass man keine reinen Kondensatoren kaufen kann? Reine FPGAs kann man schon länger nicht mehr kaufen, will auch niemand kaufen. Darum habe ich vorgeschlagen dafür "FPGA Chipfläche" zu benutzen, bei Xilinx z. B. beim Zynq ist das die Programmable Fabric (PF) oder genereller FPGA Fabric. Andere Blöcke werden oft Hard Macro bzw. Hard Core (vs. Soft Core) genannt, was ich einen recht OK Begriff finde. Für z. B. einen Wikipedia Artikel kommt man nicht drum herum, dass alles im selben Artikel zu behandeln aber die Komplexität sollte langsam ansteigen. Darum habe ich auch die parallele zu modernen CPUs angegeben. Dinge zu erklären ist nicht einfacher geworden. Hier sind wir auch bei zwei Begriffen, nämlich dem FPGA als Technologie um programmierbare Digitale Logik zu bauen (mit anderer Struktur als EPROM, PLA, PAL, GAL, CPLD, FPOA) und den FPGA Chips die es zu kaufen gibt, die nach mehr als 30 Jahren sich diversifiziert haben. C. A. Rotwang schrieb: > Nein, das entspricht nicht der technischen Entwicklung. > Kleine SRAM-Speicherblöcke werden seit Jahrzehnten neben den simplen > Gattern als Schaltungselemente eingesetzt. Beim 4004 waren es die > Registerbänke, bei Videosopelen wie Pong kleine ROMS als > Zeichengenerator, Speicher bei FSM zur Realisierung der > Abbildungsfunktionen. Ja, sehr richtig. Programmierbare Logik wurde laaaange vor den FPGAs erfunden. Die ersten FPGAs hatten interessanterweise noch keine SRAM Blöcke, obwohl es wohl abzusehen war, dass diese praktisch werden würden: https://www.researchgate.net/figure/The-internal-structure-of-the-Xilinx-XC4000-FPGA-architecture-devices-consist-of_fig6_282441845
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.