图像数据存储在PS端的DDR上(不使用ARM核)

AXI4 转 FIFO 接口模块设计

PL 端要想读写 DDR,需要通过 AXI 总线,使用 PS 侧的 DDR 控制器,完成数据的读写。模块能够将数据转换成 AXI4 格式,通过 AXI 总线传输给 PS 侧 DDR 控制器,实现数据对 DDR 的读写操作。在 PS 与 PL 之间,存在有 4 个高性能 的 AXI 从接口(HP 接口, PS 端为从设备),该接口用于方便 PL 端与 DDR 间 大量数据的读写操作。任何情况下,只使用DDR控制器都 会出现问题,即使写入和读出的速率一样也是会出现 问题的,更何况实际应用中总是读写不连续的,就更 会出现问题所以要使用FIFO

其中,wr_ddr3_fifo 和 rd_ddr3_fifo 为上文中我们提到的读写 FIFO,用于存 储读写数据,同时解决时钟域等问题。fifo2axi4 为 AXI4 接口转换模块,负责 fifo 与 axi4 接口间的转换,将写侧 FIFO 里的数据读出然后存储在 DDR 存储器 以及将 DDR 存储器读出的数据存放到读侧 FIFO 缓存。

上面的读写FIFO都是先读形式的。

用FIFO转AXI4,就把对DDR的读写问题转换成对FIFO的读写控制问题。

 创建BD

对ZYNQ的IP进行配置

这里本次设计我们需要借助 HP 接口来实现数据写入到 PS 侧的 DDR3,所以要配置HP接口:

图形化界面快速跳转

使能HP接口

设计需要使用到 DDR3 ,接下来我们还需要配置 DDR 控制器(这里不用对DDR控制器进行配置,只需要选择使用到的DDR型号即可)
对时钟进行配置

添加互联和复位IP核

AXI Interconnect
ctrl+i 搜索并添加该 IP ,本次设计中,该 IP 核无需 配置,直接使用即可,Processor System Reset 核

端口连接

在BD图上把模块连接到一起,并创建对应的封装
至此我们生成的system就是一个模块,你把他当成一个PL的一个模块去使用就可以了。

写顶层文件

包括上方生成的system模块。和其他模块

为连接SDK做准备

引脚约束

其中 Package Pin I/O Std 是我们要约束的内容

生成比特流

完成约束后生成 bit 流,在 bit 生成完成后,generate bit...

导出硬件

这里注意SDK是只有2019之前的版本才能用,在vivado2020里面只有tool   latch vitis ,,,

运行sdk

板级验证

硬件连接

创建配置项

要把多路数据缓存到DDR上怎么处理?

首先,BD工程中的IP配置。HP使能N(N<4)个,然后AX inter的IP 主从接口都配置成N;
然后需要N个FIFO_AXI4的转换模块,FIFO_AXI4是能够设置读写操作的开始地址和结束地址的。
其他操作需要

怎么把自己的.v文件添加到BD文件中?

第一步:打开.bd文件,必须双击,bd文件界面转换到BD文件界面

第二步:想要添加自己的模块,找到Design Sources里面需要添加的模块,右键选择Add Module to Block Design。

后面从连接端口到生成HDF文件的过程跟上面一样。

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值