版本信息:
版本
REV2019
时间
04/01/2019
ZYNQ 修炼秘籍 PS DDR FDMA (AXI4)
电子版自学资料
常州一二三电子科技有限公司
溧阳米联电子科技有限公司
版权所有
米联客(MSXBO)04QQ 群:516869816
米联客(MSXBO)03QQ 群:543731097
米联客(MSXBO)02QQ 群:86730608
米联客(MSXBO)01QQ 群:34215299
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
版本
时间
描述
Rev2019
2019-04-01
首次更新,更新 AXI 自定义 MSXBO_FDMA 关于 DDR 读写测试,
视频缓存方案的 4 个例子。
第 2 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
感谢您使用米联客 ZYNQ系列开发板,以及配套教程。本教程使用自定义AXI4 IP MSXBO_FDMA对
DDR进行读写控制。MSXBO_FDMA是基于AXI4封装的DMA控制器,可以非常方便地用于FPGA的MIG控制器
和ZYNQ上并实现对ZYNQ PS 或者PL的DDR进行读写控制。和官方的DMA以及VDMA相比,FDMA具备无需
驱动程序,只要会FPGA就能读写DDR的简单方便性。
软件版本:VIVADO2017.4
版权声明:
本手册版权归常州一二三电子科技有限公司/溧阳米联电子科技有限公司所有,并保留一切权利,
未经我司书面授权,擅自摘录或者修改本手册部分或者全部内容,我司有权追究其法律责任。
免费获取资料、答疑解惑到米联客(MSXBO) 官方论坛 www.osrc.cn
扫描以下二维码注册论坛:www.osrc.cn
获取最新产品发布、资料更新、技术焦点 关注 米联客 MSXBO 微信公众号
微信公众平台:米联客 MSXBO
第 3 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
目录
ZYNQ 修炼秘籍 PS DDR FDMA (AXI4).............................................................................................................................. 1
CH01 基于 FDMA 内存读写测试 ........................................................................................................................................... 5
1.1 概述 ............................................................................................................................................................................. 5
1.2 基于 FDMA 搭建的 BD 工程 .................................................................................................................................... 5
1.3 ZYNQ PS IP 配置 ....................................................................................................................................................... 5
1.3 编写 FDMA 测试代码 ................................................................................................................................................ 7
1.5 测试代码状态机分析 ............................................................................................................................................... 11
1.6 测试结果 ................................................................................................................................................................... 12
CH02 基于 FDMA 实现多缓存视频构架 ............................................................................................................................. 14
2.1 概述 ........................................................................................................................................................................... 14
2.2 基于 FDMA 搭建的 BD 工程 .................................................................................................................................. 14
2.3 基于 FDMA 多缓存视频构架 fdma_controller ....................................................................................................... 17
2.4 代码叠层结构 ........................................................................................................................................................... 18
2.5 fdma_controller ......................................................................................................................................................... 18
2.6 sensor_data_gen ........................................................................................................................................................ 24
2.7 vga_lcd_driver.v ........................................................................................................................................................ 30
2.8 硬件连线 ................................................................................................................................................................... 32
2.9 测试结果 ................................................................................................................................................................... 32
CH03 基于 FDMA 实现 HDMI 视频输入输出..................................................................................................................... 34
3.1 概述 ........................................................................................................................................................................... 34
3.2 基于 FDMA 搭建的 BD 工程 .................................................................................................................................. 34
3.3 基于 FDMA 多缓存视频构架 fdma_controller ....................................................................................................... 34
3.4 代码叠层结构 ........................................................................................................................................................... 35
3.5 硬件连线 ................................................................................................................................................................... 36
3.6 测试结果 ................................................................................................................................................................... 36
CH04 基于 FDMA 实现 OV5640 摄像头视频采集 ............................................................................................................. 38
4.1 概述 ........................................................................................................................................................................... 38
4.2 基于 FDMA 搭建的 BD 工程 .................................................................................................................................. 38
4.3 基于 FDMA 多缓存视频构架 fdma_controller ....................................................................................................... 38
4.4 代码叠层结构 ........................................................................................................................................................... 39
4.5 摄像头安装 ............................................................................................................................................................... 40
4.6 测试结果 ................................................................................................................................................................... 40
第 4 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
CH01 基于 FDMA 内存读写测试
软件版本:VIVADO2017.4
操作系统:WIN10 64bit
硬件平台:ZYNQ MZ7X系列
米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!!
1.1 概述
FDMA 是 MSXBO(米联客的)基于 AXI4 总线协议定制的一个 DMA 控制器。有了这个 IP 我们可以统一
实现用 FPGA 代码直接读写 PL 的 DDR 或者 ZYNQ PS 的 DDR。
如果用过 ZYNQ 的都知道,要直接操作 PS 的 DDR 通常是 DMA 或者 VDMA,然而用过 XILINX 的 DMA IP
和 VDMA IP,总有一种遗憾,那就是不够灵活,还需要对寄存器配置,真是麻烦。对于我们搞 FPGA
的人来说,最喜欢直接了当,直接用 FPGA 代码搞定。现在 XILINX 的总线接口是 AXI4 总线,那么熟
练自定义 AXI4 IP 挂到总线上就非常方便了。基于这个目的,本小编定义了一个基于 AXI4 FULL MASTER
的 IP,暂且取名为 MSXBO_FDMA。
通过这个 IP 我们可以方便地进行 AXI4 FULL MASTER 的操作,比如我们经常要读写 DDR,那么只
要挂到 AXI4 总线上就可以利用这个 IP 实现。
以下是小编展示了一种在 ZYNQ 上的读写 PS DDR 测试方案。
1.2 基于 FDMA 搭建的 BD 工程
首先看下基于 FDMA 搭建的 BD 工程,这里使用的是 ZYNQ IP 搭建。
1.3 ZYNQ PS IP 配置
和使用 PL DDR MIG 不同,MZ7X 是 ZYNQ 芯片只有 PS 有 DDR 所以访问 DDR 需要配置 ZYNQ IP 这样配置
好后就可以通过 AXI 总线范围 PS 的 DDR 了。
第 5 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
配置输入时钟
配置 DDR
第 6 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
仅配置 HP 接口
地址空间分配
1.3 编写 FDMA 测试代码
首先右击 BD 并且单击
其次继续右击 BD 文件,选择 Create HDL Wrapper
第 7 页 共 41 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 2019 版 FDMA(AXI4)高级应用
最后修改 Wrapper 并且添加测试代码,测试代码如下
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:CZ123 MSXBO www.osrc.cn
// Engineer: tjy
// Create Date: 2019/04/02 12:39:25
// Design Name:
// Module Name: fdma_top
// Project Name: AXI_FDMA
// Target Devices:
// Tool Versions: VIVADO
// Description: test DDR
// Dependencies:
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//////////////////////////////////////////////////////////////////////////////////
module fdma_top(
inout [14:0]DDR_addr,
inout [2:0]DDR_ba,
inout DDR_cas_n,
inout DDR_ck_n,
inout DDR_ck_p,
inout DDR_cke,
inout DDR_cs_n,
inout [3:0]DDR_dm,
inout [31:0]DDR_dq,
inout [3:0]DDR_dqs_n,
inout [3:0]DDR_dqs_p,
inout DDR_odt,
inout DDR_ras_n,
inout DDR_reset_n,
inout DDR_we_n,
inout FIXED_IO_ddr_vrn,
inout FIXED_IO_ddr_vrp,
inout [53:0]FIXED_IO_mio,
第 8 页 共 41 页