Un FPGA es una matriz de puerta programable en campo. Este es un dispositivo completamente separado del microcontrolador que tiene. Consulte FPGA en Wikipedia
Un FPGA básicamente le permite crear cualquier tipo de lógica usando VHDL o el lenguaje Verilog. Puede combinar puertas digitales y otros elementos para crear cualquier tipo de lógica digital, incluso un microprocesador (llamado procesador de núcleo blando). El dispositivo STM32 que tiene es un microcontrolador de 32 bits que ya se ha implementado y configurado con un conjunto fijo de periféricos. Es un procesador general y no puede reconfigurar su hardware de la misma manera que un FPGA.
En los últimos años, las líneas se han difuminado cada vez más desde que los procesadores ARM de núcleo duro se han integrado en los FPGA para que pueda aprovechar tanto el procesador de propósito general como la generación de su propia lógica de hardware.
Otros enlaces relevantes:
ARM Cortex-M3