Välj rätt kretstyp. FPGA- kretsen vinner när konstruktionen är rik på datavägar, CPLD-kretsen är överlägsen för kontrollogik.
Antag att du precis bestämt dig: nästa konstruktion skall implementeras i en programmerbar logisk krets. Då frågar du dig säkert vilken typ av krets som blir bäst. FPGA, CPLD, SPGA eller kanske FPSC? Fyrbokstavsförkortningarna är förvillande men arkitekturerna skiljer sig markant och för att välja rätt målkrets gäller det att känna till den programmerbara logikens ABC.
FPGA-kretsar är fortfarande den vanligaste kretstypen, FPGA står för Field Programmable Gate Array. Det grundläggande byggblocket är oftast en så kallad LUT - Look-up Table - plus register. En sådan registerrik och relativt finkornig struktur lämpar sig väl för konstruktioner rika på datavägar. Typexemplet är en DSP-tilllämpning.
Förbindningen mellan logikblocken är segmenterad och längden på metalledaren beror därför på hur långt ifrån varandra logikblocken sitter på kislet. Därmed är timingen inte förutsägbar, den styrs helt av placering och ledningsdragning. De flesta FPGA-kretsar tillverkas i SRAM-teknik och kan alltså programmeras om flera gånger. Vissa är antifusebaserade och programmeras en gång för alla.
CPLD-arkitekturerna, där CPLD uttyds Complex Programmable Logic Device, består istället oftast av relativt stora PAL-liknande block som knyts ihop på kislet via en stor multiplexor eller kopplingsmatris. Förbindningarna är metalledare som korsar hela kretsen. Alla förbindningar är därmed lika långa, har lika stor resistans och kapacitans och ger lika lång fördröjningstid. Konstruktören kan med andra ord vara säker på vilken prestanda konstruktionen kommer få, något CPLD-leverantörerna trycker hårt på. Verktygen behöver inte lägga så mycket krut på att optimera ledningsdragningen och kompileringstiden blir därmed kortare jämfört med FPGA-alternativet.
Typiska CPLD-konstruktioner innehåller mycket styrlogik, som exempelvis tillståndsmaskiner. CPLD-kretsar tillverkas oftast i EPROM-, EEPROM- eller Flashteknik.
Ingen regel utan undantagSedan finns det dessvärre undantag som krånglar till uppdelningen mellan CPLD och FPGA. Ett lysande exempel är Alteras Flexfamilj, som kallas för CPLD men som egentligen är ett mellanting. Flexkretsarna har kontinuerlig ledningsdragning som en CPLD-krets, men det grundläggande logikblocket har man lånat från FPGA- kusinerna, LUT plus register alltså. Altera kallar ändå skapelsen för CPLD för att betona den förutsägbara timingen och de snabba kompileringstiderna.
Det senaste året har det dessutom dykt upp nya hybridvarianter på marknaden. Lucent och Actel har presenterat varsitt alternativ som döpts till FPSC - Field Programmable System Circuit respektive SPGA - System Programmable Gate Array. Kretsarna innehåller en asicdel - grindmatris eller cellbaserad - plus en fältprogrammerbar del som konstruktören fyller på vanligt FPGA-manér. Tanken är att man skall förena det bästa ur två världar; FPGA-kretsens flexibilitet och korta ledtider plus asicens höga hastighet och täta packningsgrad.
CvS