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部分的硬核处理器
- 固定的物理引脚位置
- 支持多种外设功能复用
- 较低的延迟性能
MIO 类似于单片机上的 GPIO 可以灵活配置输出输入模式以及端口功能复用(硬件IIC、SPI、UART等)
EMIO(Extended Multiplexed I/O)
EMIO是MIO的扩展:
- 通过PL(Programmable Logic)部分实现
- 引脚位置可灵活配置
- 可扩展更多I/O接口
- 相比MIO有额外的延迟
EMIO 相当于将 PS 端口逻辑资源连接到 PL 端上,IO口可以灵活调整,但仍然消耗 PS 端资源,几乎不消耗 PL 资源
AXI-GPIO
AXI-GPIO是基于AXI总线的通用目的I/O接口:
- 完全在PL部分实现
- 通过AXI总线与处理器通信
- 配置更加灵活
- 适用于需要软件控制的场景
AXI-GPIO 相当于通过驱动程序访问的外设芯片(如 GPIO 扩展芯片),需要消耗 PL 资源并通过总线通信,但提供了更大的灵活性。也就是说它是用 PL 资源堆积的 IO
三者的主要区别
特性 | MIO | EMIO | AXI-GPIO |
实现位置 | PS | PS通过PL | PL |
引脚位置 | 固定 | 可配置 | 可配置 |
延迟性能 | 最好 | 中等 | 较高 |
灵活性 | 较低 | 中等 | 最高 |
使用场景建议
根据不同的应用需求,可以选择合适的I/O接口方式:
- 对于需要快速响应的简单 I/O 操作,优先选择 MIO
- 当需要更多 I/O 接口且对延迟要求不严格时,可以使用 EMIO
- 如果需要复杂的控制逻辑和高度可配置性,建议使用 AXI-GPIO
注意
EMIO 和 MIO 在软件编程接口和调用方式上完全相同,使用同样的 API 函数和开发方法。两者的主要区别在于管脚编号的分配:MIO 使用较低的管脚编号范围,从 0 到 53,而 EMIO 则使用较高的管脚编号范围,从 54 到 117。这种编号划分使得系统能够清晰地区分和管理这两种不同类型的 I/O 接口。


参考文档
- Author:Hyacimond
- URL:http://hyacimond.top/IC/3io
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts