¿Cuál es la diferencia entre CPLD y un FPGA? [cerrado]

10

¿Cuál es la diferencia entre un CPLD y un FPGA?

Sanjeev Kumar
fuente
1
CPLD usa solo términos de producto (y un DFF por pin de salida); FPGA tiene bloques configurables internos de LUT, carry / shift, DFF, así como enrutamiento más flexible, bloque RAM y otros bloques especializados como PLL o MAC.
MarkU
1
... y normalmente los CPLD usan memoria no volátil para almacenar su configuración, mientras que los FPGA usan memoria volátil (RAM), es decir, los FPGA deben inicializarse cada vez que se enciende.
Cuajada
66
Respuesta disponible con Google: la pregunta debe cerrarse.
Leon Heller
44
@Leon Heller No sé por qué quieres invocar a otra persona para cerrar esta pregunta. Si cree que esta pregunta debería estar cerrada, puede votar por el cierre, pero realmente es horrible comentar "la pregunta debe estar cerrada" y tratar de invocar a otra persona para que lo acompañe. Si es probable que esta pregunta se cierre, primero debe cerrar la siguiente pregunta electronics.stackexchange.com/questions/1092/…
Sanjeev Kumar
1
@LeonHeller (et al), esta misma pregunta también surge como respuesta a esa búsqueda en Google. (Lo obtuve como el segundo enlace, junto con otros que fueron realmente útiles.)
ilkkachu

Respuestas:

5

Los CPLD generalmente solo se usan para reemplazar una cantidad relativamente pequeña de lógica discreta. A saber, cosas como un grupo de decodificadores de direcciones y circuitos de interfaz de bus. Los CPLD contienen muy poca memoria; En general, 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 en un CPLD se implementa en una matriz lógica programable, que generalmente no es útil a velocidades muy altas. Los CPLD también suelen estar basados ​​en flash o tienen 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 están construidos con procesos lógicos 'de vanguardia'.

Los FPGA están diseñados para computación de muy alto rendimiento e interfaz de alto ancho de banda. Internamente, utilizan una arquitectura muy diferente a la de los CPLD. Los FPGA tienen mucho más estado interno (registros y RAM en bloque) que los pines de E / S. La lógica combinatoria se implementa en tablas de búsqueda de alta velocidad que pueden ejecutarse a varios cientos de MHz. Las LUT y otros componentes están interconectados con una red de enrutamiento de alto rendimiento. Los FPGA también contienen núcleos duros especializados que proporcionan implementaciones eficientes de varios componentes. Bloquear RAM y multiplicadores / rebanadas DSP son muy comunes. Los FPGA también pueden contener MAC de Ethernet, núcleos de procesador rígidos, interfaces PCI express y otros bloques especializados. Los transceptores de varios gigabits también son una característica común de los FPGA de gama alta que permiten la transferencia de datos a hasta 50 Gbit / seg por par de clavijas. Los FPGA generalmente no contienen ninguna memoria no volátil, por lo que se requiere una memoria flash externa para cargar la configuración. El cifrado se puede implementar para mejorar la seguridad del diseño con una clave respaldada por batería almacenada en el FPGA.

alex.forencich
fuente
10

Diferencias:

  1. Capacidad: CPLD generalmente tiene menos capacidad de lógica. El CPLD más grande puede estar en un nivel similar al FPGA más pequeño en el mercado principal.

  2. Almacenamiento de la imagen: CPLD puede iniciarse por sí mismo, mientras que la mayoría de los FPGA necesitan obtener el flujo de bits de configuración del almacenamiento no volátil porque están basados ​​en SRAM. Esto afecta la seguridad del sistema.

  3. Característica: CPLD solo proporciona puertas, o dichas celdas lógicas, que pueden hacer todo tipo de algoritmos lógicos. Además, FPGA también incluyó muchos bloques duros como BlockRAM, DSP, TEMAC, PCIe, MGT, microprocesador, etc. para hacer un solo chip de FPGA capaz de construir un sistema integrado con todas las funciones.

Yash
fuente
3
Con respecto al n. ° 3, vale la pena mencionar que a lo largo de los años, a medida que los CPLD se han vuelto más sofisticados, la línea entre CPLD y FPGA se ha desdibujado. Por ejemplo, los CPLD modernos son lo suficientemente grandes como para implementar un microcontrolador. Hasta el punto en que algunas familias de chips que históricamente se comercializaban como CPLD ahora se marcan como FPGA (la familia Altera Max, por ejemplo)
David Gardner