type
status
date
slug
summary
tags
category
icon
password
在Xilinx FPGA设计中,MIO(Multiplexed I/O)、EMIO(Extended Multiplexed I/O)和AXI-GPIO是三种常见的I/O接口方式。了解它们之间的区别对于设计合适的 FPGA 系统架构至关重要。

MIO(Multiplexed I/O)

MIO是Processing System (PS)部分的复用I/O接口:
  • 直接连接到PS部分的硬核处理器
  • 固定的物理引脚位置
  • 支持多种外设功能复用
  • 较低的延迟性能
page icon
MIO 类似于单片机上的 GPIO 可以灵活配置输出输入模式以及端口功能复用(硬件IIC、SPI、UART等)

EMIO(Extended Multiplexed I/O)

EMIO是MIO的扩展:
  • 通过PL(Programmable Logic)部分实现
  • 引脚位置可灵活配置
  • 可扩展更多I/O接口
  • 相比MIO有额外的延迟
page icon
EMIO 相当于将 PS 端口逻辑资源连接到 PL 端上,IO口可以灵活调整,但仍然消耗 PS 端资源,几乎不消耗 PL 资源

AXI-GPIO

AXI-GPIO是基于AXI总线的通用目的I/O接口:
  • 完全在PL部分实现
  • 通过AXI总线与处理器通信
  • 配置更加灵活
  • 适用于需要软件控制的场景
AXI-GPIO 相当于通过驱动程序访问的外设芯片(如 GPIO 扩展芯片),需要消耗 PL 资源并通过总线通信,但提供了更大的灵活性。也就是说它是用 PL 资源堆积的 IO
AXI-GPIO 相当于通过驱动程序访问的外设芯片(如 GPIO 扩展芯片),需要消耗 PL 资源并通过总线通信,但提供了更大的灵活性。也就是说它是用 PL 资源堆积的 IO

三者的主要区别

特性
MIO
EMIO
AXI-GPIO
实现位置
PS
PS通过PL
PL
引脚位置
固定
可配置
可配置
延迟性能
最好
中等
较高
灵活性
较低
中等
最高

使用场景建议

根据不同的应用需求,可以选择合适的I/O接口方式:
  • 对于需要快速响应的简单 I/O 操作,优先选择 MIO
  • 当需要更多 I/O 接口且对延迟要求不严格时,可以使用 EMIO
  • 如果需要复杂的控制逻辑和高度可配置性,建议使用 AXI-GPIO

page icon
注意
EMIO 和 MIO 在软件编程接口和调用方式上完全相同,使用同样的 API 函数和开发方法。两者的主要区别在于管脚编号的分配:MIO 使用较低的管脚编号范围,从 0 到 53,而 EMIO 则使用较高的管脚编号范围,从 54 到 117。这种编号划分使得系统能够清晰地区分和管理这两种不同类型的 I/O 接口。
notion image
notion image
 
 

参考文档

 
Vitis2023.1 版本找不到 BSP 工程文件的解决方法使用Digital-IDE与Xilinx工具链联合开发
Loading...