CPLD versus FPGA
CPLD's (Complex Programmable Logic Device) en FPGA's (Field Programmable Gate Array) zijn twee logische apparaten die beginnen te vervagen vanwege de verbeteringen in de technologie en de introductie van iemands functies naar de andere. Het belangrijkste verschil tussen FPGA's en CPLD's is de complexiteit of het aantal logische poorten in elk ervan. Hoewel de werkelijke aantallen sterk kunnen verschillen tussen verschillende modellen, bevatten CPLD's overal van een paar duizend poorten tot tienduizenden. Ter vergelijking: FPGA's hebben tienduizenden tot een paar miljoen. Vanwege het enorme verschil in het aantal poorten, is het gemakkelijk om te zeggen dat je complexere logica kunt bouwen met FPGA's dan met CPLD's.
Een groot voordeel van het hebben van een extreem groot aantal poorten is het vermogen om functies op hoog niveau in de chip te integreren. In plaats van ze zelf te maken, hebben sommige FPGA's al adders, multipliers en vele andere operators voor de meest voorkomende taken. De programmeur kan zich vervolgens concentreren op het eigenlijke doel van het ontwerp en hoeft zich geen zorgen te maken over de implementatie van dergelijke functies.
Er is ook een enorm verschil tussen de twee als het gaat om hun architectuur. FPGA's gebruiken LUT's (opzoektabellen) terwijl een CPLD een eenvoudiger som van producten gebruikt (ook wel een zee van poorten genoemd). Het gebruik van LUT's is voordelig omdat het een aanzienlijke besparing oplevert in de verwerkingstijd, omdat de chip niet door het proces van herberekening van de som van producten zoals CPLD's hoeft te gaan. LUT's bieden ook een meer flexibele onderlinge verbinding tussen interne FPGA-modules dan wat een CPLD kan.
Het laatste grote verschil tussen de twee is niet-vluchtig geheugen. LUT's zijn een vorm van geheugen, maar het blijft niet bestaan als de stroomvoorziening is verwijderd. CPLD's hebben niet-vluchtig geheugen ingebed in de chips waardoor ze direct kunnen functioneren zonder dat er een extern ROM nodig is. CPLD's worden zelfs gebruikt als een "bootloader" voor FPGA's. Zoals reeds vermeld aan het begin van dit artikel, begint de grens tussen functies te vervagen. Om de noodzaak voor "bootloaders" te elimineren, zijn makers van FPGA's begonnen om niet-vluchtig geheugen in hun FPGA-chips te integreren; waardoor deze functie aanwezig is in zowel CPLD's als sommige FPGA's.
Samenvatting:
1.FPGA's zijn complexer dan CPLD's.
2. FPGA's hebben meer ingebedde functies op hoog niveau dan CPLD's.
3. FPGA's gebruiken opzoektabellen, terwijl CPLD's een som van producten gebruiken.
4. CPPL's hebben niet-vluchtig geheugen, terwijl FPGA's dat niet doen.