GPIO定义
指的是general purpose I/O ,它是zynq7000系列中MIO的一部分,它是一个外设(peripheral),是用来对器件的引脚作观测(input)以及控制(output)。GPIO的起始地址在0XE000_A000。
AXI_GPIO
AXI_GPIO相当于GPIO的IP核,是通过AXI总线挂在PS上的GPIO上。
MIO定义
是指multiuse I/O,即多路复用,将来自PS外设以及静态存储器接口进行多路复用到ps的引脚上去。属于Zynq的PS部分,Zynq7000 系列芯片有 54 个 MIO。它们分配在 GPIO 的 Bank0 和 Bank1 上,这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能IO接口。这些 IO 与 PS 直接相连。不需要添加引脚约束,MIO 信号对 PL部分是透明的,不可见。所以对 MIO 的操作可以看作是纯 PS 的操作。GPIO 的控制和状态寄存器基地址为:0xE000_A000,我们 SDK 下软件操作底层都是对于内存地址空间的操作。
EMIO定义
是用来将ps连接到fpga的引脚,从而来扩展pl的引脚到ps端。
EMIO(extendable multiuse I/O):扩展MIO,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚连到芯片外面实现数据输入输出。Zynq7000 系列芯片有 64 个 EMIO,它们分配在 GPIO 的 Bank2 和 Bank3 上,当 MIO 不够用时,PS 可以通过驱动 EMIO 控制 PL 部分的引脚,EMIO 的使用相当于,是一个 PS + PL 的结合使用的例子。所以,EMIO 需要分配引脚以及编译综合生成 bit文件。
PS:
(1)由于总计有54个 MIO ,因此第1组 MIO 引脚限制为22位。
(2)尽管 MIO 和 EMIO 组之间存在功能差异,