Differenza tra CPLD e FPGA

CPLD vs FPGA

CPLD (Complex Programmable Logic Device) e FPGA (Field Programmable Gate Array) sono due dispositivi logici che stanno iniziando a confondersi a causa dei miglioramenti nella tecnologia e dell'introduzione delle proprie caratteristiche nell'altro. La principale differenza tra FPGA e CPLD è la complessità o il numero di porte logiche contenute in ciascuna. Sebbene i numeri reali possano variare molto tra i diversi modelli, i CPLD contengono ovunque da poche migliaia di porte a decine di migliaia. In confronto, gli FPGA hanno da decine di migliaia a pochi milioni. A causa dell'enorme differenza nel numero di porte, è facile dire che è possibile costruire una logica più complessa con FPGA rispetto ai CPLD.

Uno dei principali vantaggi di avere un numero estremamente elevato di porte è la possibilità di avere funzioni di alto livello integrate nel chip. Piuttosto che crearli da soli, alcuni FPGA hanno già add-on, moltiplicatori e molti altri operatori per le attività più comuni. Il programmatore può quindi concentrarsi sull'obiettivo reale del progetto e non doversi preoccupare dell'implementazione di tali funzioni.

C'è anche un'enorme differenza tra i due quando si tratta della loro architettura. Gli FPGA usano le LUT (Look-up Tables) mentre un CPLD usa una semplice somma di prodotti (chiamata anche mare di porte). L'utilizzo delle LUT è vantaggioso poiché consente di ottenere risparmi significativi nei tempi di elaborazione poiché il chip non dovrebbe passare attraverso il processo di ricalcolo della somma di prodotti come fanno i CPLD. Le LUT forniscono anche un'interconnessione più flessibile tra i moduli FPGA interni rispetto a ciò che è in grado di CPLD.

L'ultima grande differenza tra i due è la memoria non volatile. Le LUT sono una forma di memoria, ma non persistono una volta rimossa l'alimentazione. I CPLD hanno una memoria non volatile incorporata nei chip che consente loro di funzionare immediatamente senza la necessità di una ROM esterna. I CPLD vengono persino utilizzati come "boot loader" per gli FPGA. Come già accennato all'inizio di questo articolo, la linea tra le caratteristiche sta cominciando a confondersi. Per eliminare la necessità di "boot loader", i produttori di FPGA hanno iniziato a incorporare memoria non volatile nei loro chip FPGA; rendendo così questa funzionalità presente sia in CPLD che in alcuni FPGA.

Sommario:

1. Gli FPGA sono più complessi dei CPLD.
2. Gli FPGA hanno funzioni incorporate di alto livello rispetto ai CPLD.
3. Gli FPGA usano tabelle di ricerca mentre i CPLD usano una somma di prodotti.
4. I CPLD hanno una memoria non volatile mentre gli FPGA no.