CPLD ( engelska) Complex Programmable Logic Device ) är en programmerbar logisk integrerad krets (FPGA) i komplexitetsintervallet mellan PAL ( Programmable Array Logic ) och FPGA ( field-Programmable Gate Array ) mikrokretsar , som kombinerar deras arkitektoniska lösningar.
Grunden för CPLD är makrocellmatrisen , som implementerar logiska anslutningar av grindar eller mer komplexa logiska operationer. Block av makroceller kombineras av en programmerbar kopplingsmatris med efterföljande utgång till kretsens ingångar (utgångar) [1] .
Ett tillräckligt stort antal logiska grindar är tillgängliga i CPLD - från flera tusen till tiotusentals, vilket möjliggör implementering av relativt komplexa databehandlingsenheter (för PAL är detta maximalt flera hundra logiska grindar, i moderna FPGA:er antalet grindar kan nå flera miljoner). Samtidigt är det för FPGA möjligt att programmera mer flexibel och komplex logik än enkla uttryck som summan av produkter , upp till implementeringen av både digitala signalbehandlingselement , digitala filter och processorer för allmänna ändamål (till skillnad från CPLD, FPGA-tekniken är baserad på uppslagstabeller (LUT) ) [1] [2] .
I de ursprungliga versionerna av CPLD begränsade routing möjligheten att ansluta de flesta logiska block till sina I/O-kanaler genom externa kontakter, vilket inte tillät optimal användning av det interna minnet hos mikrokretsar och implementering av flernivålogik. Nyare familjer av stora CPLD har inte längre denna begränsning.
Huvudskillnaden mellan stora CPLD och små FPGA har tills nyligen varit närvaron av internt icke-flyktigt konfigurationsminne i CPLD. Denna skillnad är inte längre så betydande, eftersom ett antal nyare FPGA-modeller också inkluderar sådant internt minne. Närvaron av ett sådant internt icke-flyktigt konfigurationsminne, tillsammans med en så viktig egenskap som indikatorernas stabilitet, gör emellertid CPLD:er oumbärliga för moderna digitala kretsar som en enhet för att initiera kretsen innan kontrollen överförs till andra mikrokretsar som inte har detta förmåga. Ett exempel skulle vara att använda en CPLD för att ladda FPGA-konfigurationsdata från icke-flyktigt minne.
Allt eftersom tekniken går framåt fortsätter skillnaden mellan CPLD och FPGA att suddas ut (till exempel kallas vissa Intel CPLDs ibland som FPGA). Samtidigt, genom att jämföra dessa två familjer och ta hänsyn till utvecklingen av själva CPLD och deras kapacitet, deras arkitektoniska fördelar såsom pris, icke-flyktig konfiguration, makroceller med förutsägbara parameteregenskaper, lägre strömförbrukning, kan vi anta att CPLD:er kommer att ha en stabil nisch inom överskådlig framtid. att ställa in de initiala parametrarna för digitala kretsar, mobilteknik, utöka antalet ingångar/utgångar för mer komplexa mikrokretsar, signalförbehandling (till exempel en COM -portkontroller , USB , VGA ) och i andra applikationer [1] [3] [4] [5] .
Stora CPLD-tillverkare: Altera , Atmel , Cypress Semiconductor , Lattice Semiconductor , Xilinx .