Además de la velocidad a la que pueden llegar a correr,una ventaja que tienen sobre los micros,la más a tener en cuenta a mi parecer,es la capacidad que tienen de realizar múltiples tareas de forma paralela,ya que cada tarea es llevada a cabo por un bloque lógico independiente (hardware), diseñado en cada caso para tal fin,mientras que en un micro se hace siguiendo una secuencia software en la mayoría de ocasiones.
En un micro no existe ese paralelismo,ya que la secuencia de ejecución es única.Un ejemplo:
En el dsp, lo normal es que haya un único algortimo que lleve a cabo todos los "PROCESA",pero los ejecutará uno detrás de otro,leyendo una entrada,procesándola y sacando la salida correspondiente en cada iteración.
En la fpga no hay algoritmo.Todo es llevado a cabo mediante hardware.Cada "PROCESA" toma su entrada,la procesa y saca la salida,sin preocuparse por los otros bloques.
La fpga tiene verdadera razón de ser cuando se está en la necesidad de implementar un sistema en tiempo real con una cantidad considerable de entrada-salida sujeta a restricciones de tiempo.Por ejemplo,podríamos implementar un filtro paso bajo digital con un dsp,muestreando la entrada a 48 khz...y el dsp podría llevarlo a cabo sin despeinarse,pero ¿qué pasa si necesitamos filtrar 40 entradas simultáneamente,a 48 khz? Sencillamente con el dsp no se podría...con una fpga si.
Pero como ya ha dicho JCC de forma muy acertada,no siempre es todo tan bonito como lo pintan y hay que valorar el coste y las posibles soluciones de un proyecto desde todas las perspectivas