Anzahl der FPGA-Logikgatter

Ich habe ein FPGA-Board gefunden, das mir gefiel. Es verwendet einen Xilinx Spartan 6 LX45. Als ich zum Datenblatt für die Spartan 6-Serie ging, sagte es nur, dass es 43.661 Logikzellen gab. Wie vielen Toren entspricht das? Oder wie würde ich die Anzahl der gesamten Gatter aus der Anzahl der Logikzellen ermitteln?

Antworten (3)

FPGA-Hersteller verwenden nicht mehr oft äquivalente Gate-Anzahlen, selbst in den handgewelltesten Marketingmaterialien. Wie Codezeilen oder Megahertz der Prozessorgeschwindigkeit ist dies eine äußerst ungenaue Metrik zur Messung der Geräteleistung, und auf den FPGA-Märkten sind die Kunden klug genug, ihre Verwendung zu unterdrücken.

Um die benötigte Gerätegröße abzuschätzen, müssen Sie sich die Zusammenfassung auf S. 2 des von Ihnen verlinkten Datenblatts. Normalerweise können Sie schon früh in Ihrem Designprozess eine gute Vorstellung davon bekommen, wie viele Flip-Flops, wie viele I/Os und wie viel RAM Ihr Design benötigt. Das eine oder andere davon ist in der Regel die kritische Ressource, die die Größe des benötigten Teils bestimmt.

Wenn Sie keine strengen Kostenbeschränkungen haben, verwenden Sie ein Gerät, das 2x oder mehr größer ist, als Sie denken, dass Sie es brauchen. Es gibt Ihnen Raum für Feature Creep in Ihrem Design und beschleunigt auch die Entwicklung, da die Design-Tools nicht so hart arbeiten müssen, um Ihr Design in die verfügbaren Ressourcen einzupassen.

Bearbeiten , Dinge aus Kommentaren einziehen,

Sie haben erwähnt, dass Ihr Design größtenteils ungetaktet ist.

Das Problem dabei ist, dass FPGA-Designtools von der Taktung und den daraus resultierenden Zeitbeschränkungen abhängen, um die Optimierung des synthetisierten Designs voranzutreiben. Wenn Sie ein ungetaktetes Design in einem FPGA durchführen möchten, ist dies im Prinzip möglich, aber Sie werden nicht viel Hilfe von den Tools (oder Anbietern) erhalten, und Sie müssen wahrscheinlich eine spezialisierte Community finden, die so etwas tut jede Unterstützung bekommen.

In jedem Fall können Sie im Spartan 6 Configurable Logic Block User's Guide nachsehen , welche Ressourcen in jedem Block verfügbar sind. Ordnen Sie dann Ihr Design diesen Ressourcen zu, um zu sehen, wie viele Blöcke Sie benötigen. Das sollte ausreichen, damit Sie das Gerät in der richtigen Größe auswählen können.

In diesem Dokument können Sie beispielsweise sehen, dass der LX45-Teil etwa 27.000 LUTs mit 6 Eingängen enthält. Jede LUT kann verwendet werden, um eine beliebige kombinatorische Logik mit bis zu 6 Eingängen zu implementieren. Wenn Sie Ihre Logik in Bezug auf dieses Primitiv ausdrücken können, können Sie abschätzen, ob Ihr Design in das Gerät passt.

Nun, das ist die Sache, ich habe immer noch nicht mit dem Design begonnen (und mein Design ist direkt in der Logik), weil ich auf der Grundlage meiner FPGA-Sonderangebote entwerfen wollte. Ich weiß, dass ich ungefähr > 2,5 Mio. Gates benötigen würde. Wie würde ich also etwas finden, das so viele Gates aufnehmen könnte?
Wirklich, keine Flip-Flops?
Nun, ich habe einige, aber einige sind nur SR und andere, anstatt JK und D.
Um eine gute Unterstützung durch FPGA-Synthesetools zu erhalten, sollten Sie Ihr Design anpassen, um D-Flip-Flops hervorzuheben --- Ich nehme an, es gibt Möglichkeiten, in anderen Stilen zu entwerfen, aber die FPGA-Toolsets sind stark auf RTL-Design ausgerichtet, dh viele Dffs.
Die Sache mit D-Flip-Flops ist, dass sie getaktet sind, was ich an meinem Design nicht wirklich mag. Aber so oder so, was soll ich tun, um die Anzahl der Zellen zu finden, die ich brauche?
Die Sache mit FPGA-Designtools ist, dass sie von der Taktung und den daraus resultierenden Zeitbeschränkungen abhängen, um die Optimierung des synthetisierten Designs voranzutreiben. Wenn Sie ein ungetaktetes Design in einem FPGA durchführen möchten, können Sie dies wahrscheinlich tun, aber Sie werden nicht viel Hilfe von den Tools (oder Anbietern) erhalten, und Sie müssen wahrscheinlich eine spezialisierte Community finden, die so etwas tut, um zu bekommen jegliche Unterstützung.
In jedem Fall können Sie im Benutzerhandbuch des konfigurierbaren Logikblocks von Spartan 6 nachsehen, welche Ressourcen in jedem Block verfügbar sind. Ordnen Sie dann Ihr Design diesen Ressourcen zu, um zu sehen, wie viele Blöcke Sie benötigen. Das sollte ausreichen, damit Sie das Gerät in der richtigen Größe auswählen können. xilinx.com/support/documentation/user_guides/ug384.pdf
Ich nehme an, es wird etwas Arbeit erfordern, aber das scheint das Beste zu sein. Bitte bearbeiten Sie Ihre Antwort so, dass sie diesen Kommentar enthält, und ich werde sie dann als richtig markieren.
Es gibt sehr gute Gründe, warum FPGA-Tools für die Verwendung mit hauptsächlich getakteter Logik entwickelt wurden. Komplexe kombinatorische Schaltungen sind in einem FPGA sehr schwer zu entwerfen. Sie müssten wahrscheinlich jede Ressource manuell platzieren, da die Routing-Verzögerungen zwischen den Syntheseläufen ziemlich zufällig sein könnten, wenn die Taktung nicht spezifiziert ist. Wenn sich Ihr Design wirklich nicht um Ausbreitungsverzögerungen kümmert, haben Sie eine Chance ... aber wenn Sie sich überhaupt um diese Verzögerungen kümmern, werden Sie wahrscheinlich eine schmerzhafte und entmutigende Erfahrung machen.
Zum Glück spielen die Verzögerungen keine so große Rolle, da es eine Aufgabe und dann Zeit erhält, die Aufgabe zu lösen.

FPGAs sind mehr als nur Gatter (LUTs, FFs, Block-RAM, Multiplikatoren usw.) und herauszufinden, wie viele es gibt, ist eine ziemlich bedeutungslose Übung. Die Marketingabteilungen von FPGA-Unternehmen haben in der Vergangenheit Zahlen wie äquivalente Gate-Zählungen gleich der 1,4-fachen Anzahl von Logikzellen geworfen, aber ich glaube, dass sie diese Praxis gestoppt haben.

Wenn Sie versuchen festzustellen, ob ein bestimmtes Design in ein FPGA passt, ist es am besten, einige Probesyntheseläufe auf Ihrem HDL für FPGAs verschiedener Größe durchzuführen.

Nun, das ist die Sache, ich habe immer noch nicht mit dem Design begonnen (und mein Design ist direkt in der Logik), weil ich auf der Grundlage meiner FPGA-Sonderangebote entwerfen wollte. Ich weiß, dass ich ungefähr > 2,5 Mio. Gates benötigen würde. Wie würde ich also etwas finden, das so viele Gates aufnehmen könnte?
Woher wissen Sie, dass Sie 2,5 Mio. Gates benötigen?
Ich fing an, ein Modul in einem kleinen Simulator zu erstellen, multipliziert mit der Anzahl der benötigten Module, fügte ein wenig Platz hinzu und rundete auf zwei Sig-Feigen auf.
Wie hast du aber eine Gate-Anzahl bekommen? Die FPGA-Tools geben Ihnen Nutzungszahlen in Bezug auf ihre Ressourcen, nicht die Anzahl der Gates.
Ich habe in einem Nicht-FPGA-Tool entworfen, nämlich einem gemischten Analog/Digital-Simulator. Und auch auf Papier. Die Art und Weise, wie ich eine Gate-Anzahl erhalten habe, war, dass ich alles in Gates anstelle von Flip-Flops und dergleichen entworfen habe.
Wie @The Photon sagte, sind FPGAs und ihre Tools stark auf synchrone Designtechniken ausgerichtet, und Sie werden ansonsten schlechte Ergebnisse erzielen. Wenn Sie jedoch für ein FPGA entwerfen möchten, verwenden Sie am Ende des Tages FPGA-Tools, nicht etwas anderes.
Wenn ich Logikgatter verwenden muss, was sollte ich verwenden? Ein CPLD hat nicht annähernd genug Gates.
Nun, hängt davon ab, was Sie tun möchten, Sie können immer noch FPGAs verwenden, aber für FPGAs ist das, was Sie in Gattern entwerfen, nicht 'genau' das, was Sie nach Place & Route erhalten. Das Tool ordnet Ihr Design den im FPGA verfügbaren Ressourcen zu und generiert dann a berichte für dich. Von dort aus können Sie die Größe Ihres Designs bestimmen.

Kommen Sie es andersherum - es klingt aus anderen Kommentaren, als hätten Sie ein Modul bereits aussortiert. Geben Sie das an die FPGA-Tools weiter - selbst die kostenlosen Tools geben Ihnen eine Schätzung der LUT/BRAM/FF-Anzahl aus der Synthese. Multiplizieren Sie das mit Ihrer Instanzanzahl, fügen Sie etwas Puffer hinzu und Sie haben eine brauchbare LUT-Anzahl für die Dimensionierung des FPGA.

Natürlich müssen Sie dies möglicherweise für jeden FPGA-Typ tun, den Sie in Betracht ziehen, da sie jeweils etwas unterschiedliche Architekturen haben, in Bezug auf die Anzahl der Eingänge, die die LUTs haben, und wie viele andere unterstützende Schaltkreise in Form von Muxes usw. sie haben die LUTS. Und ob Ihre Schaltung davon profitieren kann ...

Nun, ich würde es tun, wenn ich ein kostenloses FPGA-Tool finden könnte, mit dem ich einfach Logikgatter zeichnen und dann ein FPGA damit programmieren kann.
Wenn Sie eine ernsthafte Schätzung wünschen, sollten Sie Ihr Gate-Diagramm nehmen und es in HDL umwandeln. Sie müssen das sowieso tun, um heutzutage ernsthafte Implementierungsarbeiten durchzuführen. Ist es ein sehr großes „Spaghetti“-Design oder hierarchisch strukturiert mit vielen Wiederverwendungen?
@haneefmubarak 8 Jahre zu spät, aber es gibt viele Zeichen- / Simulationswerkzeuge, die zum Beispiel Verilog exportieren können. Möglich ist es also zumindest im Jahr 2021. Circuitverse ist eines von vielen kostenlosen Tools, die dies tun könnten.