¿Cuál es la diferencia entre un kit FPGA y un kit de microcontrolador?

Un microcontrolador es una CPU que se puede programar con algún tipo de kit de desarrollo de software y, según el dispositivo, puede tener una variedad de periféricos integrados, como puertos SPI o I2C, temporizadores, etc.

Un FPGA también es un dispositivo programable pero en un nivel fundamentalmente más bajo: la “programación” en realidad define la funcionalidad en el nivel de puerta lógica. Si desea implementar una CPU, puede hacerlo. (Hay módulos de código abierto que emularán CPU simples populares como un Z80, por ejemplo), y los SDK de los fabricantes también incluyen algunas CPU de “núcleo blando” programables en C más capaces. Por otro lado, si desea implementar bloques lógicos discretos para realizar alguna función en la que la lógica dedicada crea una ventaja al acelerar su funcionamiento, también puede hacerlo.

La programación de FPGA es un trabajo fundamentalmente mucho más complejo y orientado a los detalles que un microcontrolador común, por lo que para los principiantes, creo que es preferible obtener algo de experiencia en microcontroladores antes de dar ese salto.

Un microcontrolador es una combinación predefinida de CPU y diferentes tipos de memoria y periféricos, generalmente en un solo chip, para el que puede escribir código.

Un FPGA está más o menos indefinido, y puede definir prácticamente cualquier lógica de hardware que desee, dentro de los límites establecidos.

Hay microcontroladores con FPGA integrado, que es inteligente para la lógica que necesita funcionar a velocidades que solo el hardware puro puede lograr.

Un FPGA no es un dispositivo independiente como un microcontrolador. Un microcontrolador puede funcionar con periféricos mínimos como el emulador JTAG para programación y depuración, algunos LED y un regulador.

Para un FPGA, necesita una gran cantidad de periféricos, como un microcontrolador de reserva para la programación cuasi SPI de inicio, la programación JTAG. También puede tener una memoria externa. Pero la cuestión es que se flasheó con código auto programable, FPGA no necesitará ninguno de estos periféricos.

Los kits FPGA están diseñados para realizar tareas establecidas por un lenguaje de descripción de hardware, mientras que un kit de microcontrolador está diseñado para realizar tareas basadas en el programa específico escrito para un microcontrolador utilizando un código de ensamblaje o un código c.

Para simplificar, los kits FPGA le permiten manipular sus propios diseños de circuitos digitales especializados, mientras que los kits de microcontroladores le permiten simplemente manipular instrucciones predeterminadas para realizar tareas específicas.

No hace falta decir que los kits FPGA son considerablemente más flexibles que los kits de microcontroladores.