USER GUIDE / IMAGE PROCESSING / GPL_WDMA / OVERVIEW
概述
GPL_WDMA 模块概述
GPL_WDMA(Global Process Logic Wdma)主要功能是把输入数据写到 DDR 中,可通过寄存器配置选择需要 dump 的数据的模块。输入图像格式支持 RAW8、RAW12、RAW16、RAW32(RGB)、YUV 和 DOL_RAW16,输出支持对应的 RAW 拼接和 NV12/NV21/YUYV/DOL_RAW16。图像格式需要和 dump 数据的模块格式保持一致。
模块有两个基地址实例:S0_GPL_WDMA 为 0x13359000,S1_GPL_WDMA 为 0x13369000。
功能特点
设计内部功能单元可以分为以下几个部分:
- 数据拼接:根据不同数据类型,以 64bit 对齐拼接数据,写到 FIFO 中
- DMA OUT:等待 FIFO 中数据满足一笔 burst,开始发起写传输
- 模块性能支持 1pixel/1clock
- 支持最大分辨率 1920*1080,最小分辨率 512*256,图像宽度满足 4 的倍数
- 支持的输入数据格式如下:
- 单通道:RAW8(YUV-Y)、RAW10、RAW12、RAW16(YUV-UV)、RAW32(RGB888)
- 双通道:YUV420、YUV422、dol_raw16
- 支持 uv 调序,支持 RGB 调序
- 支持输出 YUV422->YUYV 输出,双通道转单存储空间
结构框图

GPL_WDMA_TOP 的结构如上图 13-1 所示,组成由以下几个部分:
- FSM_ctr、data_combine:wdma 的位置信息 mux_sel 确定后,等待 pre_frame_start 生效后,wdma 开始工作,双路模式下需要把最先有效的 pre_frame_start 给 wdma(即 i_frame_start)
- 模块内部由状态机控制,首先初始化并启动 dma,然后为 dump 阶段,进行数据拼接并写入 RAM,dma 结束即为 dump 结束,进入等待阶段,等待新的一帧开始
- wdma_y、wdma_uv:等待 ram 中存放的数据个数够本次突发 len 长度后,开始写数据传输
- RAM_ctrl:双路模式下,将 256x64 大小的 RAM 分为 2 片空间,wdma_y 和 wdma_uv 分时复用 RAM,每路可缓存 4 次请求 arlen 为 32 的数据量;单路模式下,wdma_y 占用整块 RAM,可缓存 8 次请求 arlen 为 32 的数据量
- Remap:G32S10 中删除该部分
- Warb_2to1:写总线仲裁,选择一路输出