【FPGA设计_180110】vdma的使用

参考资料:pg020_axi_vdma.pdf


VDMA可以在内存和数据流之间做切换,从而实现一些类似于帧率切换,数据加载等功能,下面简单描述一下vdma的使用,方便后续调试。

vdma的配置界面1:


【FPGA设计_180110】vdma的使用_第1张图片

其中可以配置地址总线宽度,AXI总线数据总线宽度,读写burst  size,Stream数据总线宽度,以及linebuffer深度(手册描述的是AXI从ddr读数据会先放到line buffer,然后再发送;stream会先写到linebuffer,然后再写内存)


vdma的配置界面2:

【FPGA设计_180110】vdma的使用_第2张图片

这里可以配置产生fsync选项,genlock选项,以及是否允许非对齐传输,fsync相当于一个同步信号,有效后才会触发vdma工作;genlock是一个读写通道之间同步的机制;



下面以一个持续发起MM2S读内存,然后通过AXIS_MM2S stream接口将数据发送出去,

1.版本寄存器0x2c

2.配置MM2S控制寄存器0x00为0x8b

3.配置hsize 寄存器0x54为0x100,代表只要vdma从内存取够256byte,就会开始stream传输;

4.配置mm2s stride寄存器0x58为0x200,代表stream每发送512byte数据后,就产生一个tlast;

5.配置ddr起始地址,因为我们配置时选择3个frame buffer,故这里配置0x5c,0x60,0x64都为0x10000000,代表都从内存0x10000000取数据;

6.配置vsize寄存器0x50为0x5,代表发起5次stream传输后(每次以tlast为标志),下次再从内存取数据的话,从首地址取;


在线调试结果:

【FPGA设计_180110】vdma的使用_第3张图片




缺点:目前发现缺省配置下vdma占用LUT资源都有2k,资源不小。







你可能感兴趣的:(FPGA)