Tengo un tablero Altera DE2 y trato de dibujar sprites. Estoy teniendo algunos problemas para implementar un búfer de pantalla.
Tengo una entidad de visualización que a una velocidad de 25 MHZ genera píxeles para la visualización vga.
Tenía la esperanza de implementar un búfer en SDRAM. La idea original era cargar píxeles en el siguiente píxel a una velocidad de 25 MHZ desde la SDRAM. Esto funciona, pero no puedo escribir píxeles en la SDRAM a esta velocidad ni puedo borrar la pantalla lo suficientemente rápido para cada nuevo marco. Me toma 2 relojes para escribir datos y mi tablero funciona a 50 MHZ, así que tengo el tiempo suficiente para hacer una lectura completa.
Supongo que estoy haciendo algo terriblemente, terriblemente mal. ¿Cómo se implementa normalmente este lienzo de dibujo en VHDL?
Lo más cercano que pude encontrar es usar un esquema de color 2-3-3 (R-G-B) para recuperar cada píxel y escribir en el ram del lienzo durante el tiempo VGA del "porche" (blanco). Esto significa que en cada uno de los relojes de 25 mhz solo puedo actualizar el 15% de la pantalla y de alguna manera necesito que mi circuito esté al tanto de qué 15% se está actualizando.
No puedo descubrir cómo usar el búfer doble, porque no puedo escribir cómo escribir datos en la memoria mientras leo. ¿Hay una manera de evitar golpear el protocolo de bits? ¿Cómo lo hace este chico?