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

Was ist der Unterschied zwischen einem CPLD und einem FPGA?

CPLD verwendet nur Produktbegriffe (und ein DFF pro Ausgangspin); FPGA verfügt über interne konfigurierbare Blöcke von LUT, Carry/Shift, DFF sowie flexibleres Routing, Block-RAM und andere spezialisierte Blöcke wie PLL oder MAC.
... und normalerweise verwenden CPLDs einen nichtflüchtigen Speicher, um ihre Konfiguration zu speichern, während FPGAs einen flüchtigen Speicher (RAM) verwenden, dh FPGAs müssen jedes Mal nach dem Einschalten initialisiert werden.
Antwort über Google verfügbar - Frage sollte geschlossen werden.
@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 geschlossen werden sollte, können Sie für das Schließen stimmen, aber es ist wirklich schrecklich, zu kommentieren "Frage sollte geschlossen werden" und zu versuchen, andere Personen dazu aufzurufen, mit Ihnen zu kommen. Wenn diese Frage geschlossen werden muss, sollten Sie zuerst die folgende Frage schließen electronic.stackexchange.com/questions/1092/…
Mehrere Leute stimmen mir zu!
@LeonHeller (et al), genau diese Frage taucht auch als Antwort auf diese Google-Suche auf. (Ich habe es als zweiten Link bekommen, zusammen mit anderen, die wirklich nützlich waren.)

Antworten (2)

CPLDs werden im Allgemeinen nur zum Ersetzen einer relativ kleinen Menge an diskreter Logik verwendet. Nämlich 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 I/O-Pins (dh ein 32-Makrozellen-CPLD hat ~ 30 Pins und ~ 30 Flip-Flops). Die kombinatorische Logik in einem CPLD wird auf einem programmierbaren Logikarray implementiert, was im Allgemeinen bei sehr hohen Geschwindigkeiten 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 „Bleeding-Edge“-Logikprozessen 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 I/O-Pins. Die kombinatorische Logik wird 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 spezialisierte harte Kerne, die effiziente Implementierungen verschiedener Komponenten bieten. Block-RAM und Multiplikatoren/DSP-Slices sind weit verbreitet. FPGAs können auch Ethernet-MACs, harte Prozessorkerne, PCI-Express-Schnittstellen und andere spezialisierte Blöcke enthalten. Multi-Gigabit-Transceiver 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. Zur Verbesserung der Designsicherheit kann eine Verschlüsselung mit einem im FPGA gespeicherten batteriegestützten Schlüssel implementiert werden.

Unterschiede:

  1. Kapazität – CPLD hat normalerweise weniger Logikkapazität. Das größte CPLD kann auf einem ähnlichen Niveau sein wie das kleinste FPGA auf dem Mainstream-Markt.

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

  3. Merkmal - CPLD bietet nur Gatter oder, wie gesagt, Logikzellen, die alle Arten von Logikalgorithmen ausführen können. Darüber hinaus hat FPGA auch viele harte Blöcke wie BlockRAM, DSP, TEMAC, PCIe, MGT, Mikroprozessor usw. eingebettet, um einen einzigen FPGA-Chip zu erstellen, der in der Lage ist, ein integriertes System mit vollem Funktionsumfang aufzubauen.

Bezüglich Nr. 3 ist zu erwähnen, dass sich im Laufe der Jahre, als CPLDs immer ausgefeilter wurden, die Grenze zwischen CPLDs und FPGAs verwischt hat. Beispielsweise sind moderne CPLDs groß genug, um einen Mikrocontroller zu implementieren. Es ist jetzt so weit, dass einige Chipfamilien, die früher als CPLDs vermarktet wurden, jetzt als FPGAs gekennzeichnet werden (z. B. die Altera Max-Familie).