Estoy planeando una consola de juegos discreta para mi propio tiempo libre, basada en la señal VGA. He implementado partes de él en protoboards con muchos cables, pero es muy propenso a errores, por lo que me moví al mundo de FPGA.
Meta:
Preguntas:
¿Cuál es la mejor manera de implementar el doble búfer? El dispositivo SRAM sería un problema cuando se accede continuamente desde la parte del generador de señal, ya que bloquearía la parte del escritor para configurar los píxeles. Los períodos de borrado son demasiado cortos para hacer esto.
Si bajara con la resolución (132 x 132 @ 8 bpp) podría usar el bloque RAM (288 K bits o 36.000 Bytes). ¿Hay alguna desventaja o problema que aún no veo al usar el bloque de RAM para una aplicación de este tipo?
¡Gracias!
La SRAM externa en la placa MicroNova Mercury es rápida (velocidad nominal de 10 ns), por lo que no debería haber problemas para acceder a ella a 50 MB/s (o más). Podría leer fácilmente una señal VGA completa a una velocidad bruta de 25,175 MB/s y seguir teniendo la mitad del ancho de banda de la memoria disponible para escritura. Por supuesto, la SRAM no tiene suficiente espacio para dos búferes de 640 × 480 × 8 bits, por lo que tendrá que recortar en alguna parte. Si hace 320 × 240 a 60 Hz, solo necesitará leer 4,608 MB/s en promedio, dejando más del 90 % del ancho de banda de la memoria para la escritura de píxeles y otros fines.
No veo la necesidad de usar BRAM interno para el almacenamiento de píxeles; es un recurso que encontrará mucho más útil para otras cosas, como implementar los controladores que ejecutarán la lógica del juego y dibujarán los píxeles.
Anónimo
Pirohaz