CPLD vs FPGA
CPLD (keeruline programmeeritav loogikaseadme) ja FPGA (väljal programmeeritav väravate massiiv) on kaks loogikalist seadet, mis on hakanud hägustuma tehnoloogia täiustamise ja ühe funktsiooni tutvustamise tõttu teisele. Peamine erinevus FPGA ja CPLD vahel on neis sisalduvate loogikaväravate keerukus või arv. Ehkki tegelikud arvud võivad eri mudelite vahel väga erineda, sisaldavad CPLD-id vahemikku mõnest tuhandest väravast kümnete tuhandeteni. Võrdluseks - FPGA-sid on kümneid tuhandeid kuni paar miljonit. Väravate arvu tohutu erinevuse tõttu on lihtne öelda, et FPGA-dega saate luua keerukamat loogikat kui CPLD-dega.
Äärmiselt suure arvu väravate peamiseks eeliseks on võime kiibisse manustada kõrgetasemelisi funktsioone. Mõnedes FPGA-des on nende loomise asemel juba tavaliste toimingute jaoks liitmikud, kordistajad ja paljud muud operaatorid. Seejärel saab programmeerija keskenduda kujunduse tegelikule eesmärgile ega pea muretsema selliste funktsioonide rakendamise pärast.
Nende arhitektuuri osas on nende kahe vahel ka tohutu erinevus. FPGA-d kasutavad LUT-e (otsitabeleid), samal ajal kui CPLD kasutab lihtsamat tootesummat (nimetatakse ka väravate mereks). LUT-de kasutamine on eelistatud, kuna see võimaldab märkimisväärselt kokku hoida töötlemisaega, kuna kiip ei pea läbima toodete summa ümberarvutamise protsessi, nagu teevad CPLD-d. LUT-id pakuvad ka sisemiste FPGA-moodulite vahel paindlikumat sidumist kui see, milleks CPLD on võimeline.
Viimane suurem erinevus nende kahe vahel on muutumatu mälu. LUT-id on mäluvorm, kuid pärast toite väljavõtmist see ei püsi. CPLD-del on kiipidesse manustatud püsiv mälu, mis võimaldab neil kohe töötada ilma välise ROMi vajamata. CPLD-sid kasutatakse isegi FPGA-de jaoks alglaadurina. Nagu juba selle artikli alguses mainitud, on joon funktsioonide vahel hakanud hägustuma. Et välistada vajadus buutimislaadurite järele, on FPGA-de loojad hakanud oma FPGA-kiipidesse kinnitama muutumatut mälu; muutes selle funktsiooni esindatuks nii CPLDdes kui ka mõnes FPGA-s.
Kokkuvõte:
1.FPGA-d on keerukamad kui CPLD-d.
2.FPGA-del on rohkem kõrgetasemelisi manustatud funktsioone kui CPLD-del.
3.FPGA-d kasutavad otsitabeleid, CPLD-d aga toodete summat.
4.CPLD-del on muutumatu mälu, FPGA-del aga mitte.