ZYNQ学习(三)----关于VDMA

关于VDMA,以下两篇博客写得很好:

1、https://blog.csdn.net/qq_36373500/article/details/70230663

2、https://blog.csdn.net/vacajk/article/details/53908661

看完大概就懂了。。。只是有几点还是需要注意的:



1、write burst size和read burst size

dma实际上是一次一次的申请总线,把要传的数据总量分成一个一个小的数据块。比如要传64个字节,那么dma内部可能分为2次,一次传 64/2=32个字节,这个2次呢,就叫做burst。这个burst是可以设置的。这32个字节又可以分为32位 * 8或者16位*16来传输。
transfer size:就是数据宽度,比如8位、32位,一般跟外设的FIFO相同。

burst size:就是一次传几个 transfer size.

2、关于Fsync Options

xilinx官方推荐截图上的设置。。。。

写端:s2mm_tuser这个信号在video_in_toAxiStream中已经转成了帧开始信号。这个很好理解。

读端:None。官方的理解是Selecting this option enables AXI VDMA in free run mode. In free run mode, video data

are transferred as quickly as possible without waiting for any external trigger.

Note: The channel provides a start-of-frame pulse on m_axis_mm2s_tuser(0) and can be used by downstream cores.

也就是说帧同步会自己产生,上端程序会配置帧的width和height,所以产生这个信号是完全可能而且合理的。

猜你喜欢

转载自blog.csdn.net/skyplain1984/article/details/80009381