提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ZYNQ开发系列——为PS和PL的交互做准备

我们使用ZYNQ的片子,肯定存在PS和PL交互的情况。一般来说大部分应用都是以PS为主机,PS通过地址管理着它所有的外设。


可以配置SPI外设
可以配置I2C外设
可以配置UART外设
可以配置网口外设
PS给每个外设分配一个地址空间进行管理。
那如果有些外设是要通过PL来实现呢,例如PS自带串口控制器只有2个,那如果项目中要使用三个呢,则需要通过AXI接口来与PL实现的串口进行通信,对这个AXI接口分配一段地址区间,那么在PS看来这个PL实现的串口也是它的一个外设了。
所以整个PL的逻辑都可以看成是PS的外设,通过AXI接口进行管理


为了创建AXI接口,PS需要配置一个Master AXI接口

配置了Master AXI接口后,我们需要一个AXI-INTERCONNECT进行中转

关于AXI-Interconnect的作用的描述,可以查询ug761文档关于AXI Interconnect Core Diagrams部分的内容


1、 AXI-Interconnect作为总线仲裁器,实现了总线通信,N Master模块与M Slave模块的通信,减少了相互间通信的复杂度
2、 内部实现时钟域转换,不需要外部的过度干预
3、 内部可以实现FIFO等,免去了很多场景下需要FIFO,Register,位宽转换,协议转换的需求。

尤其是这个协议转换,如下图的例子,如果我把M_AXI_GP0_0设置成 AXI4LITE的协议,会报错。从M_AXI_GP0接口出来的是AXI3的协议。

连接一个AXI-Interconnect后


把M00_AXI_0设置成 AXI4LITE的协议,则不会报错,AXI-INTERCONNECT模块自动做了AXI3到AXI4LITE的协议转换.

然后对M00_AXI_0进行地址分配,则可以使用了。
AXI4lite的协议需要在PL端进行实现。

如果想更加偷懒,那么则可以添加一个axi_bram_ctrl_0。这样axi_bram_ctrl_0模块帮我们做了协议处理以BRAM_PORTA_0端口输出则比AXIlite简单很多。

后面,我们为了详细了解AXI4lite协议,还是以自己手动连接的方式进行

ZYNQ开发系列——为PS和PL的交互做准备相关推荐

  1. ZYNQ开发系列——把PS和PL程序烧写到FLASH中

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--把PS和PL程序烧写到FLASH中 生成 fsbl.elf 生成 BOOT.bin 下载 BOOT.bin 文件到 ...

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

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

  3. ZYNQ开发系列——PS响应PL中断请求

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS响应PL中断请求 前言 中断的设置 PS部分代码 前言 PS和PL的交互中,还有一个中断没有讲到,在<从 ...

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

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

  5. ZYNQ开发系列——PS和PL交互之PS端开发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS和PL交互之PS端开发 前言 函数封装 后记 前言 前面<ZYNQ开发系列--使用AXI4LITE接口进 ...

  6. ZYNQ开发系列——PS开发之HelloWorld

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS开发之HelloWorld 前言 外设接口 SDK建立工程相关操作记录 前言 俗话说一日不见,如隔三秋.两年没 ...

  7. zynq开发系列4:EMIO连接按键控制MIO连接的灯

    EMIO是负责PL端和PS端通信,PL侧按键可以通过连接EMIO来控制连接到MIO的PS侧的LED.原理和实验3 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 类似,只是由MIO侧的 ...

  8. ZYNQ开发系列——ZYNQ系统的搭建

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--ZYNQ系统的搭建 DDR设置 FLASH设置 UART设置 网口设置 当我们有一个要用ZYNQ做的项目时,首先当 ...

  9. ZYNQ开发系列——hw_platform包和BSP包中的一些理解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--hw_platform包和BSP包中的一些理解 前言 hw_platform BSP包 前言 前面我们完成了PS输 ...

最新文章

  1. Django中的模型继承
  2. 万物智联时代的终端智能「管家」重磅升级:混合云IoT一体机
  3. linux web 服务器性能,Linux系统Web服务器性能测试(2)
  4. 二级Python 第三方库
  5. zynq+linux固化程序,如何在 Zynq UltraScale+ MPSoC 上实现 Linux UIO 设计
  6. mysql数据库随机生成数据库_MySQL 从零开始:08 番外:随机生成数据库数据
  7. 混合开启服务-----百度音乐盒
  8. 【优化算法】冠状病毒群体免疫优化算法(CHIO)【含Matlab源码 186期】
  9. 蓝牙小钢炮 - Bose 博士 Revolve 蓝牙音箱使用感受
  10. java单例模式代码
  11. python罗马数字转换,Python 罗马数字转换整数
  12. 有关Android Studio模拟机无法联网解决办法(傻瓜粗暴方法)
  13. 仿爱奇艺加载dialog
  14. S.M.A.R.T 参数详解及推荐指标
  15. 2023西北大学计算机考研信息汇总
  16. 数据团队总监生存指南
  17. oracle 获取第三行,Oracle 11g 第三章知识点总结——单行函数
  18. 基于java项目ssm二手书交易平台设计与实现(论文+程序设计源码+数据库文件)
  19. web移动端调试神器Eruda
  20. uniapp 小程序分享功能

热门文章

  1. IDEA方法之间取消下划实线
  2. 计算机在军事的应用论文,信息技术论文3000字【军事信息技术论文】
  3. TCP协议中的核心知识点,SYN Flood?ISN?滑动窗口?数据重传?拆包粘包?单tcp连接多请求?拥塞管理?(个人收藏学习笔记)
  4. indexedDB常见坑人错误
  5. op*nw*t 命令下创建op*nv*n 客户端
  6. 纠正几个NANDFLASH很容易犯的错误
  7. matlab 调用函数本身,怎么在matlab自定义函数中再调用一个自定义函数?
  8. 使用FFmpeg指定窗口录屏
  9. 攻防世界MISC_掀桌子
  10. QQ怎么找回/恢复被删掉的好友