一、问题提出
我们假设上一级传输过来了如下的图像数据:
- 时钟为
60MHZ
, - HBLANK为512CLK,
- HSIZE为4096CLK,
- VSIZE为(4096+512)*4096+512=18874880CLK,
- VBLANK为14458453CLK
- DATA_OUT为
16bit
,一次传输4096
个数据。
如果想通过VGA将图像显示出来,VGA显示用的时钟是65MHZ
,那么就有两个问题需要我们解决:
- 图像分辨率是
4K * 4K
,数据量太大,我们需要将其压缩为比如512 * 512
; - 图像数据的时钟和VGA显示用的时钟频率不一样,我们需要用
双口RAM
缓冲一下,其实你也可以用FIFO
;不过需要注意存储器的大小应该设置为数据的个数
,这样才能在读完一副图之后,恰好再从头开始读,循环往复
1、创建Vivado的伪双口RAM