Los CPLD suelen utilizarse únicamente para sustituir una cantidad relativamente pequeña de lógica discreta. Es decir, cosas como un montón de decodificadores de direcciones y circuitos de interfaz de bus. Los CPLDs contienen muy poca memoria; generalmente el número de flip-flops es del mismo orden de magnitud que los pines de E/S (es decir, un CPLD de 32 macroceldas tiene ~30 pines y ~30 flip-flops). La lógica combinatoria de un CPLD se implementa en una matriz lógica programable, que generalmente no es útil a velocidades muy altas. Además, los CPLD suelen estar basados en la memoria flash o tienen una memoria flash interna, lo que simplifica los requisitos de diseño de la placa y mejora la protección contra la ingeniería inversa. Los CPLD tampoco se construyen con procesos lógicos de vanguardia.
Las FPGAs están diseñadas para el cálculo de muy alto rendimiento y la interconexión de gran ancho de banda. Internamente, utilizan una arquitectura muy diferente a la de los CPLD. Las FPGA tienen mucho más estado interno (registros y RAM de bloque) que pines de E/S. La lógica combinatoria se implementa en tablas de búsqueda de alta velocidad que pueden funcionar a varios cientos de MHz. Las LUTs y otros componentes están interconectados con una red de enrutamiento de alto rendimiento. Las FPGAs también contienen núcleos duros especializados que proporcionan implementaciones eficientes de varios componentes. Los bloques de RAM y los multiplicadores/DSP son muy comunes. Las FPGAs también pueden contener MACs ethernet, núcleos duros de procesador, interfaces PCI express y otros bloques especializados. Los transcievers multigigabit también son una característica común de las FPGA de gama alta que permiten la transferencia de datos a una velocidad de hasta 50 Gbit/seg por par de pines. Las FPGAs no suelen contener ninguna memoria no volátil, por lo que se requiere una memoria flash externa para cargar la configuración. Para mejorar la seguridad del diseño, se puede implementar el cifrado con una clave respaldada por una batería y almacenada en la FPGA.
1 votos
El CPLD sólo utiliza términos de producto (y un DFF por pin de salida); la FPGA tiene bloques internos configurables de LUT, carry/shift, DFF, así como un enrutamiento más flexible, RAM de bloque y otros bloques especializados como PLL o MAC.
1 votos
...y normalmente los CPLDs utilizan memoria no volátil para almacenar su configuración mientras que los FPGAs utilizan memoria volátil (RAM), es decir, los FPGAs tienen que ser inicializados cada vez después del encendido.
6 votos
La respuesta está disponible en Google, por lo que la pregunta debería cerrarse.
5 votos
@Leon Heller No sé por qué quieres invocar a otra persona para cerrar esta cuestión. Si crees que esta pregunta debe ser cerrada eres libre de votar por el cierre pero realmente es horrible comentar "la pregunta debe ser cerrada" y tratar de invocar a otra persona para que se una a ti. Si esta pregunta es susceptible de ser cerrada, entonces primero debes cerrar la siguiente pregunta electronics.stackexchange.com/questions/1092/
0 votos
Varias personas están de acuerdo conmigo.
1 votos
@LeonHeller (et al), esta misma pregunta también aparece como respuesta a esa búsqueda en Google. (A mí me salió como segundo enlace, junto con otros realmente útiles).