Forskjellen mellom CPLD og FPGA

CPLD vs FPGA

CPLDs (Complex Programmable Logic Device) og FPGAs (Field Programmable Gate Array) er to logiske enheter som begynner å utviske på grunn av forbedringer i teknologi og introduksjon av ens funksjoner til den andre. Hovedforskjellen mellom FPGA og CPLD er kompleksiteten eller antall logiske porter som finnes i hver. Selv om faktiske tall kan variere sterkt mellom forskjellige modeller, inneholder CPLDer hvor som helst fra noen få tusen porte til titusener. Til sammenligning har FPGAer titusener til noen få millioner. På grunn av den store forskjellen i antall porte, er det lett å si at du kan bygge mer komplisert logikk med FPGAer enn med CPLDs.

En stor fordel ved å ha et ekstremt høyt antall porte er evnen til å ha funksjoner på høyt nivå innebygd i brikken. I stedet for å lage dem selv, har noen FPGAer allerede adders, multiplikatorer og mange andre operatører for de vanligste oppgavene. Programmereren kan da fokusere på det faktiske målet med designet og ikke trenger å bekymre seg for implementeringen av slike funksjoner.

Det er også en stor forskjell mellom de to når det gjelder arkitekturen. FPGAer bruker LUT (Look-Up Tables) mens en CPLD bruker en enklere sum av produkter (også kalt et hav av portene). Bruk av LUT er fordelaktig da det gir betydelige besparelser i behandlingstiden, da brikken ikke trenger å gå gjennom prosessen med å omregne summen av produkter som CPLDer gjør. LUTer gir også en mer fleksibel sammenkobling mellom interne FPGA-moduler enn hva en CPLD kan.

Den siste store forskjellen mellom de to er ikke-flyktig minne. LUT er en form for minne, men det vedvarer ikke når strømmen er fjernet. CPLDer har ikke-flyktig minne innebygd i sjetongene, slik at de kan fungere med en gang uten behov for ekstern ROM. CPLDs er til og med vant til å fungere som en "boot loader" for FPGAs. Som allerede nevnt i begynnelsen av denne artikkelen, begynner linjen mellom funksjoner å bli uskarpt. For å eliminere behovet for "boot loaders", har produsenter av FPGAer begynt å legge inn ikke-flyktig minne i deres FPGA-chips; Derved får denne funksjonen til stede i både CPLD og noen FPGAer.

Sammendrag:

1.FPGA er mer komplekse enn CPLDer.
2.FPGAs har flere funksjoner på høyt nivå, innebygde funksjoner enn CPLDer.
3.FPGAs bruker oppslagstabeller mens CPLDer bruker en sum av produkter.
4.CPLD har ikke-flyktig minne mens FPGA ikke gjør det.