ZYNQ7000-MIO与EMIO详解

article/2025/11/8 7:11:25

摘要

本文参考芯片手册详细介绍了ZYNQ7000芯片的信号、接口与引脚,结合芯片封装说明了引脚的类别与分布,并说明了MIO与EMIO的区别。

关键词:ZYNQ信号引脚MIOEMIOBank

前言

了解ZYNQ7000的基础知识可参考我的另一篇博客:

传送门:ZYNQ-7000概述

一. ZYNQ7000的信号、接口与引脚

参考:UG585 - Zynq-7000 SoC Technical Reference Manual (v1.12.2) 42~59页–Ch2: Signals, Interfaces, and Pins。

1.1 ZYNQ7000引脚分组

下图展示了ZYNQ7000信号、接口与引脚的大致分组

可见,ZYNQ7000分为PS与PL两部分,信号、接口和引脚也分属这两部分。

PS部分:

分类名称说明
PS信号与接口PS_CLKPS侧专用时钟引脚,为CPU工作提供外部时钟
POR_RST_N
SRST_N
power on reset 上电复位
外部输入的同步复位
DDR Memory连接DDR的接口
USB连接USB的接口
Quad-SPI连接FLASH的接口
NAND, NOR/SRAM连接SRAM的接口
PS Power PinsPS Power PinsPS电源引脚,提供多种电平的电源
Boot Mode MIOBoot Mode MIOPS侧的启动模式引脚,控制ZYNQ的启动模式
MIO Pins,
EMIO Signals
GigE, SDIO, SPI, I2C,
CAN, UART, GPIO,
TTC, SWDT
PS侧多种外设,既可以使用MIO引脚,
也可以使用EMIO引脚
JTAGJTAGPS与PL共有的JTAG引脚,
烧写与调试PS/PL程序

PL部分:

分类名称说明
PL SignalsUser SelectIOPL为FPGA,用户可更加需要任意指定信号对应的引脚
XADCPL部分的ADC,对应引脚为固定的ADC专用引脚
MGTX只所示这几种芯片才有的MGTX专用引脚
PL Power PinsPL Power PinsPL供电引脚,提供多种PL电平

PS-PL交互部分(交互在芯片内部,故只存在接口与信号,不存在引脚):

分类名称说明
AXI InterfacesM_AXI_GP × 22组AXI GP主机接口
S_AXI_GP × 22组AXI GP从机接口
S_AXI_HP × 44组AXI HP从机接口
S_AXI_ACP1组AXI ACP从机接口
Misc(杂项),
PL Signals
FCLKSPS提供给PL的时钟信号
IRQ, Event, StandbyPL <-> PS 中断
DMA Req/AckDMA请求与应答
DDR Arb,
AXI Idle,
SRAM Int
存储器控制
FTMD Trace,
FTMT Trigs
调试信号

总结一下,除去电源、地、时钟、复位、JTAG这五种引脚外,PS部分还有专门对接DDR,SRAM,USB的引脚,PL部分只有XADC和一些芯片的MGTX引脚是专用的,其余引脚均可任意配置。

1.2 电源引脚

PS与PL部分均需要多种电平的供电电源,电源需要从特定的电源引脚接入芯片。相关电源引脚(包含ADC与地)信息如下表所示。

1.3 PS信号引脚

PS部分除电源引脚外的引脚信息如下图所示。从这里可以看出来,PS部分的引脚除了电源、地、时钟、复位和DDR专用引脚外均为MIO引脚

1.4 PL信号引脚

PL部分有少量的引脚用作特殊功能,绝大部分引脚为用户引脚,可任意配置,这些User I/O Pins即为EMIO引脚

二. ZYNQ7000某芯片的引脚分布

参考:ug865 Zynq-7000 SoC Packaging and Pinout 30~32页 CL225/CLG225 Packages—XC7Z007S, XC7Z010, and XA7Z010

以最简单CL225封装引脚图为例,查看下ZYNQ芯片的引脚分布情况。

可以看到,空白圆⚪️为EMIO,空白六边形为MIO。

除了Dedicated Pins(专用引脚)与 Other Pins(其它引脚,由电源、地以及NC引脚组成)外,剩下的引脚根据各自的供电引脚不同分组即分为不同的Bank,Banks分布图如下:

其中,500, 501, 502这些50X的Bank为PS侧的引脚34, 35这些3X的Bank为PL侧的引脚。其它封装也遵循此Bank命名方式。

也可以看出,PS侧的Bank主要是由DDR引脚与MIO引脚构成PL侧Bank由少量Multi-Function引脚和EMIO构成

三. MIO与EMIO概览及两者的区别

下图展示了MIO与EMIO接口概览。

MIO,Multiuse I/O,称为复用输入/输出,对应PS侧的可配置的多功能引脚。

EMIO,Extent MIO,称为扩展复用输入/输出,对应PL侧的可配置的多功能引脚。

MIO是外设的基础引脚,因为MIO引脚数量较少,ZYNQ也提供了EMIO接口作为MIO的扩展,外设可通过EMIO接口路由到PL侧的引脚上,来实现与MIO几乎相同的功能

几乎相同也就意味着有些许不同,MIO和EMIO作为引脚不同的地方有3点

1.MIO对于PL侧是透明的,PL无法得到MIO引脚上的电平信息,而EMIO因为就是PL的引脚,所以PS可以通过EMIO与PL通信

2.外设与MIO是固定搭配的,就是说要使用MIO作为外设引脚就必须是一组固定引脚。如下图,举个例子,如果你使用了MIO34作为UART0的一个引脚,那么UART0的另一个引脚必须是MIO35,USB1也是如此,除了GPIO比较特殊外,其它外设MIO都是一组一组起作用的,并且是产商预先定好的位置,不能任意指定,所以在设计硬件电路时,使用哪些引脚来连接外设要遵照这一特性。另外因为电路是确定的,使用MIO也不用指定引脚约束。

EMIO相对灵活,引脚之间预先没有绑定,可任意指定,而且使用EMIO需要加引脚约束指定到PL确定的某个引脚。

3.因为MIO引脚位置更靠近这些外设电路,所以相较于使用EMIO,一些外设使用MIO性能更好。还有一些外设只能使用MIO无法使用EMIO(上图也有展示),UG585中说明了这些差异,如下图所示。

四. MIO Bank与封装Bank的区别与联系

在 二. ZYNQ7000某芯片的引脚分布 中已经说明了封装是分Bank的,而MIO引脚也是分Bank的,MIO分为Bank 0 和 Bank 1,其中 MIO Bank 0是封装Bank 500中的部分引脚,MIO Bank 1是封装Bank501中的部分引脚。具体MIO引脚的Bank分布及其与外设的关系如下图MIO一览表所示。

Bank 0包括MIO 0~15 共16个MIO,Bank 1包括 MIO 16~53 共38个MIO(除了7z010和7z007s外),所以,MIO共54个

EMIO共64个

五. 特殊的MIO

一般来说MIO同一程序只能被配置成一种功能,而MIO[2:8]不同,这些引脚在芯片上电启动时起作用,它们还可被配置为其它功能,这并不冲突,因为其它功能是在芯片启动后起作用,这时MIO[2:8]的启动模式选择功能等就失效了。

MIO[8:7]控制Bank的电压,MIO6控制PLL使能,MIO[5:2]控制Boot Mode。

同时MIOMIO[8:7]只能被配置为输出。

六. 总结

本文介绍了ZYNQ7000系列芯片的引脚的基本信息,包括引脚的分类,分布,Bank等。还重点介绍了MIO与EMIO的定义以及两者间的区别。基本上,MIO可理解外PS侧的用户IO,EMIO则为PL侧的用户IO,它们均被配置为多种功能。EMIO是对MIO的扩展,它可以作为PS与PL通讯的一种媒介。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。


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

相关文章

ZYNQ7000 SDK开发使用

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

Zynq7000 OPENAMP 实验

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

ZYNQ7000固化流程

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

zynq7000 资源介绍

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

zynq7000 创建fsbl工程,并打开log

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

ZYNQ7000-GPIO详解

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

zynq7000中断系统

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

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

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

Xilinx ZYNQ 7000入门

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

ZYNQ7000平台介绍

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

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

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

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

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

zynq7000系列芯片介绍

ZYNQ从架构上可以划分为两大模块&#xff0c;一个是PS&#xff08;处理器系统&#xff09;&#xff0c;另一个是PL&#xff08;可编程逻辑&#xff09; PS由APU、内存接口、IO外设、互连线4大模块组成。 1、APU&#xff08;Application Processor Unit)应用处理单元 即PS【可编…

xilinx zynq-7000 基本知识

Zynq-7000 采用可扩展式处理平台架构&#xff08;Extensible Processing Platform、EPP&#xff09;&#xff0c;是 Xilinx 用 28nm HKMG工艺制成的低功耗&#xff0c;高性能&#xff0c;高扩展性的新型芯片&#xff0c;这款新品里面集成了ARM CORTEX-A9 MPSOC 硬核以及相应的S…

ZYNQ-7000概述

摘要 Xilinx推出的ZYNQ-7000被称为全可编程片上系统&#xff08;SOC&#xff09;&#xff0c;它由FPGA与ARM组合构成&#xff0c;硬件可编程&#xff0c;软件也可编程&#xff0c;在众多应用场合有一定优势。本文根据Xilinx官网的介绍并结合ZYNQ-7000的多份数据手册总结了此产品…

ZYNQ学习笔记(一)---初识ZYNQ-7000系列

前几日刚入手一款ZYNQ-7000系列的板卡&#xff0c;之前我也没用过FPGA&#xff0c;直接跨越到ZYNQ的原因主要是某宝上这款板卡相较于其他片上仅有一块FPGA的板卡性价比更高。作为入门&#xff0c;在学习过程中&#xff0c;笔者选择先单独学习ZYNQ上的FPGA部分&#xff0c;也就是…

ZYNQ7000 Vivado详细教学步骤

ZYNQ7000 Vivado开发 ZYNQ7000 Vivado详细教学步骤 ZYNQ7000 Vivado开发1.建立工程项目2.创建Block Design3.配置IO BANK4.配置DDR和CLOCK5.配置PS外设6.测试PS外设7.增加PL外设 1.建立工程项目 Xilinx提供了一系列开发工具&#xff0c;其中包括Vivado平台工具&#xff0c;它是…

mongodb客户端 robo 3T 查询突破50行限制

robo 3T的小bug 这个mongodb客户端&#xff0c;每次查询数据只有50行&#xff0c;虽然有向下翻页的功能 但实际上点击后会被重置&#xff0c;还是只有前50条 解决办法 DBQuery.shellBatchSize 500; 当前窗口最大查询数量修改到500&#xff08;只有当前窗口生效&#xff09;…

centos7仅安装mysql/mongodb客户端

1、仅安装MySQL客户端 # 添加rpm源 [rootk8s-master ~]# rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [roottest1 ~]# # 通过yum搜索 [roottest1 ~]# yum search mysql-community [roottest1 ~]# # 安装x64位的 mysql客户端 [roottest1 ~]…

专业级MongoDB桌面客户端:MongoBooster for Mac

mongobooster mac破解版是适用于MongoDB的最智能IDE,也是以shell为中心的跨平台GUI工具,它提供了流畅的查询构建器,SQL查询SQL查询,就地更新,ES2017语法支持和真正的智能感知体验。MongoBooster下载可以帮助用户能够连接到选项卡式用户界面中的多个数据库,并通过shell命令…