Actualmente estoy trabajando en Super OSD, un proyecto de visualización en pantalla. http://code.google.com/p/super-osd tiene todos los detalles.
En este momento estoy usando una MCU dsPIC para hacer el trabajo. Este es un DSP muy potente (40 MIPS @ 80 MHz, operaciones de un solo ciclo de tres registros y una unidad MAC) y, lo que es más importante, viene en un paquete DIP (porque estoy usando una placa de pruebas para crear un prototipo). Realmente estoy obteniendo hasta el último rendimiento ejecutando el OSD: el chip tiene aproximadamente 200ns o 10 ciclos por píxel en la etapa de salida, por lo que el código debe estar muy optimizado en esta parte (por esta razón, siempre se escribirá en montaje.)
Ahora estaba considerando usar un FPGA para esto porque debido a la arquitectura paralela de dicho chip, es posible tener un programa lógico simple que ejecute el OSD. Cosas como dibujar líneas y código algorítmico serían manejados por un MCU, pero la salida real se haría con un FPGA. Y algunas cosas simples como configurar píxeles o dibujar líneas horizontales y verticales que me gustaría integrar en el FPGA, para mejorar la velocidad.
Tengo algunas preguntas:
- ¿Costará mucho más? Los FPGA más baratos que encontré fueron de ~ £ 5 cada uno y el dsPIC es de £ 3 cada uno. Entonces costará más, pero ¿por cuánto?
- El dsPIC cabe en un paquete SO28. No me gustaría ir más grande que SO28 o TQFP44. La mayoría de los FPGA que he visto vienen en paquetes BGA o TQFP> 100, que no son una opción en este momento, debido al tamaño de corte y la dificultad de soldarlos yo mismo.
- ¿Cuánta corriente utiliza un FPGA? La solución dsPIC actualmente consume aproximadamente 55 mA +/- 10 mA, lo cual está bien en este momento. ¿Un FPGA consumiría más o menos? ¿Es variable, o es bastante estático, como el dsPIC?
- Necesito al menos 12 KB de memoria gráfica para almacenar los gráficos OSD. ¿Los FPGA tienen este tipo de memoria disponible en el chip o solo está disponible con chips externos?