[X]关闭

[米联客-XILINX-H3_CZ08_7100] FPGA_PL-DDR篇连载-07基于fdma ddr多路视频数据构架

文档创建者:FPGA课程
浏览次数:277
最后更新:2024-09-10
文档课程分类-AMD-ZYNQ
AMD-ZYNQ: ZYNQ-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 2-FPGA PL DDR使用
本帖最后由 FPGA课程 于 2024-9-10 09:21 编辑

​ 软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!



1概述
基于AXI总线可以使用axi_interconnect的仲裁机制,同时接入多个基于AXI总线的IP,米联客的fdma采用的是AXI4总线接口,因此基于AXI总线的多数据通路方案实现起来会很容易。每一个通路都可以独立工作,总裁都交给axi_interconnect IP来完成。
本方案实现了4路视频测试数据的输入,以及1路视频的输出。
2系统框图
6b832009c0af4083beb54c1f184632b9.jpg
3逻辑设计
本方案中通过VTC0产生1080P视频时序,通过VTC1产生480P时序,通过TPG模块产生测试图形。测试视频数据通过uifdma_dbuf0, uifdma_dbuf1, uifdma_dbuf2, uifdma_dbuf3 IP的写通道,再经过FDMA IP后,经过AXI interconnect IP后进入DDR缓存。缓存后的数据,通过uifdma_dbuf0的读通道输出到HDMI IP显示。
image.jpg
1:帧同步设计
对于多路视频传输的场合,需要正确设置同步。 uifdma_dbuf0的写通道输出帧同步计数器直接接入
uifdma_dbuf0,uifdma_dbuf1, uifdma_dbuf2, uifdma_dbuf3的写通道同步计数输入。uifdma_dbuf0的读通道,延迟1帧于uifdma_dbuf0的写通道帧计数器。
9395b763db7e4dd0992e2547d56965f6.jpg
2:多路视频的同屏显示原理
57d2519254f540279f3149f75fd641a6.jpg
以把2个摄像头CAM0和CAM1输出到同一个显示器上为列,为了把2个图像显示到1个显示器,首先得搞清楚以下关系:
hsize:每1行图像实际在内存中占用的有效空间,以32bit表示一个像素的时候占用内存大小为hsize*4
hstride:用于设置每行图像第一个像素的地址,以32bit 表示一个像素的时候v_cnt* hstride*4
vsize:有效的行

因此很容易得出cam0的每行第一个像素的地址也是v_cnt* hstride*4
同理如果我们需要把cam1在hsize和vsize空间的任何位置显示,我们只要关心cam1每一行图像第一个像素的地址,可以用以下公式v_cnt* hstride*4+offset

这里4个通道的640*480分辨率视频,在同一个1920*1080的视频输出显示。vidoe1在左上角,video2在右上角,video3在左下角,video4在右下角。
b6437b341d5145eca77fb2d1a412252f.jpg
uifdma_dbuf支持stride参数设置,stride参数可以设置输入数据X(hsize)方向每一行数据的第一个像素到下一个起始像素的间隔地址,利用stride参数可以非常方便地摆放输入视频到内存中的排列方式。
video1的start addr1=0x01000000(第一个图像的起始地址对于PL DDR可以从0地址开始,低于PS DDR建议偏移20MB)
video2的start addr2=0x01000000+(1920-640)*4
video3的start addr3=0x01000000+(1080-480)*1920*4
video4的start addr4=0x01000000+(1080-480)*1920*4+(1920-640)*4
3:uifdma_dbuf0的参数设置
bb10f92a0beb46668b3d6e8d80d6f3c0.jpg
4:uifdma_dbuf1的参数设置
83f94009f772428681574349e58950bc.jpg
5:uifdma_dbuf2的参数设置
ced34b24293b432f9df6143d22a5db5a.jpg
6:uifdma_dbuf3的参数设置
bf46009cdd404c72b158fd0170e4d4df.jpg
7:uiFDMA的参数设置
885d2a4275964c90b6a5b779ad377628.jpg
8:地址空间分配
配置完成后需要注意地址空间分配,FDMA IP的内存起始地址从0开始
590fc80ec0a44a3c8ec3066f70f7be21.jpg
4实验结果
编译并下载
4c41d51ae3a04646a7e4f5ce7072e596.jpg


b90c5dd23119449e9f56828c6e6747db.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则