项目:基于 ZYNQ 的 IMX2221 摄像头实时视频流采集传输
章节:读DMA
本章目的:添加写读DMA,将DDR中的数据取出来进行之后的HDMI显示,HDMI和DDR之间我们同样使用一个FIFO来进行缓冲
前言--------AXI4 读时序、
我们需要设计的时候arvalid,araddr,rready这三个信号
1. 第一步:添加AXI IP核
添加IP见写DMA那一章
2. 编写代码
代码部分根据AXI读时序来进行编写,但是需要注意的是
- 需要在给出复位之后才能开始从DDR中读取(这个其实也不需要,但是为了严谨),复位信号和之前的写DMA复位相同,都来自于Bayer2rgb模块开始信号。
- 当复位之后,给一个永久拉高信号,在此之后当fifo中的写数据小于一行的时候就从ddr中读取数据
- 我们可以当读数据count大于一行的时候开始读出,来查看时序有无错误
设计是循序渐进的,之后我们会编写hdmi的模块对每帧的数据进行显示,到时候会从hdmi模块中给出rd_fifo_en信号,所以之后呢,我们需要在axi_dma_rd模块给出一个fifo数据足够的信号来作为hdmi的复位信号