Eu tenho uma placa Altera DE2 e tentando desenhar sprites. Estou com problemas para implementar um buffer de tela.
Eu tenho uma entidade de exibição que a uma taxa de 25 MHZ gera pixels para exibição vga.
Eu esperava implementar um buffer no SDRAM. A idéia original era carregar pixels no próximo pixel a uma taxa de 25 MHZ da SDRAM. Isso funciona, mas não consigo gravar pixels no SDRAM a esse ritmo nem limpar a tela com rapidez suficiente para cada novo quadro. São necessários dois relógios para gravar dados e minha placa opera a 50 MHZ, portanto, tenho tempo suficiente para fazer uma leitura completa.
Eu diria que estou fazendo algo terrivelmente errado. Como essa tela de desenho é normalmente implementada em VHDL?
A coisa mais próxima que pude encontrar é usar um esquema de cores 2-3-3 (RGB) para recuperar cada pixel e gravar na ram de tela durante o tempo VGA "vazio" (em branco). Isso significa que em cada um dos relógios de 25 mhz eu posso atualizar apenas 15% da tela e, de alguma forma, preciso do meu circuito para saber quais 15% estão sendo atualizados?
Não consigo descobrir como usar o buffer duplo porque não consigo descobrir como gravar dados na memória durante a leitura. Existe uma maneira de evitar a quebra de protocolo? Como esse cara faz isso?