VGA doble búfer con bloque de memoria RAM

0

Estoy planeando una consola de juegos discreta para mi propio ocio, basada en la señal VGA. He implementado partes de la misma en placas con muchos cables, pero es muy propenso a errores, por lo tanto mi traslado al mundo FPGA.

Goz :

  • Resolución alrededor de 240 columnas x 240 líneas y 8 bits / píxel.
  • Doble almacenamiento en búfer para animaciones suaves.
  • Placa FPGA micro nova mercury (XC3S200A) y SRAM externa de 512 KB.

Preguntas :

¿Cuál es la mejor manera de implementar el búfer doble? El dispositivo SRAM sería un problema cuando se accede continuamente desde la señal Parte del generador, ya que bloquearía la parte del escritor para establecer píxeles. Los períodos en blanco son demasiado cortos para hacer esto.

Si bajara la resolución (132 x 132 @ 8 bpp) podría usar El bloque RAM (288 K bits o 36.000 bytes). Hay alguna Desventajas o problemas que no veo todavía, cuando uso el bloque RAM para tal aplicación?

¡Gracias!

    
pregunta walantis

1 respuesta

1

La SRAM externa en la placa MicroNova Mercury es una rápida velocidad nominal de 10 ns, por lo que debería haber No hay problema para acceder a él a 50 MB / s (o más). Puede leer fácilmente una señal VGA completa a una velocidad bruta de 25.175 MB / sy aún tener la mitad del ancho de banda de memoria disponible para escrituras. Por supuesto, la SRAM no tiene espacio suficiente para dos búferes de 640 × 480 × 8 bits, por lo que tendrá que recortar en alguna parte. Si utiliza 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 propósitos.

No veo la necesidad de usar BRAM interno para el almacenamiento en búfer de píxeles; Es un recurso que encontrarás mucho más útil para otras cosas, como implementar los controladores que ejecutarán la lógica del juego y dibujar los píxeles.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas