Tengo una placa Altera DE2 e intento dibujar sprites. Tengo 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.
Esperaba implementar un búfer en SDRAM. La idea original era cargar píxeles 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 este ritmo ni puedo borrar la pantalla lo suficientemente rápido para cada nuevo fotograma. Me toma 2 relojes escribir datos y mi placa funciona a 50 MHZ, así que tengo el tiempo suficiente para hacer una lectura completa.
Asumiría que estoy haciendo algo terriblemente mal. ¿Cómo se implementa normalmente un lienzo de dibujo en VHDL?
Lo más cercano que pude encontrar es usar un esquema de color 2-3-3 (RGB) para recuperar cada píxel y escribir en el lienzo durante el tiempo VGA "porche" (supresión). 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 sepa cuál es el 15% que se está actualizando.
No puedo entender cómo usar el doble buffer porque no puedo entender cómo escribir datos en la memoria mientras leo. ¿Hay alguna manera de evitar golpes de bits en el protocolo? ¿Cómo lo hace este chico?