У меня есть доска Altera DE2 и я пытаюсь рисовать спрайты. У меня возникли проблемы с реализацией экранного буфера.
У меня есть объект отображения, который с частотой 25 МГц выводит пиксели для отображения VGA.
Я надеялся реализовать буфер в SDRAM. Первоначальная идея заключалась в том, чтобы загружать пиксели в следующий пиксель со скоростью 25 МГц из SDRAM. Это работает, но я не могу записать пиксели в SDRAM с такой скоростью и не могу очистить экран достаточно быстро для каждого нового кадра. На запись данных у меня уходит 2 часа, и моя плата работает на частоте 50 МГц, поэтому у меня достаточно времени, чтобы выполнить полное чтение.
Я бы предположил, что я делаю что-то ужасно, ужасно неправильно. Как такой холст для рисования обычно реализуется в VHDL?
Самое близкое, что я могу найти, - это использовать цветовую схему 2-3-3 (RGB) для извлечения каждого пикселя и записи в оперативную память холста в течение времени VGA «крыльца» (гашения). Это означает, что на каждой частоте 25 МГц я могу обновлять только 15% экрана, и мне как-то нужна моя схема, чтобы знать, какие 15% она обновляет?
Я не могу понять, как использовать двойную буферизацию, потому что я не могу понять, как записывать данные в память во время чтения. Есть ли способ избежать битового протокола? Как этот парень делает это?