I have an Altera DE2 board and trying to draw sprites. I am having some trouble implementing a screen buffer.
I have a display entity that at a 25 MHZ rate outputs pixels for vga display.
I was hoping to implement a buffer in SDRAM. The original idea was to load pixels the next pixel at a rate of 25 MHZ from the SDRAM. This works, but I can't write pixels to the SDRAM at this rate nor can clear the screen fast enough for each new frame. It takes me 2 clocks to write data and my board operates at 50 MHZ so I have just enough time to do a complete read.
I would assume I'm doing something terribly, terribly wrong. How is such a drawing canvas normally implemented in VHDL?
I closest thing I could find is to use a 2-3-3 (R-G-B) color scheme to retrieve each pixel and write to the canvas ram during the "porch" (blanking) VGA time. This means that at each of the 25mhz clocks I can only update 15% of the screen and I somehow need my circuit the be aware of which 15% it is updating?
I can't figure out how to use double buffering because I can't figure out how to write data to the memory while reading. Is there a way to avoid bit-banging the protocol? How does this guy do it?