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. :)
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.
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
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.
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.
Der Multiplexer besteht aus Transistoren. Ich tippe auf JFETs die in beide Richtungen Signale durchlassen.
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.
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).
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.
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.
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.
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.
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.
Im Netz gefunden - aus dem Jahr 2011: Altera FPGA Schaltungstechnik http://www.eecg.toronto.edu/~choijon5/Altera.ppt
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.
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.
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
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
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.
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
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.
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.
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.