Was ist der Unterschied zwischen CPLD und einem FPGA? [geschlossen]

10

Was ist der Unterschied zwischen einer CPLD und einem FPGA?

Sanjeev Kumar
quelle
1
CPLD verwendet nur Produktbegriffe (und einen DFF pro Ausgangs-Pin). FPGA verfügt über intern konfigurierbare Blöcke für LUT, Carry / Shift, DFF sowie flexibleres Routing, Block-RAM und andere spezialisierte Blöcke wie PLL oder MAC.
MarkU
1
... und normalerweise verwenden CPLDs nichtflüchtigen Speicher, um ihre Konfiguration zu speichern, während FPGAs flüchtigen Speicher (RAM) verwenden, dh FPGAs müssen jedes Mal nach dem Einschalten initialisiert werden.
Curd
6
Antwort über Google verfügbar - Frage sollte geschlossen sein.
Leon Heller
4
@Leon Heller Ich weiß nicht, warum Sie eine andere Person anrufen möchten, um diese Frage zu schließen. Wenn Sie der Meinung sind, dass diese Frage nah sein sollte, können Sie für das Schließen stimmen, aber es ist wirklich schrecklich, "Frage sollte geschlossen sein" zu kommentieren und zu versuchen, eine andere Person anzurufen, die mit Ihnen mitkommt. Wenn diese Frage geschlossen werden kann, sollten Sie zuerst die folgende Frage schließen: electronic.stackexchange.com/questions/1092/…
Sanjeev Kumar
1
@LeonHeller (et al.) Diese Frage wird auch als Antwort auf diese Google-Suche gestellt. (Ich habe es als zweiten Link bekommen, zusammen mit anderen, die tatsächlich nützlich waren.)
ilkkachu

Antworten:

5

CPLDs werden im Allgemeinen nur zum Ersetzen einer relativ kleinen Menge diskreter Logik verwendet. Dinge wie eine Reihe von Adressdecodern und Busschnittstellenschaltungen. CPLDs enthalten sehr wenig Speicher; Im Allgemeinen liegt die Anzahl der Flip-Flops in der gleichen Größenordnung wie die der E / A-Pins (dh eine 32-Makrozellen-CPLD hat ~ 30 Pins und ~ 30 Flip-Flops). Die kombinatorische Logik in einer CPLD ist in einem programmierbaren Logikarray implementiert, was bei sehr hohen Geschwindigkeiten im Allgemeinen nicht nützlich ist. CPLDs sind normalerweise auch Flash-basiert oder verfügen über einen internen Flash-Speicher, was die Anforderungen an das Board-Design vereinfacht und den Schutz vor Reverse Engineering verbessert. CPLDs werden auch nicht mit logischen Prozessen auf dem neuesten Stand der Technik erstellt.

FPGAs sind für sehr leistungsstarke Berechnungen und Schnittstellen mit hoher Bandbreite ausgelegt. Intern verwenden sie eine ganz andere Architektur als CPLDs. FPGAs haben viel mehr internen Status (Register und Block-RAM) als E / A-Pins. Die kombinatorische Logik ist in Hochgeschwindigkeits-Nachschlagetabellen implementiert, die bis zu mehreren hundert MHz laufen können. Die LUTs und andere Komponenten sind mit einem Hochleistungs-Routing-Netzwerk verbunden. FPGAs enthalten auch spezielle Hartkerne, die eine effiziente Implementierung verschiedener Komponenten ermöglichen. Block-RAM und Multiplikatoren / DSP-Slices sind sehr häufig. FPGAs können auch Ethernet-MACs, Festprozessorkerne, PCI-Express-Schnittstellen und andere spezialisierte Blöcke enthalten. Multi-Gigabit-Transciever sind auch ein gemeinsames Merkmal von High-End-FPGAs, die eine Datenübertragung mit bis zu 50 Gbit / s pro Pin-Paar ermöglichen. FPGAs enthalten im Allgemeinen keinen nichtflüchtigen Speicher, sodass zum Laden der Konfiguration ein externer Flash-Speicher erforderlich ist. Die Verschlüsselung kann implementiert werden, um die Entwurfssicherheit mit einem im FPGA gespeicherten batteriegepufferten Schlüssel zu verbessern.

alex.forencich
quelle
10

Unterschiede:

  1. Kapazität - CPLD hat normalerweise eine geringere Logikkapazität. Die größte CPLD befindet sich möglicherweise auf einem ähnlichen Niveau wie das kleinste FPGA auf dem Mainstream-Markt.

  2. Speicherung des Images - CPLD kann von selbst booten, während die meisten FPGAs den Konfigurationsbitstrom aus dem nichtflüchtigen Speicher abrufen müssen, da sie auf SRAM basieren. Dies wirkt sich auf die Sicherheit des Systems aus.

  3. Feature - CPLD stellt nur Gates oder Logikzellen zur Verfügung, die alle Arten von Logikalgorithmen ausführen können. Darüber hinaus hat FPGA viele harte Blöcke wie BlockRAM, DSP, TEMAC, PCIe, MGT, Mikroprozessor usw. eingebettet, um einen einzelnen FPGA-Chip zum Aufbau eines integrierten Systems mit vollem Funktionsumfang zu machen.

Yash
quelle
3
In Bezug auf # 3 ist zu erwähnen, dass im Laufe der Jahre, als CPLDs immer ausgefeilter wurden, die Grenze zwischen CPLDs und FPGAs verschwommen ist. Beispielsweise sind moderne CPLDs groß genug, um einen Mikrocontroller zu implementieren. Es ist jetzt so weit, dass einige Chipfamilien, die historisch als CPLDs vermarktet wurden, jetzt als FPGAs markiert werden (zum Beispiel die Altera Max-Familie)
David Gardner