He leído este puesto y no responde a mi pregunta en su totalidad:
Pienso en un microcontrolador como cualquier cosa que tiene algo de memoria, registra y puede procesar un conjunto de instrucciones como CARGAR, ALMACENAR y AGREGAR. Contiene puertas lógicas y demás para cumplir su función, pero su principal tarea es ser un procesador universal de bits. Pienso en un Microntrolador como un sistema de diseños ASIC interconectados para crear la capacidad de almacenar y procesar instrucciones.
Pienso en un dispositivo ASIC como un circuito que ha sido específicamente construido usando componentes lógicos y eléctricos para realizar una sola tarea, sin ninguna otra tarea en mente ni hardware extra incluido.
Pienso en un dispositivo FPGA como un dispositivo ASIC (un dispositivo de bajo nivel) + un montón de cosas sin usar que sobran, usado para implementar una tabla de verdad particular.
A pesar de su nombre, un FGPA se siente muy "específico de la aplicación", ya que debe ser recableado para realizar una tarea nueva y diferente. Esto lleva a la confusión con el ASIC. Aunque, en el caso de recablear un FPGA, todo el hardware necesario debe estar presente. Además, las FPGAs están pensadas para ser programables, pero ¿no es eso para lo que está pensado un microcontrolador?
El post anterior al que me referí también menciona a HDL, con el que estoy familiarizado. ¿No se puede usar HDL tanto para ASIC como para FPGA, y por proxy para diseñar un microcontrolador entero?