我有一个Altera DE2开发板,正在尝试绘制精灵。我在实现屏幕缓冲区时遇到了一些麻烦。
我有一个显示实体,它以25 MHZ的速率输出用于VGA显示的像素。
我希望在SDRAM中实现一个缓冲区。最初的想法是从SDRAM以25 MHZ的速率将像素加载到下一个像素。这行得通,但我无法以这种速率将像素写入SDRAM,也无法为每个新帧足够快地清除屏幕。我需要2个时钟来写入数据,而且我的电路板工作在50 MHZ,所以我有足够的时间进行完整的读取。
我想我做的事情非常可怕,非常错误。在VHDL中通常如何实现这样的绘图画布?
我能找到的最接近的东西是使用2-3-3(RGB)配色方案来检索每个像素,并在“门廊”(空白)VGA时间期间将其写入画布ram。这意味着在每个25MHz时钟上,我只能更新15%的屏幕,而我不知何故需要我的电路知道它正在更新哪个15%的屏幕?
我不知道如何使用双缓冲,因为我不知道如何在读取时将数据写入内存。有没有一种方法可以避免协议发生混乱?这个家伙是怎么做到的?