xilinx ZYNQ 7000 AXI GPIO

article/2025/11/8 7:11:35

.0AXI GPIO
在这里插入图片描述
第一部分
PS 和 PL之间的通讯有一个接口称为AXI。AXI总线具体的内容这边不去深究,可以理解为一种特殊协议的通讯方式。
AXI GPIO是什么意思?
PL是FPGA它可以做成任何你想要的东西,做一个GPIO外设当然是可以的。
那么
如上图所示,假设我们用FPGA 设计了一个GPIO外设,它可以通过引脚进行电平的输入和输出。
这个时候PS端的APU需要使用GPIO,通常就是GPIO的读写操作。这个事件这个需要数据通信,上图所示有个connect的模块横跨PS,PL,用于数据的传输,没错AXI就是这个connect。这里我们把AXI单纯的看做一个有特殊协议的通信线路,暂时不去关系实现方式。

第二部分
什么是GPIO,这个问题好像非常简单,但是好像也不简单。为了寻求这个答案,可以看一下MCU的GPIO结构
打开STM32F407(Cortex M4)手册的GPIO章节
在这里插入图片描述
上图所示,最右边是最后芯片引出的物理引脚。最左边是GPIO模块对外的接口。提供读写操作。
那么我们如果要做一个GPIO外设就需要物理引脚和读写接口。
那么物理引脚可以想到FPGA开发中的引脚分配。这里会问不是有EMIO了吗为啥还要AXI GPIO
1.EMIO本质上是硬核
2.AXI GPIO是真正的软核FPGA开发

那么读写接口就是第一部分所说的AXI接口。
那么GPIO具体什么实现呢,xilinx 官方把GPIO如何实现已经做好了,封装成AXI GPIO IP。我们直接调用即可。
Create Block design->添加IP ->AXI GPIO
在这里插入图片描述
在AXI IP官方手册中
在这里插入图片描述
AXI GPIO de 构成如上图所示,
1.AXI Interface 用于AXI中线的通讯
2.interrupt Module 检测GPIO模块的Read信号,判断是否发生中断,送入专用的信号线IP2INTC.
3.GPIO Core 就是GPIO 外设了

GPIO 具体的结构
在这里插入图片描述
1.GPIO 三态门的控制TRI
2.Write
3.read
还可以通过多路选择器构建两个GPIO外设。

第三部分
知道AXI GPIO是什么东西后,那么要怎么去配置

在这里插入图片描述
可以配置默认的输出电平和门控状态(输入还是输出)。
添加zynq PS 后,点击自动连接,vivado自己生成了axi interconnect和PS reset

在这里插入图片描述
PS的FCLK_CLK0 ,给AXI Interconnect 和AXI GPIO提供了时钟。peripheral aReastn提供了复位信号。
PS的M_AXI_GP0 和AXI Interconnect连接,PS也提供AXI时钟。
在这里插入图片描述
FCLK_CLK0 是PS端提供给PL端的时钟信号,供给了所有AXI 相关的所有IP。
FCLK_RESET0_N 这个信号给到processor System Reast IP ,然后通过peripheral aReastn 对AXI 互联和AXI GPIO提供复位信号。
在这里插入图片描述
在这里插入图片描述

AXI Interconnect 是一个AXI总线的连接矩阵,有点像路由器的意思
在这里插入图片描述

在这里插入图片描述
这样通过xilinx AXI GPIO IP核构建了一个 AXI 接口的GPIO模块。
在这里插入图片描述
clock Configuration 设置时钟,提供给AXI和AXI GPIO
打开AXI GPIO的中断,它的中断信号属于PL中断信号,相关设置在GIC中。
如下图所示,双击GIC

在这里插入图片描述
在这里插入图片描述
打开PL -PS的中断信号,其中断号是84~91。
最后进行引脚分配
.在这里插入图片描述
配置AXI GPIO的端口,生成比特流。

第四部分
AXI GPIO编程,导入官方例程。见下章
在这里插入图片描述


http://chatgpt.dhexx.cn/article/U8eYJNhf.shtml

相关文章

Xilinx ZYNQ 7000 HDMI

High-Definition Multimedia Interface (HDMI) 参考xilinx application note XAPP460 HDMI来自High-Definition Multimedia Interface 高分辨率多媒体接口,多媒体一般包含图像和声音。 Transition Minimized Differential Signaling (TMDS) 是HDMI的物理层。 TMDS…

ZYNQ7000 Uboot编译

使用的板子是闲鱼淘的ebaz4205,petalinux编译工程弄了几天都无法下载linux源码,索性按照官网教程U-boot自己一步步搭建编译环境 uboot版本xlnx_rebase_v2020.01备份的gitee链接https://gitee.com/lign17314/u-boot-xlnx.git交叉编译链gcc-linaro-7.5.0-…

linux系统移植 基于zynq7000平台

目录 1. 准备工作1.1. 新建工作目录1.2. 安装必备库 2. zynq 平台交叉编译器的安装2.1 解压编译环境2.2 在 zynq 目录下编写激活脚本,并激活2.3 测试编译器版本 3. Uboot 编译及制作3.1 Uboot 编译和配置:3.2 生成 boot.bin 4. Linux 内核配置及移植4.1 …

Zynq7000 USB2.0协议解析及USB控制器详解

USB 2.0规范及控制器 文章目录 USB 2.0规范及控制器USB2.0Univerasl Serial BusUSBHost USB总线接口标准总线信号USB拓扑结构数据流模型数据编解码和位填充USB逻辑部件 USB时间基准USB 描述符USB设备USB设备供电方式USB设备分层USB设备插入检测机制USB设备状态USB总线枚举 USB传…

zynq7000开发流程

1 开发工具 1.1 独立开发环境 PL—>Vivado PS(ARM)-->SDK(Xilinx)或者第三方ARM开发工具 1.2 集成开发环境 SDSoC 1.3 总结 独立开发环境大概分为四个步骤: &#xf…

ZYNQ7000 SPI LCD与Petalinux

前言 ZYNQ内部集成两个ARM Cortex A9核心,Xilinx也推出了Petalinux工具,与Vidado搭配可以方便地完成Linux的uboot、kernel、rootfs部署。 开发板上集成了HDMI,但是需要在FPGA中实现逻辑,但是实现之后占用了7010快一半的资源&…

ZYNQ7000 (二十)等精度频率计的原理分析和实例实现

等精度频率计的原理分析和实例实现 这一视频主要来分析实现等精度频率计。通过分析硬件实现原理,编写 PL的逻辑实现部分,以及对应 PS的 C语言操作,操作挂在 PS寻址空间的寄存器, 达到控制等精度频率计逻辑,读取计数结果…

ZYNQ7000-MIO与EMIO详解

摘要 本文参考芯片手册详细介绍了ZYNQ7000芯片的信号、接口与引脚,结合芯片封装说明了引脚的类别与分布,并说明了MIO与EMIO的区别。 关键词:ZYNQ;信号;引脚;MIO;EMIO;Bank 前言 了解…

ZYNQ7000 SDK开发使用

Zynq开发平台工具 ZYNQSDK开发使用 Zynq开发平台工具导入硬件平台配置BSP包创建和配置创建应用程序下载固件和调试应用程序创建FSBL工程建立内存测试工程启动模式spi flash及sd卡的测试 参考文档:zynq_sw\Lab_instructions\Lab01 - Explore Zynq Hardware Platform …

Zynq7000 OPENAMP 实验

前言 Zynq7000 openamp实验,最近想做一个多cpu异构系统,后面会用zynqmp去做,先拿zynq7000试一下 首先说明,openamp是开源异构多处理通信框架。现在cpu不再像以前单个cpu,而是越来越复杂,比如TI的TDA4芯片…

ZYNQ7000固化流程

ZYNQ7000固化流程 生成BOOT.bin文件 (1)在SDK开发环境下,将FSBL.elf文件,FPGA.bit文件和FW.elf文件按次序添加并打包成BOOT.bin文件 2. BOOT.bin文件固化 (1)在xilinx SDK环境中通过JTAG进行固化&#x…

zynq7000 资源介绍

zynq 7000 资源介绍 整体框架PS端资源PS端资源 整体框架 Zynq7000系列是基于APSOC的可拓展处理平台,它的本质特征是将一个双核ARM Cortex-A9处理器和一个可编程的FPGA芯片集成到一个片上系统中。在进行Zynq7000的详细说明前,本节首先对架构的高层模型进…

zynq7000 创建fsbl工程,并打开log

背景:若通过petalinux编译的启动文件,放到sd卡里面(或者flash),上电后串口没有任何log信息;可以考虑搭建fsbl工程。 以2018.3版本为例。 1、把*.hdf文件放到想要创建的文件里面,然后双击“Xil…

ZYNQ7000-GPIO详解

摘要 本文介绍了ZYNQ7000芯片中GPIO的基本概念,分组、功能、控制寄存器、中断设置以及如何在Vitis中配置GPIO。 本文参考:UG585 - Zynq-7000 SoC Technical Reference Manual (v1.12.2) 385~394页–Ch14: General Purpose I/O(GPIO) 关键词&#xff1a…

zynq7000中断系统

7.1环境 这一章节描述了系统级的中断环境以及中断控制器功能。PS端是基于ARM架构的,并且使用了两个Cortex-A9处理器以及型号为pl390的GIC中断控制器。整个中断结构与处理器、可编程逻辑器件(PL)、从外部IO接受到的中断请求有非常紧密的联系。本章节包含了下面这些关…

【ZYNQ】ZYNQ7000 UART 控制器及驱动应用示例

UART 简介 我们在使用 PS 的时候,通常会添加 UART 控制器,用于打印信息和调试代码。除此之外,PS 在和外部设备通信时,也会经常使用串口进行通信。 UART 控制器 UART 控制器是一个全双工异步收发控制器,ZYNQ 内部包含…

Xilinx ZYNQ 7000入门

ZYNQ是Xilinx推出的新一代全可编程片上系统,将处理器的软件可编程性与FPGA的硬件可编程性完美整合。 ZYNQ7020:xc7z020clg400-2 ZYNQ7010:xc7z010clg400-1 组合了一个双核ARM Cortex-A9(PS)处理器和一个传统的…

ZYNQ7000平台介绍

基于ZYNQ7000平台软件开发 ZYNQ7000平台简介 本文介绍ZYNQ7000平台采用Avnet推出的ZedBoard开发板进行讲解,ZedBoard开发板基于Xilinx Zynq-7000 All Programmable Soc,整合了双核Cortex-A9的PS处理单元和PL逻辑单元。 在zynq上,ARM Cortex…

【ZYNQ】ZYNQ7000 全局定时器及其驱动示例

定时器简介 在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,每个 Cortex-A9 处理器都有各自独立的 32 位私有定时器和 32 位看门狗定时器,这两个 CPU 同时共享一个 64 位的全局定时器(GT)。 系统框图 全局定时器&am…

Xilinx ZYNQ 7000学习笔记一(复位和启动)

一、复位系统 参考文献:Zynq-7000 SoC Technical Reference Manual (UG585)-ch26 Reset System zynq7000复位信号源包括硬件复位、看门狗定时器、JTAG控制器复位信号和软件复位信号。其中,硬件复位引脚由上电复位信号PS_POR_B和系统复位信号PS_SRST_B驱…