【二 zedboard】PS和PL之间的交互
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之间的交互相关推荐
- 米联客 ZYNQ/SOC 精品教程 S02-CH19 利用BRAM进行PS与PL间数据交互
软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...
- (124)FPGA面试题-ZYNQ的PS和PL端怎么交互的?
1.1 FPGA面试题-ZYNQ的PS和PL端怎么交互的? 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-ZYNQ的PS和PL端怎么交互的: 5)结束语 ...
- vivado中ZYNQ详解(主要用于PS和PL之间的工作衔接)
可进qq群进行相关Verilog知识交流:1073030956 AXI的理解 AXI(Advanced extensible Interface)协议主要描述了Master设备和Slave设备之间的数 ...
- 米联客 ZYNQ/SOC 精品教程 S02-CH20 利用EMIF进行PS与PL间数据交互
软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...
- zynqpl端时钟_第十二章 ZYNQ-MIZ702 PS读写PL端BRAM
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...
- ZYNQ从放弃到入门(八)-PS和PL交互
之前的几篇文章主要集中在 Zynq SoC 的处理系统 (PS) 方面,包括: 使用 MIO 和 EMIO Zynq SoC 的中断结构 Zynq 私有定时器和看门狗 Zynq SoC 的三重定时器计 ...
- Linux下pl与ps端的通信,Overlay设计方法篇之第四章PS与PL的交互
Overlay由两个主要部分组成--bitstream文件和hwh(Hardware Handoff)文件.可以说Overlay设计其实就是一种PL与PS的交互设计.通常PL设计针对特定任务进行高度优 ...
- Linux下pl与ps端的通信,zedboard通过BRAM实现PS和PL的简单通信
使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口 ...
- ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--使用AXI4LITE接口进行PS和PL交互 前言 PS端AXI接口 AXI4LITE slave模块的设计 后记 ...
最新文章
- squid 使用 笔记
- Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
- 字符串转二进制 python_将字符串转换为二进制
- 关于地理信息系统(GIS)的几个问题
- 接口继承中一个常见问题的思考
- java安全增加url_规范化String以在Java中创建安全URL
- asp.net mvc webform和razor的page基类区别
- 2016.3.16(Java图形用户界面)
- Nginx配置性能优化的方法
- 熊孩子倾家荡产玩游戏、打赏主播有救了!最高法:无效,可退还
- android js 开屏动画,利用Flutter实现“孔雀开屏”的动画效果
- 软件维护复杂度的因素
- php获取客户端ip地址
- 阿里巴巴首次揭秘电商知识图谱AliCoCo!淘宝搜索原来这样玩!
- 纯JS实现懒加载+瀑布流布局
- 学习了罗昭锋的文献管理与信息分析的感受
- 面试必问之JVM原理 1
- 阿里云FaaS舜天平台:执FPGA异构计算之牛耳
- iphonex正面图_iPhoneX高清全方位图赏
- c语言 %-10s,10s
热门文章
- 聊聊我的英语学习经验
- 元气森林,真能在中国再造一个“可口可乐”吗?
- 近视了也没关系,以后可以做手术修复,真的对吗?
- 操作系统课程设计----读者-写者 问题(c语言)
- 刚想起 一些净瓶分析
- 《代码大全》到底讲什么?
- 【pytest】(二) pytest与unittest的比较
- unity demo免费下载:第三人称镜头移动+瞄准线+发射弧线球打击方块(方块可以识别受击方向)demo
- 计算机集群英语怎么说,cluster是什么意思_cluster的翻译_音标_读音_用法_例句_爱词霸在线词典...
- 14G服务器BOSS卡的基本介绍和配置方法