PS和PL交互的话采用的是AXI协议,其中又可以分为:AXI-full(完整的AXI协议)、AXI-Stream(流式协议)和AXI-Lite(精简版,一次只能读写一个字,32位的寄存器)。

一、原理说明

1.在PL端创建IP核,用于向PS发送数据。这一过程通过AXI-Lite协议发送数据到GP接口,GP接口将会把数据放到该IP对应的内存中(已经同一编址)

2.在AXI-Lite协议下,与GP接口交互是一个字一个字的读写。

3.然后在PS部分通过ARM核上执行访问内存的C语言代码就可以把他对应的数据拿出来(可以用指针的方式,拿到对应的数据)。

4.IP对应的地址有3个方法获得:

  • 在PL设计的时候,在Block design中是可以看到该地址的,在内存助手中;

  • 用sdk打开该工程时,该地址也会自动生成对应的driver文件夹里;

  • sdk中头文件:<xparameters.h>中也可以找到IP核的相关信息,包括IP地址

二 .实现的目标

  • PL端向PS端发送数据
  • PS端读取PL端的数据

三. 打开vivado创建工程

创建源文件


module generrate_data(output wire [31:0]  data1,output wire [31:0]  data2,output wire [31:0]  data3,output wire [31:0]  data4);assign data1 = 32'd1123 ;
assign data2 = 32'd456 ;
assign data3 = 32'd789  ;
assign data4 = 32'd987  ;
endmodule

然后将这个文件添加到block design中.

如果找不到add module to block design 这个选项,那么有几个原因,具体可以参考传送门

最后得到data_make这个ip核,zynq7这个是PS端,如何创建可以查看上一篇博客.







     input [31:0]    data1,input [31:0]    data2,input [31:0]    data3,input [31:0]    data4,

     .data1(data1),.data2(data2),.data3(data3),.data4(data4),

     input   [31:0]  data1,input   [31:0]  data2,input   [31:0]  data3,input   [31:0]  data4

         // Address decoding for reading registerscase ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] )3'h0   : reg_data_out <= data1;3'h1   : reg_data_out <= data2;3'h2   : reg_data_out <= data3;3'h3   : reg_data_out <= data4;3'h4   : reg_data_out <= slv_reg4;3'h5   : reg_data_out <= slv_reg5;3'h6   : reg_data_out <= slv_reg6;3'h7   : reg_data_out <= slv_reg7;default : reg_data_out <= 0;















生成比特流










#include <stdio.h>
#include <xparameters.h>
#define IP_ADDR XPAR_PL_PS_LITE_0_S00_AXI_BASEADDR //宏定义int main(){//1B = 8bit//1reg=32bit=4Bunsigned int data1 = (*(volatile unsigned int*)(IP_ADDR + 0));unsigned int data2 = (*(volatile unsigned int*)(IP_ADDR + 4));unsigned int data3 = (*(volatile unsigned int*)(IP_ADDR + 8));unsigned int data4 = (*(volatile unsigned int*)(IP_ADDR + 12));/*******assign data1 = 32'd1123 ;assign data2 = 32'd456 ;assign data3 = 32'd789  ;assign data4 = 32'd987  ;***********/printf("data1:%d",data1);printf("data1:%d",data2);printf("data1:%d",data3);printf("data1:%d",data4);}




到此就完成了PL端发布数据,然后PS端通过AXI-Lite协议接受PL端的数据,并打印出来

                                 ---晓凡  于2022年3月19日桂林书

【二 zedboard】PS和PL之间的交互相关推荐

  1. 米联客 ZYNQ/SOC 精品教程 S02-CH19 利用BRAM进行PS与PL间数据交互

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

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

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

  3. vivado中ZYNQ详解(主要用于PS和PL之间的工作衔接)

    可进qq群进行相关Verilog知识交流:1073030956 AXI的理解 AXI(Advanced extensible Interface)协议主要描述了Master设备和Slave设备之间的数 ...

  4. 米联客 ZYNQ/SOC 精品教程 S02-CH20 利用EMIF进行PS与PL间数据交互

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

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

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

  6. ZYNQ从放弃到入门(八)-PS和PL交互

    之前的几篇文章主要集中在 Zynq SoC 的处理系统 (PS) 方面,包括: 使用 MIO 和 EMIO Zynq SoC 的中断结构 Zynq 私有定时器和看门狗 Zynq SoC 的三重定时器计 ...

  7. Linux下pl与ps端的通信,Overlay设计方法篇之第四章PS与PL的交互

    Overlay由两个主要部分组成--bitstream文件和hwh(Hardware Handoff)文件.可以说Overlay设计其实就是一种PL与PS的交互设计.通常PL设计针对特定任务进行高度优 ...

  8. Linux下pl与ps端的通信,zedboard通过BRAM实现PS和PL的简单通信

    使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口 ...

  9. ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--使用AXI4LITE接口进行PS和PL交互 前言 PS端AXI接口 AXI4LITE slave模块的设计 后记 ...

最新文章

  1. squid 使用 笔记
  2. Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
  3. 字符串转二进制 python_将字符串转换为二进制
  4. 关于地理信息系统(GIS)的几个问题
  5. 接口继承中一个常见问题的思考
  6. java安全增加url_规范化String以在Java中创建安全URL
  7. asp.net mvc webform和razor的page基类区别
  8. 2016.3.16(Java图形用户界面)
  9. Nginx配置性能优化的方法
  10. 熊孩子倾家荡产玩游戏、打赏主播有救了!最高法:无效,可退还
  11. android js 开屏动画,利用Flutter实现“孔雀开屏”的动画效果
  12. 软件维护复杂度的因素
  13. php获取客户端ip地址
  14. 阿里巴巴首次揭秘电商知识图谱AliCoCo!淘宝搜索原来这样玩!
  15. 纯JS实现懒加载+瀑布流布局
  16. 学习了罗昭锋的文献管理与信息分析的感受
  17. 面试必问之JVM原理 1
  18. 阿里云FaaS舜天平台:执FPGA异构计算之牛耳
  19. iphonex正面图_iPhoneX高清全方位图赏
  20. c语言 %-10s,10s

热门文章

  1. 聊聊我的英语学习经验
  2. 元气森林,真能在中国再造一个“可口可乐”吗?
  3. 近视了也没关系,以后可以做手术修复,真的对吗?
  4. 操作系统课程设计----读者-写者 问题(c语言)
  5. 刚想起 一些净瓶分析
  6. 《代码大全》到底讲什么?
  7. 【pytest】(二) pytest与unittest的比较
  8. unity demo免费下载:第三人称镜头移动+瞄准线+发射弧线球打击方块(方块可以识别受击方向)demo
  9. 计算机集群英语怎么说,cluster是什么意思_cluster的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. 14G服务器BOSS卡的基本介绍和配置方法