mikrocontroller.net

Forum: FPGA, VHDL & Co. wie sind CLB's miteinander verbunden


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.
Autor: Max Dietl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Community,
ich halte einen Vortrag über FPGA's und habe mich jetzt schon lange im 
Internet belesen. Welche Information ich nicht finde ist: wie kann man 
die CLB's untereinander verknüpfen? Hardwareseitig müssten doch alle 
CLB's schon miteinandern verbunden sein und Softwaretechnisch 
verschaltet man sie dann je nachdem wie man es braucht? Oder wie kann 
man das verstehen? Wäre echt super wenn mir das einer erklären könnte. 
Bzw wie man dann auch die I/O's auf die jeweiligen CLB's zuordnet.


Vielen Dank schonmal im Vorraus. :)

Autor: blub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die sind durch Transistoren voneinander getrennt, jedoch alle Netzartig 
miteinander verbunden. Beim Starten werden die Transistoren je nach 
Konfiguration ein- oder ausgeschaltet und damit Verbindungen innerhalb 
des Netzes geschaffen.

Autor: Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Die englische Wikipedia erklaert das ganz gut:

https://en.wikipedia.org/wiki/Logic_block#Routing

Das Bild mit der Switch Box Topology ist genau das was blub mit den 
Transistoren beschrieben hat.

Edit: Ein PDF da alles schoen zusammenfasst ist z.B. ***

Sry, musste den Link nochmal entfernen. Irgendwie sieht das Dokument 
nach geklautem Buchkapitel aus. Entsprechendes PDF war Kapitel 2 aus 
http://www.springer.com/978-1-4614-3593-8

: Bearbeitet durch User
Autor: C. A. Rotwang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max Dietl schrieb:
> Hallo liebe Community,
> ich halte einen Vortrag über FPGA's und habe mich jetzt schon lange im
> Internet belesen.

Mein Beileid, du bist ein Opfer der Internetverblödung geworden. Mein 
Tipp,
belese Dich in einer gut gestückten Fachbibliothek. Beispielweise in dem 
historischen Schinken ISBN 978-3826627125

Darin wird erklärt, das die CLBS über Multiplexer verschaltet werden, 
deren select-signal über eine SRAM-Zelle gesteuert wird, die während der 
Konfigurationsphase mit dem passenden bit aus dem bitstream beschrieben 
wird.

Siehe auch:
https://www.rapidwright.io/docs/Xilinx_Architecture.html

wobei jeder FPGA-Hersteller seine eigene routing resources Suppe kocht.

Autor: Max Dietl (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Vielen Dank für die ganzen Antworten, das hat mir schon sehr 
weitergeholfen. Nun noch eine Verständnisfrage: Können entweder 
Transistoren oder Multiplexer dafür genommen werden oder sind 
Transistoren immer vorhanden die mithilfe von Multiplexern angesprochen 
werden?

Sorry ich bin absolut neu in diesem Gebiet und kenne mich leider Null 
aus. Bitte verzeiht mir.

Autor: blub (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Der Multiplexer besteht aus Transistoren. Ich tippe auf JFETs die in 
beide Richtungen Signale durchlassen.

Autor: C. A. Rotwang (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Max Dietl schrieb:
> Können entweder
> Transistoren oder Multiplexer dafür genommen werden oder sind
> Transistoren immer vorhanden die mithilfe von Multiplexern angesprochen
> werden?

Auch Multiplexer bestehen aus Transistoren, insofern stellt sich die 
Frage ob Transistor oder Multiplexer nicht.
https://www.researchgate.net/figure/Block-diagram-of-full-rate-clock-4-1-MUX_fig2_2982109

Wobei die Vorstellung das ein IC aus Transistoren aufgebaut ist, ohnehin 
eine sehr simple Vorstellung ist, da spricht man eher von 
"Halbleiterstrukturen mit der Funktion eine (Logik-)gatters".

Sowie man auch nicht sagt, das eine Leiterkarte (auch PCB oder Board 
genannt) aus 'Drähten' oder 'Kabel' besteht, sondern mittels 
Kupferbahnen (Copper tracks) und Durchkonaktierung (vias) die 
elektrische Verbindungen realisieren werden. Weil man ein Board eben 
nicht auseinanderbaut und in einzelne Drähte zerlegt, genausowenig wie 
man einen Integrierten Schaltkreis zerlegen und einzelne Tranistoren 
ausbauen kann.

https://www.semanticscholar.org/paper/A-pure-CMOS-nonvolatile-multi-context-configuration-Tatsumura-Oda/8e91a1327679ec0b992ac23aa752dca3e538c9af

Man spricht da eher von "standard cells" aus denen der IC besteht, nicht 
aus Transistoren. Und da ist ein Multiplexor genauso eine 'Zelle' wie 
ein Or-Gatter
http://user.engineering.uiowa.edu/~vlsi1/notes/stdcell-fpga.pdf S.16

Allerdings ist das kein Thema des FPGA-Designs mehr, sondern der 
Halbleiterfertigung.

Autor: Dussel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie man die Leitungen verschaltet, also welche Verbindungen man 
ermöglicht, ist nochmal ein Thema für sich.
Wenn man zum Beispiel eine Kreuzung aus fünf horizontalen und fünf 
vertikalen Leitungen hat, hat man 25 Kreuzungen. Davon hat oft/meistens 
nicht jede Kreuzung eine Verbindungsmöglichkeit, sondern nur bestimmte 
davon. So spart man Platz auf Kosten der Flexibilität. Die Abwägung, wie 
man das am besten macht, ist eine der Aufgaben des FPGA-Entwicklers (der 
das FPGA entwickelt).

Autor: Gerd E. (robberknight)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dussel schrieb:
> Die Abwägung, wie
> man das am besten macht, ist eine der Aufgaben des FPGA-Entwicklers

...welche dieser meist ganz schnell an sein Synthese-Tool delegiert.

Autor: Dussel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerd E. schrieb:
> ...welche dieser meist ganz schnell an sein Synthese-Tool delegiert.
Vielleicht Vorgaben macht. Aber das Werkzeug kann meines Wissens nicht 
selber entscheiden, an welchen Stellen Verbindungspunkte sinnvoll sind. 
Aber das ist sowieso ASIC-Entwicklung, die etwas weiter geht als die 
Entwicklung für ein FPGA.

Autor: Gerd E. (robberknight)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dussel schrieb:
> Vielleicht Vorgaben macht. Aber das Werkzeug kann meines Wissens nicht
> selber entscheiden, an welchen Stellen Verbindungspunkte sinnvoll sind.

Doch natürlich.

Du beschreibst in Verilog oder VHDL Deine Hardware. Also z.B. eine 
Statemachine, ein Zähler, ein Schieberegister,... Das Synthesetool 
übersetzt das dann grob gesagt in einzelne CLBs, Vorgaben für deren LUTs 
etc. und wie diese untereinander zu verbinden sind. Dann kommt das 
Place-and-Route-Modul und verteilt die über die Fläche des FPGA. Dabei 
muss es natürlich als Nebenbedingungen beachten, dass manche CLBs nicht 
direkt miteinander verbunden werden können und dann eine andere 
Platzierung wählen.

Dass ein FPGA-Entwickler explizit einzelne, spezifische LUTs miteinander 
verbindet ist eher der Ausnahmefall.

Autor: Dussel (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich schrieb über die Entwicklung eines FPGA, nicht auf einem FPGA. Die 
Entwickler bei Xilinx, Intel, Microsemi und anderen Herstellern von 
FPGAs.

Die müssen sich Gedanken machen, an welchen Stellen der 
Verbindungsmatrix sie Verbindungsschalter vorsehen.
Das meinte ich: 
https://pdfs.semanticscholar.org/a883/157ca255ada5dddd294b5468d8d8a55add8f.pdf
Abbildung 4 zum Beispiel.

Autor: Gerd E. (robberknight)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dussel schrieb:
> Ich schrieb über die Entwicklung eines FPGA, nicht auf einem FPGA. Die
> Entwickler bei Xilinx, Intel, Microsemi und anderen Herstellern von
> FPGAs.

Sorry, da hatte ich Dich komplett falsch verstanden.

Autor: Bernhard K. (bkom)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Im Netz gefunden - aus dem Jahr 2011:

   Altera FPGA Schaltungstechnik

http://www.eecg.toronto.edu/~choijon5/Altera.ppt

Autor: Hamburger Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dussel schrieb:
> Wenn man zum Beispiel eine Kreuzung aus fünf horizontalen und fünf
> vertikalen Leitungen hat, hat man 25 Kreuzungen. Davon hat oft/meistens
> nicht jede Kreuzung eine Verbindungsmöglichkeit, sondern nur bestimmte
> davon. So spart man Platz auf Kosten der Flexibilität.

Laut Xilinx sei dies das Geheimnis der FPGAs, denn die 
Verschaltungstechnik sei x-mal komplizierter, als die eigentliche Logik. 
Scheint mir auch plausibel. Eine LUT zu bauen, bedeutet ja nur eine 
SRAM-Zelle. Das haben wird im Microelectronik-Praktikum an der Uni 
gemacht.

Die Verschaltungen dürften bei den heutigen Strukturen 3D sein. Und sie 
müssen gut abgewogen werden, weil sie selber eine Speicherzelle 
benötigen, um gesetzt zu sein, samt der Zuleitung dazu. Dürfen 
Scan-Chains sein, nehme ich an.

Autor: blub (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Das ist was für Mathematiker. Muss nicht 3d kann auch 5d oder 10d sein 
;)
Der Chip selbst ist natürlich flach aber doch mit einigen 
Metallisierungsebenen. Der Trend geht ja dahin dass man mehrere Chips 
übereinander Stapelt, dann könnte man also von 2,5D sprechen.

Autor: blub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mich hat dieser Artikel über Richard Feynman und den Bau der Connection 
Machine sehr gefallen:
http://longnow.org/essays/richard-feynman-connection-machine/
passt vielleicht zum Thema

Autor: Manche lernens nie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blub schrieb:
> Mich hat dieser Artikel über Richard Feynman und den Bau der Connection
> Machine sehr gefallen:
> http://longnow.org/essays/richard-feynman-connection-machine/
> passt vielleicht zum Thema

Nein!
Feynman starb vor FPGA (1988). Allerdings passen seine Einlassungen zur 
Cargo-Cult-Wissenschaft und heutige Diskussionskultur (Excessive 
Benutzung von Fachbegriffen ohne Verstand aber auf ein magisches Wunder 
hoffend) zu den Ergüssen mancher Disputanten hier.

https://de.wikipedia.org/wiki/Cargo-Kult-Wissenschaft

Autor: Dussel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hamburger Hans schrieb:
> Eine LUT zu bauen, bedeutet ja nur eine SRAM-Zelle.
Das stimmt, aber ein CLB enthält aber noch mehr und unterscheidet sich 
auch deutlich zwischen den Herstellern.

Hamburger Hans schrieb:
> Die Verschaltungen […] müssen gut abgewogen werden, weil sie
> selber eine Speicherzelle benötigen, um gesetzt zu sein,
> samt der Zuleitung dazu.
Vor Allem hat eine Kreuzung nicht nur einen Schalter, sondern (bis zu) 
sechs, oder vielleicht sogar noch mehr. Die horizontale und die 
vertikale Verbindung können auch noch geschaltet werden.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manche lernens nie schrieb:
> Nein!
> Feynman starb vor FPGA (1988)
Nicht ganz. Das erste FPGA gab es drei Jahre früher:
https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-xilinx-xc2064-fpga

Duke

Autor: Manche lernens nie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Manche lernens nie schrieb:
>> Nein!
>> Feynman starb vor FPGA (1988)
> Nicht ganz. Das erste FPGA gab es drei Jahre früher:
> 
https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-xilinx-xc2064-fpga

Nein 5 Jahre vorher, Xilinx ist Nachzügler, anbei ein Scan aus dem Valvo 
Datenbuch v. 1983, dem Gründungsjahr von connection machines
https://en.wikipedia.org/wiki/Connection_Machine

wobei die connection machine ein Grossrechner fast noch aus der 
Computersteinzeit ist und ein FPGA ein integrierter Schaltkreis.

Autor: Sigi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manche lernens nie schrieb:
> 
https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-xilinx-xc2064-fpga

Valvo's Diagram zeigt nur eine programmierbare
Matrix inkl. Rückkopplungen, mit FPGA (wie ab
2032/2064 etc.) hat das aber nichts zu tun.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.

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