Ho letto questo post e non risponde alla mia domanda nella sua interezza:
Penso a un microcontrollore come a qualsiasi cosa che abbia memoria, registri e in grado di elaborare una serie di istruzioni come LOAD, STORE e ADD. Contiene porte logiche e simili per svolgere il suo ruolo, ma il suo compito principale è quello di essere un processore universale di bit. Penso a un Microntroller come a un sistema di progetti ASIC interconnessi per creare la capacità di memorizzare ed elaborare le istruzioni.
Penso a un dispositivo ASIC come a un circuito che è stato appositamente costruito utilizzando componenti logici ed elettrici per eseguire un singolo compito, senza altri compiti in mente né hardware aggiuntivo incluso.
Penso a un dispositivo FPGA come a un dispositivo ASIC (un dispositivo di basso livello) + un mucchio di cose inutilizzate rimaste, utilizzate per implementare una particolare tabella di verità.
Nonostante il suo nome, un FGPA sembra molto "specifico per l'applicazione", poiché deve essere ricablato per eseguire un compito nuovo e diverso. Questo porta alla confusione con ASIC. Anche se, nel caso di ricablare un FPGA, dovrebbe essere presente tutto l'hardware necessario. Inoltre, gli FPGA sono pensati per essere programmabili, ma non è questo il significato di un microcontrollore?
Il post sopra che ho citato menziona anche HDL, con cui ho familiarità. HDL non può essere utilizzato sia per ASIC che per FPGA e per procura per progettare un intero microcontrollore?