CPLD vs. FPGA
CPLDs (Complex Programmable Logic Device) und FPGAs (Field Programmable Gate Array) sind zwei Logikbausteine, die aufgrund der technologischen Verbesserungen und der Einführung der anderen Funktionen allmählich verschwimmen. Der Hauptunterschied zwischen FPGAs und CPLDs ist die Komplexität oder die Anzahl der darin enthaltenen Logikgatter. Obwohl die tatsächliche Anzahl zwischen den verschiedenen Modellen stark variieren kann, enthalten CPLDs zwischen einigen tausend Gattern und Zehntausenden. Im Vergleich dazu haben FPGAs Zehntausende bis einige Millionen. Aufgrund des großen Unterschieds bei der Anzahl der Gates lässt sich leicht sagen, dass Sie mit FPGAs eine komplexere Logik als mit CPLDs aufbauen können.
Ein großer Vorteil einer extrem hohen Anzahl von Gattern ist die Möglichkeit, in den Chip eingebettete Funktionen auf hohem Niveau zu haben. Anstatt sie selbst zu erstellen, verfügen einige FPGAs bereits über Addierer, Multiplikatoren und viele andere Operatoren für die häufigsten Aufgaben. Der Programmierer kann sich dann auf das eigentliche Ziel des Designs konzentrieren und muss sich nicht um die Implementierung solcher Funktionen kümmern.
Es gibt auch einen großen Unterschied zwischen den beiden, wenn es um ihre Architektur geht. FPGAs verwenden LUTs (Look-Up Tables), während ein CPLD eine einfachere Summe von Produkten (auch als "Gate of Gates" bezeichnet) verwendet. Die Verwendung von LUTs ist vorteilhaft, da sie erhebliche Einsparungen bei der Verarbeitungszeit bietet, da der Chip nicht wie bei CPLDs den Prozess der Neuberechnung der Produktsumme durchlaufen muss. LUTs bieten auch eine flexiblere Verbindung zwischen internen FPGA-Modulen, als dies ein CPLD möglich ist.
Der letzte große Unterschied zwischen den beiden ist der nichtflüchtige Speicher. LUTs sind eine Form von Gedächtnis, die jedoch nach Beenden der Stromversorgung nicht bestehen bleibt. CPLDs verfügen über einen nichtflüchtigen Speicher, der in die Chips eingebettet ist, sodass sie sofort ohne externes ROM arbeiten können. CPLDs dienen sogar als "Bootloader" für FPGAs. Wie bereits zu Beginn dieses Artikels erwähnt, beginnt die Linie zwischen Features zu verschwimmen. Um den Bedarf an "Bootloadern" zu beseitigen, haben Hersteller von FPGAs damit begonnen, nichtflüchtigen Speicher in ihre FPGA-Chips einzubetten. Damit ist dieses Feature sowohl in CPLDs als auch in einigen FPGAs vorhanden.
Zusammenfassung:
1.FPGAs sind komplexer als CPLDs.
2.FPGAs verfügen über mehr eingebettete High-Level-Funktionen als CPLDs.
3.FPGAs verwenden Nachschlagetabellen, während CPLDs eine Summe von Produkten verwenden.
4.CPLDs haben einen nichtflüchtigen Speicher, FPGAs dagegen nicht.