FPGAs haben eigentlich keine "Gates" an sich. Sie haben normalerweise Nachschlagetabellen (LUTs). LUTs werden normalerweise mit SRAMs implementiert. Beispielsweise verwenden Spartan 3-FPGAs 16-Bit-SRAMs. Das heißt, vier Adresseneingänge erzeugen ein Ausgangssignal. "Programmieren" erfolgt durch Laden des SRAM mit einem Bitmuster, das die Wahrheitstabelle darstellt, so dass Sie beispielsweise für XOR mit 2 Eingängen die Adresse 00 = Ausgang 0, Adresse 01 = Ausgang 1, Adresse 10 = Ausgang 1, Adresse 11 = haben Ausgang 0.
Dies alles bedeutet, dass FPGAs tatsächlich viele, viele zusätzliche und unnötige Gatter haben, um dieselbe Logikfunktion auszuführen. Wenn Sie FPGAs für Reprogrammierbarkeit und Rapid Prototyping benötigen, ist dies großartig! Tatsächlich implementieren einige Leute das Design zuerst im FPGA, debuggen es und wechseln dann zu einem ASIC, der kleiner, schneller und weniger Strom verbraucht, während sie das Gleiche tun wie das FPGA.
Moderne Mikroprozessoren sind ebenfalls Pipeline. Beispielsweise kann in einem einfachen FPGA-Programm eine sehr umfangreiche Berechnung mit mehreren Additionen und möglicherweise einigen Multiplikationen und einem Vergleich im selben Taktzyklus durchgeführt werden. Wenn Sie all diese Arbeiten in einem Taktzyklus ausführen, muss der Taktzyklus lang sein. In einer Pipeline-Implementierung (die in FPGAs implementiert werden kann und häufig zum Erreichen des Timing-Abschlusses verwendet wird) wird die große Berechnung in Teile zerlegt und jedes Teil in einem viel kürzeren Taktzyklus ausgeführt. Die Berechnung dauert immer noch ungefähr genauso lange. Der Vorteil besteht jedoch darin, dass das erste Stück sofort mit der Verarbeitung des zweiten Datums beginnen kann, nachdem das erste Stück berechnet wurde und das erste Teildatum zum zweiten Stück verschoben wurde. Die erste Berechnung dauert noch viele Zyklen.
Kurz gesagt, FPGAs haben eine generische Logik, während die CPU eine spezifische Logik hat. FPGA hat generisches Routing, während CPU spezifisches Routing hat. FPGA kann Pipeline-Pipeline sein, aber CPU ist definitiv Pipeline-Pipeline.