Maximale Anzahl von Logikeinheiten/Gattern pro Logikeinheit-Ausgangsleitung: FPGA

Ich konnte keine Informationen darüber finden. Gibt es eine allgemeine Regel oder ändert sie sich für alle Anbieter (altera oder xilinx)?

Nehmen wir an, ich habe ein Flip-Flop und möchte 10 Flip-Flops an seinen Ausgang anschließen. Normalerweise war in meinem Universitätslabor mit billigen (1 $ - 2 $) ICs 10 der maximale Wert. Vielleicht dasselbe für FPGA? Oder kann es schwere Lasten wie 2000 Flip-Flops tragen, die mit demselben Ausgang verbunden sind? Bezieht sich dies auf die in verilog/vhdl erwähnte "Antriebsstärke"? Sie erwähnen keine Einschränkung.

Wenn ich in Zukunft ein FPGA habe, werde ich einen Gleitkomma-Rechenbeschleuniger ausprobieren, der eine Variable an alle Kerne senden muss.

Wie "Dave Tweed" kommentierte, muss es "Fanout" sein, und er sagt, es sei eine implizite Kontrolle durch das Design-Tool. Weitere Informationen? Wie viele Gates werden dediziert, wenn es implizit angesteuert wird?

Ich spreche innere (dynamische) Teile von FPGA an, für die ich einige Kerne bauen werde. Nicht die äußeren Teile.

Vielen Dank für Ihre Zeit.

Der allgemeine Begriff für das, wonach Sie fragen, ist "Fanout". Im Allgemeinen übernehmen die FPGA-Designtools dies für Sie, indem sie bei Bedarf die Logik replizieren, sodass Sie sich nicht explizit damit befassen müssen.
Adressieren Sie die interne oder externe Last an das FPGA? Wenn es extern ist, gelten die gleichen Regeln wie für jeden IC. Jeder Pin hat einen maximalen Strom, den er treiben oder verbrauchen kann. Die Anstiegs- und Abfallzeit des Signals hängt vom maximalen Strom und der Summe aller an den Pin angeschlossenen Lastkapazitäten ab. Für eine interne Last gelten andere Regeln. Das FPGA verfügt über interne Puffer zum Ansteuern der Kurz- und Langleitungen. Bei Bedarf duplizieren die Synthesealgorithmen Logik, Flip-Flops oder Puffer, um die Last aufzuteilen.
Falls Sie neugierig sind, ich habe ein Design, bei dem ein Taktknoten einen Fanout von mehr als 20000 Knoten hat. Der größte nicht-globale Fanout in diesem Design (dh Standard-Routing) beträgt etwa 2700. Sie können also viele, viele Dinge miteinander verbinden.
@Tom Carpenter, fügt es eine Latenz hinzu? Ich meine, ist es eine Baumstruktur unter impliziten Dingen?
Es funktioniert die Verbindungen selbst. In meinem Fall läuft das Design mit 250 MHz und erfüllt die Timing-Anforderungen dafür. Das Timing ist dabei einer der Schlüsselaspekte, und die Anpassungswerkzeuge sind gut genug, um die Dinge zu optimieren (Position, Duplizierung usw.), um das Beste zu tun, um die Designanforderungen zu erfüllen.

Antworten (1)

Sie können ein Signal an viele, viele andere Ziele weitersenden (die Anzahl der Ziele wird als "Fanout" des Signals bezeichnet). Je mehr Ziele es ansteuert, desto länger wird möglicherweise Ihr kritischer Timing-Pfad, sodass der fmax Ihres Designs darunter leiden kann.

Die Tools replizieren normalerweise die Logik, die diese vielen Netze antreibt, wenn das Timing langsamer wird als Sie angefordert haben, um zu versuchen, Ihr Timing-Ziel zu erreichen.

Für Xilinx bietet diese Liste von Appnotes Ratschläge zur Reduzierung von Fanout, wenn dies auf Ihrem kritischen Pfad liegt ( http://www.xilinx.com/support/answers/9410.html )

Also handelt es diese Verfügbarkeit mit Latenz/Frequenz. Entweder füge ich eine mehrstufige Verzweigung hinzu, um die Ausgabe zu replizieren und die Latenz von jeder Stufe hinzuzufügen, oder lasse sie das implizit selbst tun und schaue mir fmax an? Danke schön.
Wenn Sie über die Tools verfügen, können Sie mehrere Latenzzyklen hinzufügen und die Tools herausfinden lassen, wie sie auf die gesamte Verzögerung des Systems aufgeteilt werden (dies wird als "Re-Timing" bezeichnet).
Nun, es dupliziert "normalerweise" die Logik nicht, es sei denn, Sie geben ihm einen Befehl dazu, ansonsten ist es richtig.
@FarhadEin guter Punkt - ja, ich hätte "duplizieren Sie die Flipflops" schreiben sollen (oder zumindest ist das meine Erfahrung, vielleicht habe ich in der fernen Vergangenheit einen Schalter eingeschaltet und ihn an jedes neue Projekt weitergegeben ...)