目录
一、实验简介
二、vivado部分处理
三、SDK编程
四、实验测试
五、总结
一、实验简介
ZYNQ系列嵌入式FPGA可以使PS将数据写入PL部分BRAM,PL可以将数据读取后再重新写入BRAM,PS将数据读出后再传走,这样可以使PL部分专心处理数据,不用考虑相对缓慢的数据接收与发送部分,并且可以实现数据的缓存。这也是数据量较小时的PS与PL的数据交互方法,当数据量达到BRAM的存储最大值后,就需要使用DDR来进行交互了。
实验目的:通过自定义IP核,将PS写入BRAM的数据加一后重新写入BRAM,再与第一次写入的数据比较。
二、vivado部分处理
首先创建IP核:Tools->Creat and Package New IP,选择创建AXI4 Peripheral:
在 Name 一栏的名称改为“ pl_bram_plus1”, IP 核的路径改为工程目录下的 ip_repo 文件夹,即删除路径“ /../”中间的一个“ .”符号,其它的设置直接保持默认即可,点击“ NEXT”,直到最后点击“ Finish”按钮完成自定义 IP 核的创建。
到这里IP核的框架已经搭建好了,接下来要去进行细节定义。首先打开IP Catalog,依次展开 User Repository→AXI Peripheral→“ pl_bram_plus1_v1.0”,右键选择“ Edit in IP Packager”。
打开 pl_bram_plus1_v1_0.v 文件,在 Users to add ports here 和 User port ends 中间行添加如下代码,这些端口用于连接 BRAM 端口的 BRAM_PORTB。
output wire ram_clk , //RAM 时钟
input wire [31:0] ram_rd_data, //RAM 中读出的数据
output wire ram_en