Wie erhält man die (geschätzte) äquivalente Gate-Anzahl für ein FPGA-Design?

Ich verstehe, dass die Gate-Anzahl kein Maß für FPGA-Designs ist, wie es in der ASIC-Welt der Fall ist. Ich muss jedoch die strukturelle Effizienz von zwei Designs vergleichen, eines in FPGA und das andere in ASIC, indem ich ihre äquivalente Schaltungsfläche oder Gate-Anzahl vergleiche. Für ASIC ist es einfach, die Gate-Anzahl zu erhalten, aber gibt es für FPGA eine Annäherung, mit der ich die äquivalente Gate-Anzahl für ein Design mit den folgenden Spezifikationen erhalten kann?

FPGA: Xilinx XC3S1200E-4FG320

MULTs: 3 (18x18) FFs: 511 LUTs: 611 Slices: 521 Taps/Bits: 10/16

Recherchieren Sie ein wenig, um herauszufinden, wie viele Gates erforderlich wären, um jedes dieser Primitiven zu implementieren?

Antworten (2)

Es gibt wirklich keine einzige Antwort, da es so viele verschiedene Möglichkeiten gibt, ein synthetisierbares Design zu instanziieren.

Eine Möglichkeit wäre, Ihre synthetisierbare RTL zu verwenden und sie mit einem anderen Tool neu zu synthetisieren und auf eine andere Bibliothek abzuzielen.

Für das Handzählen müssen Sie sich nur Ihre Mults, FFs und LUTs ansehen. Die Slices sind hierarchische Organisationsblöcke und Taps sind Routing-Ressourcen, beides sollte sich nicht auf die Mehrheit Ihrer Gate-Anzahl auswirken.

Mults und FFs sind leicht zu berücksichtigen, denn das Hauptproblem werden Ihre LUTs sein, da in einer LUT oft viel mehr Kapazität eingebettet ist als verwendet wird, oder die LUTs auf eine bestimmte Weise kaskadiert werden, um eine Auswirkung auf die Geschwindigkeit zu verhindern. Es ist genauer, sich die Logikwolke in Ihrer RTL-Karte mit dem entsprechenden 2-Eingangs-Gate anzusehen.

Nun, dies ist eine häufige Frage für alle, die es gewohnt sind, für ASIC zu entwerfen, aber wie Sie selbst erwähnt haben, ist es schwierig, eine korrekte Schätzung der Gate-Anzahl aus dem Bericht der FPGA-Tools zu erhalten.

Sie können eine Vermutung anstellen, indem Sie dies aus Ihrem Bericht entnehmen:

  • Anzahl der Flip-Flops oder Register
  • Anzahl der für die Logik verwendeten Logikblöcke
  • Speicherblöcke oder andere spezielle Funktionen, die in Ihrem Design verwendet werden

Der Bericht zeigt auch die Anzahl der für das Routing verwendeten LCs, diese sind für Ihre Gate-Anzahl nicht interessant, aber wenn Sie diese Zahlen verwenden, können Sie eine grobe Schätzung der Anzahl der Gates in Ihrem Design berechnen, aber die Genauigkeit ist es wird nicht sehr gut.