Gracias por tu réplica Tisco. Seguramente las aplicaciones que he hecho con micros son muy triviales y por eso no me ha hecho falta un FPGA.
Pero por ejemplo, un dsPIC corriendo a 120MHz me parece que puede resolver casi cualquier cosa en cuanto a procesamiento digital de señales. ¿Hace falta crear un núcleo dentro de un FPGA para tareas DSP?
buenas!
Pues aqui es donde entra el dilema al que a todos nos ha costado acostumbrarnos:
Un uC se basa en la programacion de software, que como ya sabras se ejecuta de manera secuencial, es decir, una instruccion despues de la otra.
Una FPGA se basa en hardware, eres tu quien diseña el dispositivo, por lo tanto las aplicaciones se ejecutan de manera concurrente, es decir, todas en un ciclo de reloj (suponiendo sistemas sincronos) por lo que la velocidad es muy superior aunque funcione tambien a 120Mhz. Es por esto que desarrollar este tipo de sistemas supone lo que se denomina un gran coste hardware, pues hacer todo de manera concurrente ocupa demasiados recursos de la FPGA.
Esto se ve claramente en un ejemplo, uno de los mas sencillos y que me llamo la atencion en su dia fue el controlar una LCD, pues algo que en un microcontrolador no nos ocupa casi memoria, en un dispositivo hardware no te imaginas lo que llega a ocupar en comparacion.
Es por esto que normalmente se le suele añadir a los dispositivos basados en FPGAs sistemas secuenciales; y la manera mas sencilla de hacerlo es empotrando un pequeño (o gran) uC que se encargue de controlar todo el sistema. De esta manera nos evitamos un gran gasto de recursos y no perdemos prestaciones gracias a que los procesos que asi lo requieren seguiran ejecutandose de manera concurrente.
Asi pues, respondiendo a tu pregunta y dejandome de cuentos, no es necesario crear un nucleo (uC, sistema de estados, etc.) dentro de las FPGAs para tareas de DSP, puedes perfectamente tener a tu dispositivo DSP funcionando totalmente independiente del resto de la FPGA. Ademas hoy en dia hay FPGAs que ya incluyen sobre todo sistemas MAC y memorias especiales para procesado de señal o algunas que ya traen uno o varios uCs internos.