Forum: FPGA, VHDL & Co. Zusammenfassung FPGA


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von lmaxlck (Gast)


Lesenswert?

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 ?

von Thomas (Gast)


Lesenswert?


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hier ist alles erklärt:

> https://bfy.tw/OOUy

von C. A. Rotwang (Gast)


Lesenswert?

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

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

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.

von Josef G. (bome) (Gast)


Lesenswert?

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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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
von Burkhard (Gast)


Lesenswert?

Jürgen S. schrieb:
> ist das wohl wieder mal änderungsbedürftig

Wurde gerade geändert.

von tja (Gast)


Lesenswert?

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

von C. A. Rotwang (Gast)


Lesenswert?

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.

von Christoph Z. (christophz)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

"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.

von Christoph Z. (christophz)


Lesenswert?

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.

von Christoph Z. (christophz)


Lesenswert?

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.

von Burkhard K. (buks)


Lesenswert?

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?

von Gustl B. (-gb-)


Lesenswert?

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.

von weltbester FPGA-Pongo (Gast)


Lesenswert?

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.

von Burkhard K. (buks)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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.

von C. A. Rotwang (Gast)


Lesenswert?

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.

von Christoph Z. (christophz)


Lesenswert?

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.