1. 软件平台

vivado2019.1

2. 硬件平台

PYNQ_Z2

3. 具体实现流程

能需要做这一步,证明对vivado和IP核的自定义已经比较熟悉,如果没有可以看这。自定义IP核流程

操作蛮挺简单的 ,但是我一开始也踏了好多坑。

首先,编辑一个数据生成器。(第一次操作建议使用一个固定的值,比如:reg [15:0]data_out = 4095;这样可以避免很多问题)

module data_gen(input clk_n,rst_n,output reg [15:0]data);parameter count_end = 8'd100;reg [8:0]count;
always @(posedge clk_n or negedge rst_n)
beginif(!rst_n)begincount <= 0;data <= 0;endelsebegincount <= count + 1'b1;if(count > 8'd99)begincount <= 0;data <= data+1'b1;if(data>=16'd65535)data <= 0;endend
end
endmodule

采用的时钟为100Mhz,产生的数据变化率为1MHz。

现在看到这里

在这里添加一个wire变量

在这里调用刚刚编辑的数据产生模块

如果想了解清楚一点可以好好看看这个文件注释,这个文件包括读和写部分,把目光看到读数据部分

这里将slv_reg1替换为data_out[0](输出第一位),

将slv_reg2替换为data_out[15:0](输出生成的数据)

从这里不难发现,是根据地址来读取数据,具体怎么来的,这里不做分析。

然后,保存,综合验证,查看是否有问题。然后打包IP核(如果有经验就不用看了自定义IP核流程)

这样一个IP核就弄好了,然后是建立Block design,用SDK读取数据了

这里没有用其他的AXI通道口,用的是普通的AXI速度较慢

SDK部分代码如下


#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
/* Include Files */
#include "xparameters.h"
#include "xil_io.h"
#include "xstatus.h"
/* Definitions */
#define printf xil_printf                           /* smaller, optimised printf */
/***/
u32 flag0= 4095;
u32 flag1= 32767;#define  data0 0x43c00000
#define  data1 0x43c00004
#define  data2  0x43c00008
#define  data3  0x43c0000C
u16 data[8192];
int i=0;
int main()
{init_platform();print("Hello World\n\r");cleanup_platform();/* Execute the pwm output. */while(1){data[i]=Xil_In32(data2);   i++;if(i>=8192)i=0;printf("i=%d->->->data=%d\n\r",i,data[i]);}return 0;
}

data0 -data4对应那AXI_lite的寄存器

下载运行,就可以在windows->view->expresion看到读到的数据了

Pynq_Z2利用AXI_Lite从PS端读取PL端的数据相关推荐

  1. ZYNQ学习之路4.ZYNQ通过GP口读取PL内部RAM数据

    实验环境:window 7 64 bit, vivado 2017.1, ZTURN board. 参考手册:Xilinx Distributed Memory Generator 在ZYNQ开发中, ...

  2. web端读取本地excel表数据

    听说发文有积分,我就来试试了,请大家不要喷我,我只是个孩子. 使用的js插件是js-xlsx,下载地址:https://github.com/SheetJS/js-xlsx,大家可以自行下载. var ...

  3. 自定义ZYNQ的PL端数据处理器,通过DMA等进行交互(附GitHub源码)

    ZYNQ_PLPS_LOOP 摘要:在ZYNQ中设计了自定义的PL端数据处理器,通过DMA连接到AXI总线,完成了PS和该PL端的数据交互等功能. 开发板型号:Zynq-7000 SoC XC7Z30 ...

  4. ZYNQ学习之旅--PS_AXI_VDMA(利用VDMA实现将PS端的数据显示在PL端的HDMI上)

    目录标题 简介 帧缓存 同步锁相(Genlock ) Genlock Master Genlock Slave Dynamic Genlock Master Dynamic Genlock Slave ...

  5. 【ZYNQ实战】利用AXI Quad SPI快速打通Linux至PL端SPI从设备

    关注.星标嵌入式客栈,精彩及时送达 [导读] 前面写过篇介绍ZYNQ基本情况的文章,今天来肝一篇实战文章介绍AXI quad SPI 使用方法,如果你正使用ZYNQ的这个IP,希望对你有所帮助. 初识 ...

  6. (124)FPGA面试题-ZYNQ的PS和PL端怎么交互的?

    1.1 FPGA面试题-ZYNQ的PS和PL端怎么交互的? 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-ZYNQ的PS和PL端怎么交互的: 5)结束语 ...

  7. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)

    axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...

  8. zynqpl端时钟_第十一章 ZYNQ-MIZ701 PS读写PL端BRAM

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

  9. zynqpl端时钟_第十二章 ZYNQ-MIZ702 PS读写PL端BRAM

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

最新文章

  1. 十一、Redis五大数据类型之三Set
  2. android.graphic.Path
  3. web前端入门学习 html5(2)
  4. 每日英语:Why is Ye Shiwen’s Swim “Disturbing”?
  5. linux tree命令源码,[转帖]linux tree命令--显示目录的树形结构
  6. 一个网站服务器有多少个ip,一个服务器可以有多少个ip地址
  7. [css] 说说你对GPU的理解,举例说明哪些元素能触发GPU硬件加速?
  8. 2021-06-25 WebStorm的设置代码tab宽度等
  9. 系统分析师真题__专项:计算机系统与配置 2
  10. 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
  11. linux百度文字识别,基于Linux平台的图片文字识别系统
  12. 如何修改计算机无线mac地址,如何修改无线网卡物理地址,求指教
  13. 几种常见的注册中心以及区别
  14. Word如何绘制整行下划线,如何给分好的栏添加分隔线?
  15. qt 控件设置相对位置_qt设置控件相对位置
  16. 牛客网力扣算法编程之十四 | 字符串 - 字符个数统计 - Java代码实现
  17. 信息系统项目管理师(2022年) —— 第 13 章 项目合同管理
  18. NVIDIA IC校招笔试题目
  19. 写给那些搜了很多教程安装win10但老是提示报错的童鞋
  20. 解决Invalid HTTP_HOST header: ‘xxx.xx.xxx.xxx:80‘. You may need to add ‘xxx.xx‘ to ALLOWED_HOSTS问题

热门文章

  1. 初中作文计算机想象作文,想象作文600字初中 [想象作文]
  2. ProcessOn 数据恢复
  3. 流程图系列:ProcessOn如何扩大页面?
  4. js怎么使用php代码,js代码怎么用
  5. IT互联网领军者眼中的2013年
  6. 软件定义网络笔记(PART 1)
  7. for循环自我理解感悟
  8. 2023华北科技学院计算机考研信息汇总
  9. android系统日期对话框只显示年月,android 只显示年月的日历
  10. 计算机主硬盘隐藏分区大小,详细教您win10硬盘怎么隐藏分区