阶段目标:在第一步的基础上,集成 VDMA 和 DDR2 内存,实现从帧缓存读取并显示图像。
输出结果:Cortex-M3 软核在 DDR2 中写入图像数据,VDMA 自动读取并通过 VGA 显示
设备:NEXYS A7开发板
架构梳理:
- MIG 7 Series:配置 DDR 物理层控制器,提供
ui_clk和高带宽 AXI-MM 接口。 - AXI VDMA (MM2S 通道):配置为单缓冲循环读取模式,作为纯粹的像素中转。
Cortex-M3 软核控制:通过 AXI-Lite 接口向 VDMA 下发寄存器配置(源地址、HSIZE、VSIZE),启动传输。
和第一步不同在于,第一步图像是实时生成实时显示,这一步会多一个帧缓存的步骤,M3写入DDR一幅图片由VDMA进行读取
系统总体架构

硬件模块配置
1. AXI VDMA
作用:自动从 DDR2 读取帧缓存,转换为 AXI Stream 视频流
传统方式:CPU 循环读取每个像素 → 写到 Video Out 问题: CPU 占用高
VDMA 方式:配置一次 → VDMA 自动循环读取 优势: CPU 只需写帧缓存,显示自动刷新
可以先取消勾选Enable Write Channel,只启用Enable Read Channel,Stream Data Width根据自己需要更改
2. MIG (Memory Interface Generator) - DDR2 控制器
作用:提供 DDR2 SDRAM 的 AXI4 接口
配置比较麻烦,建议参考自己板子的手册,找官方的DDR约束。
3. AXI SmartConnect
作用:用于管理多个 AXI 主设备(Master)和从设备(Slave)之间互联和仲裁
配置好主从通道数即可
时钟方案
Clocking Wizard 配置
根据mig里的实际配置新增时钟供给clk_ref_i和sys_clk_i
mig输出的ui_clk时钟域:AXI SmartConnect m_axi_mm2s_aclk
接线
首先求助Run Connection Automation大人
记得从AXI Interconnect引出来M0x_AXI给VDMA,保证M3软核对DDR的访问
数据平面:读取 VDMA->AXI SmartConnect->Memory Interface Generator (MIG 7 Series)
输出 VDMA->AX14-Stream to Video Out->rgb888_to_rgb444_vga_v1_0
控制平面:Cortex-M3->AXI Interconnect
尾声
Generate Output Products
Create HDL Wrapper
分配引脚生成.xdc
综合实现生成比特流