ZYNQ7020笔记:MIO、EMIO、GPIO的区别及应用

ZYNQ 7020 之所以强大,在于它把ARM Cortex-A9处理器系统(PS)和FPGA逻辑(PL)集成在一个芯片里。而连接PS与外部世界的,就是MIO 、EMIO、GPIO。很多初学者分不清它们的区别,今天这篇文章就用最直白的方式讲清楚。

1 概述

如下图所示,

MIO:PS直接自带的硬件引脚,不占用PL资源,固定54根。

EMIO:PS通过PL"延伸"出来的虚拟引脚,占用PL的IO资源,最多可以扩展64根。

表现在FPGA上,如下图所示,UART0,当我们选择MIO接口时,在PL端是看不到的,因为它直接走PS端;但是当我们选择EMIO时,我们就可以在ZYNQ7 Processing System ip核看到UART_0端口,提示我们需要将此连接到PL端的引脚上。

2 外设接口和选择

如下图所示,ZYNQ上有很多外设接口,有的外设是可以自主选择MIO还是EMIO的,但并非所有的外设接口都是可以选择的。

2.1 MIO:PS的原装外设接口

ZYNQ 7020的PS集成了一堆常用外设控制器:UART、I2C、SPI、CAN、SDIO、以太网MAC、USB等。这些控制器的物理引脚 通常可以路由到MIO上。MIO一共有54个,分成Bank0(32位)和Bank1(22位)。

优点:

  • 不消耗任何PL逻辑资源(LUT、FF、BRAM等全都不用)。

  • 布线固定,信号质量好,可靠性高。

  • 不需要配置FPGA,仅靠ARM程序就能跑。

局限性:

  • 只有54个,而且很多外设会占用多个MIO(比如以太网需要十几根)。

  • 功能固定:只能作为PS外设的专用引脚,不能随意自定义。

实际用法:把常用的高速或标准接口(UART调试口、以太网、SD卡)优先挂在MIO上。

2.2 EMIO:PS的扩展外设接口

当MIO不够用,或者你想把PS的某个外设信号引到PL去加工一下再输出时,就要用EMIO。

EMIO是PS内部的一根"虚拟导线",一端连着PS的外设控制器(比如UART的TX/RX),另一端却不是直接到芯片引脚 ,而是连接到PL内部的逻辑。你可以:

  • 在PL中把这些信号直接连到PL的IO引脚上(充当扩展IO)。

  • 也可以在中间加反相器、滤波、边沿检测等逻辑,再输出。

配置步骤:

  • 在Vivado的ZYNQ IP核配置界面中,勾选想要引出的外设(比如UART1)的"EMIO"选项。

  • 将EMIO信号从ZYNQ IP核引出,连接到顶层模块的端口。

  • 添加XDC约束,分配PL引脚位置。

  • 生成bit文件,烧写到FPGA。

  • 在Vitis中编写PS代码(操作UART时,仍然使用标准驱动)。

注意 :EMIO作为GPIO使用时,引脚编号从54开始,对应Bank2和Bank3(各32位)。编程方法与MIO完全一样(调用XGpioPs_WritePin等函数),但必须先烧写bit文件。

2.3 GPIO

除了MIO和EMIO,ZYNQ还有一种扩展IO的方式:在PL里例化AXI GPIO IP核,通过AXI总线与PS通信。

对比项 MIO EMIO AXI GPIO
资源占用 无 仅IOB LUT+FF+IOB
延迟 最低 较低 较高(总线访问延迟)
灵活性 固定 可加工 完全自定义
适用场景 标准外设 扩展GPIO、信号调理 大量数据交互、自定义外设

建议:

  • 能用MIO先用MIO。

  • MIO不够、且只是简单扩展IO或信号整形,用EMIO。

  • 需要PS直接访问PL侧大量寄存器或自定义外设,用AXI GPIO。

3 总结

  • MIO是PS的原生引脚,固定、可靠、省资源,优先用它接标准外设。

  • EMIO是PS经过PL延伸出来的虚拟引脚,灵活、可加工、扩展数量多,适合在MIO不够或需要信号处理时使用。

  • AXI GPIO是PL实现的全逻辑GPIO,资源消耗最大,但最灵活,适合PS与PL深度交互的场景。

理解了这三者的区别,你就能在ZYNQ设计中做到既省资源又省调试。

相关推荐
花月mmc20 小时前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
幻智星科技21 小时前
UDP桥接IP产品简介
tcp/ip·fpga开发·udp·硬件架构
女神下凡21 小时前
芯参谋(76):电源监控复位芯片电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
国科安芯21 小时前
LEO卫星里的IO脉冲事件通信,毛刺误触发解析及处理方案
单片机·嵌入式硬件·fpga开发·低轨卫星·商业航天·抗辐射
Riwuarua1 天前
从近似0基础开始FPGA开发——Part.25:GT 高速收发器架构与 KU5P 资源规划
fpga开发·架构
星夜离尘561 天前
FPGA 三点中值滤波:不补零、不丢背压样本的流式实现
fpga开发
hexiaoyan8272 天前
互联卡设计方案:504-PCIE X16 金手指 FPGA Aurora协议互联卡
fpga开发·测试载板·互联卡·fpga aurora协议·夹板连接器·板卡互联
星夜离尘562 天前
FPGA 二进制数如何变成十进制显示:可背压的逐位 BCD 转换器
fpga开发
匠行科技2 天前
基于VPX架构的4路10GSPS ADC信号采集处理板
fpga开发
幻智星科技3 天前
蒙哥马利模乘FPGA优化实战
fpga开发·密码学