AXI Chip2Chip IP 详细介绍
概述
AXI Chip2Chip 专为多设备系统级芯片(SoC)设计提供高效的 AXI 协议桥接功能,支持 FPGA 之间、FPGA 与 SoC 之间(如 Zynq-7000、Zynq UltraScale+ MPSoC)的高性能、低引脚数的 AXI 接口连接。它通过多种物理层(PHY)接口(如 Aurora 64B/66B、SelectIO)实现跨芯片的 AXI 数据传输,广泛应用于多 FPGA 系统、实时视频处理、网络通信和嵌入式系统集成。
该 IP 核的主要功能包括:
- AXI 协议桥接:在两个设备之间透明桥接 AXI4 或 AXI4-Lite 接口,符合 AXI 协议规范。
- 低引脚数设计:通过通道复用和宽度转换(2:1 或 4:1),减少 FPGA I/O 引脚使用。
- 多 PHY 支持:支持 Aurora 64B/66B、Aurora 8B/10B 和 SelectIO 接口,适应不同传输需求。
- 主从模式:支持 Master 和 Slave 模式,点对点连接,灵活适配系统架构。
- 高性能传输:通过优先级轮询复用和中断通道,提供高吞吐量和低延迟。
主要特性
AXI Chip2Chip IP 具有以下关键特性:
-
AXI 协议兼容性:
- 符合 ARM AMBA AXI4 和 AXI4-Lite 协议规范(参考 UG761)。
- AXI4 接口:支持 32、64、128、256、512 或 1024 位数据宽度,适用于高带宽数据传输。
- AXI4-Lite 接口:支持 32 位数据宽度,适用于低带宽控制信号传输。
- 通道独立性:支持 AXI 读地址、写地址、读数据、写数据和写响应通道的独立操作,符合 Valid-Ready 握手机制。
-
物理层(PHY)支持:
- Aurora 64B/66B:高速串行收发器接口,适合 UltraScale 和 UltraScale+ 设备,支持高带宽和长距离传输。
- Aurora 8B/10B:适用于 7 系列设备(如 Artix-7),支持 GTY 收发器与 8B/10B 协议设备的连接(参考 web:23)。
- SelectIO:使用 FPGA 的通用 I/O 引脚,支持低速但灵活的连接,适合短距离通信。
- 通道复用:通过通道复用器(Channel Multiplexer)将 AXI 地址、数据和中断信号复用到同一组 FPGA I/O 引脚(参考 web:0、web:8)。
-
主从模式:
- Master 模式:AXI Chip2Chip 核作为 AXI 从接口(Slave),接收 AXI 事务并通过 PHY 传输到 Slave 核。
- Slave 模式:AXI Chip2Chip 核作为 AXI 主接口(Master),输出从 Master 核接收的 AXI 事务。
- 点对点连接:每个 Master 核需连接一个 Slave 核,形成点对点桥接(参考 web:14)。
-
时钟模式:
- 公共时钟(Common Clock):AXI 接口和 PHY 接口共享同一时钟,简化设计。
- 独立时钟(Independent Clock):AXI 接口和 PHY 接口可使用不同时钟,支持跨时钟域传输(参考 web:0、web:8)。
- 时钟频率:最高支持 200 MHz(7 系列设备,SelectIO 模式),或更高频率(UltraScale 设备,Aurora 模式,参考 PG067 表 2-1)。
-
宽度转换:
- 支持 2:1 或 4:1 的 PHY 数据宽度转换,减少 I/O 引脚使用。
- 例如,256 位 AXI 数据可通过 128 位(2:1)或 64 位(4:1)PHY 传输(参考 PG067,第 6 页)。
-
中断支持:
- 通过高优先级内部通道传输电平中断信号,支持 Master 和 Slave 之间的独立中断通信。
- Master 核可生成链接错误中断,通知系统异常(参考 web:0、web:8)。
-
工具与设备支持:
- 设计工具:Vivado Design Suite、ISE Design Suite、嵌入式开发套件(EDK)。
- 支持设备:Artix-7、Kintex-7、Virtex-7、Zynq-7000、Kintex UltraScale、Virtex UltraScale、Zynq UltraScale+ MPSoC、Versal Prime、Versal AI Core。
- 免费随 Vivado 和 ISE 设计套件提供,无需额外许可(参考 web:2、web:23)。
功能模块
AXI Chip2Chip IP 的核心功能是提供跨芯片的 AXI 协议桥接,其主要功能模块包括以下几个方面 :
1. 通道复用器(Channel Multiplexer)
- 功能:将 AXI 地址、数据和中断信号复用到一组 FPGA I/O 引脚,减少引脚使用。
- 机制:
- 采用优先级轮询(Priority Round-Robin)复用策略:
- 最高优先级:中断信号,确保快速响应。
- 次高优先级:AXI4-Lite 接口,适合低带宽控制。
- 最低优先级:AXI4 接口,处理高带宽数据。
- 支持 2:1 或 4:1 宽度转换,优化 I/O 利用率(参考 web:0、web:8)。
- 采用优先级轮询(Priority Round-Robin)复用策略:
- 应用:减少物理连接需求,适合引脚受限的设计。
2. AXI 接口模块
- 功能:处理 AXI4 或 AXI4-Lite 协议的事务,分为 Master 和 Slave 模式。
- 机制:
- Master 模式:接收 AXI 从接口输入,将事务打包并通过 PHY 传输。
- Slave 模式:接收 PHY 数据,解包后通过 AXI 主接口输出。
- 确保 AXI 通道的 Valid-Ready 握手机制符合协议规范(参考 web:14)。
- 应用:实现跨芯片的 AXI 数据和控制信号传输。
3. 物理层接口(PHY Interface)
- 功能:通过 Aurora 或 SelectIO 实现物理数据传输。
- 机制:
- Aurora 64B/66B:使用高速收发器,提供高带宽和长距离传输,适合 UltraScale 设备。
- Aurora 8B/10B:兼容 7 系列设备,支持 8B/10B 编码(参考 web:23)。
- SelectIO:使用 FPGA 通用 I/O,支持灵活但较低速的连接。
- 应用:适配不同的传输距离和带宽需求。
4. 中断处理模块
- 功能:通过高优先级通道传输电平中断信号。
- 机制:
- Master 和 Slave 核检测中断输入变化后,发起高优先级传输,更新对方核的中断输出。
- Master 核可生成链接错误中断(如 PHY 断开)。
- 应用:支持实时中断通信,如错误通知或事件触发。
5. 时钟与复位模块
- 功能:管理时钟和复位信号,支持同步和异步模式。
- 机制:
- 公共时钟:AXI 和 PHY 共享时钟(
axi_aclk
)。 - 独立时钟:AXI 使用
axi_aclk
,PHY 使用fpga_io_aclk
。 - 复位信号(
axi_aresetn
)需与时钟同步,确保系统初始化(参考 PG067,第 9 页)。
- 公共时钟:AXI 和 PHY 共享时钟(
- 应用:支持灵活的时钟域配置,适应复杂系统。
接口说明
以下是 AXI Chip2Chip IP 的主要接口及其功能:
-
AXI4 接口(M_AXI 或 S_AXI):
- 类型:AXI4 主接口(Slave 模式)或从接口(Master 模式)。
- 信号:
AXI_ARADDR
、ARVALID
、ARREADY
:读地址通道。AXI_RDATA
、RRESP
、RVALID
、RREADY
:读数据通道。AXI_AWADDR
、AWVALID
、AWREADY
:写地址通道。AXI_WDATA
、WVALID
、WREADY
:写数据通道。AXI_BRESP
、BVALID
、BREADY
:写响应通道。
- 功能:传输高带宽数据,数据宽度可配置为 32 至 1024 位。
- 时钟:
axi_aclk
。
-
AXI4-Lite 接口(M_AXI_LITE 或 S_AXI_LITE):
- 类型:AXI4-Lite 主接口或从接口,固定 32 位数据宽度。
- 信号:与 AXI4 类似,但简化且无突发支持。
- 功能:传输低带宽控制信号。
- 时钟:
axi_aclk
。
-
物理层接口(FPGA I/O 或 Aurora):
- SelectIO:
FPGA_IO_P
、FPGA_IO_N
:差分 I/O 引脚。- 功能:通过 FPGA 通用 I/O 传输复用数据。
- Aurora 64B/66B 或 8B/10B:
TX_P
、TX_N
、RX_P
、RX_N
:收发器差分对。- 功能:通过高速串行收发器传输数据。
- 时钟:
fpga_io_aclk
(SelectIO 或 Aurora 初始化时钟)。
- SelectIO:
-
时钟与复位接口:
axi_aclk
:AXI 接口时钟。fpga_io_aclk
:PHY 接口时钟(独立时钟模式)。axi_aresetn
:低电平有效复位信号,同步到axi_aclk
。fpga_io_aresetn
:PHY 接口复位信号(独立时钟模式)。
-
中断接口:
INT_IN
:中断输入信号。INT_OUT
:中断输出信号。- 功能:支持 Master 和 Slave 之间的中断通信。
配置方法
1. 在 Vivado 中添加 IP
- 打开 Vivado 的 IP Catalog,搜索 AXI Chip2Chip,将其添加到设计。
- 双击 IP 核,打开定制化对话框(参考 PG067,第 27-33 页,图 4-1),配置以下参数:
- 基本设置:
- Chip2Chip AXI Mode:选择 Master 或 Slave 模式。
- AXI Data Width:选择 32、64、128、256、512 或 1024 位。
- PHY Interface:选择 SelectIO、Aurora 64B/66B 或 Aurora 8B/10B。
- 时钟设置:
- AXI Clocking Mode:选择 Common Clock 或 Independent Clock。
- AXI Clock Frequency:设置
axi_aclk
频率(默认 100 MHz)。
- PHY 设置:
- Chip2Chip PHY Width:选择 2:1 或 4:1 宽度转换。
- Aurora Lanes:配置 Aurora 通道数(1-16,视设备而定)。
- SelectIO Standard:选择 I/O 标准(如 LVDS、HSTL)。
- 其他:
- Include AXI4-Lite:启用 AXI4-Lite 接口。
- Interrupt Support:启用中断通道。
- 基本设置:
2. 连接与驱动
- 硬件连接:
- 将 AXI 接口(
M_AXI
或S_AXI
)连接到系统中的 AXI 主/从设备(如 AXI Interconnect)。 - 将 PHY 接口连接到目标 FPGA:
- SelectIO:分配差分 I/O 引脚,确保匹配 I/O 标准。
- Aurora:连接到 Aurora 64B/66B 或 8B/10B IP 核,配置收发器(参考 web:23)。
- 分配时钟(
axi_aclk
、fpga_io_aclk
)和复位(axi_aresetn
、fpga_io_aresetn
)信号。 - 使用 Vivado 地址编辑器为 AXI Chip2Chip 核分配地址空间(参考 web:14)。
- 将 AXI 接口(
- 驱动程序:
- AXI Chip2Chip 核通常无需专用驱动程序,依赖 AXI 主设备的驱动(如 Zynq PS 的 AXI 驱动)。
- 中断处理需通过处理器(如 MicroBlaze)或中断控制器配置。
- 参考 Xilinx 提供的应用笔记(如 XAPP1216,web:23)实现 Aurora 连接。
3. 仿真与验证
- 使用 Vivado 仿真工具验证桥接功能:
- 检查 AXI 接口的 Valid-Ready 握手和数据传输。
- 验证 PHY 接口的信号完整性(SelectIO 或 Aurora)。
- 测试中断信号的触发和响应。
- 确保时钟频率和 PHY 配置满足带宽需求,参考 PG067 表 2-1 的性能数据。
资源利用情况
根据 PG067 表 2-1(第 10 页),AXI Chip2Chip IP 的资源占用取决于 AXI 数据宽度、PHY 类型和时钟模式。以下是典型资源利用情况(基于 7 系列、UltraScale 和 Zynq 设备,Vivado 生成):
- 资源类型:
- LUT(查找表):500-4000,取决于数据宽度和 PHY 类型。
- FF(触发器):600-5000,与 LUT 占用相关。
- BRAM:0-2,Aurora 模式可能使用少量 BRAM。
- 收发器:Aurora 模式使用 1-16 个 GT 通道。
- 配置示例:
- 32 位 AXI,SelectIO,Common Clock:约 500 LUT、600 FF、0 BRAM。
- 128 位 AXI,Aurora 64B/66B,Independent Clock:约 2000 LUT、2500 FF、1 BRAM、2 GT 通道。
- 256 位 AXI,Aurora 8B/10B:约 3000 LUT、3500 FF、2 BRAM、4 GT 通道。
- 最大频率:
- 7 系列(SelectIO):200 MHz。
- UltraScale(Aurora 64B/66B):250 MHz 或更高(参考 web:2)。
具体资源利用数据需参考 Vivado 生成的报告,建议用户根据目标设备和配置验证资源占用。
应用场景
AXI Chip2Chip IP 适用于以下场景(参考 PG067,第 8 页,web:14、web:23):
-
多 FPGA 系统:
- 连接多个 FPGA,实现 AXI 协议的跨芯片通信。
- 例如,在多 FPGA 板卡中通过 Aurora 传输高带宽数据。
-
Zynq SoC 集成:
- Zynq PS(ARM 处理器)通过 AXI Chip2Chip 控制 PL 或外部 FPGA。
- 例如,Zynq-7000 PS 通过 AXI 访问 Kintex-7 FPGA 的内存(参考 web:14)。
-
实时视频处理:
- 通过 Aurora 64B/66B 传输视频流,支持实时视频处理系统。
- 参考应用笔记 XAPP1216,展示 Kintex-7 和 Zynq-7000 之间的视频桥接(web:23)。
-
网络通信:
- 在网络处理器中实现 FPGA 之间的控制和数据传输。
- 使用 AXI4-Lite 接口传输控制信号,AXI4 接口传输数据。
-
嵌入式系统:
- 在 Versal 或 UltraScale+ 系统中实现低引脚数的芯片间通信。
- 例如,通过 SelectIO 连接短距离 FPGA。
注意事项
-
PHY 选择:
- Aurora 适合高带宽、长距离传输,但需要收发器资源和复杂配置(参考 web:14)。
- SelectIO 适合低速、短距离连接,配置简单但带宽有限。
- 需根据应用需求选择合适的 PHY 类型。
-
时钟配置:
- 独立时钟模式需要额外的时钟域同步逻辑,可能增加 LUT 和 FF 占用(参考 web:0、web:8)。
- 确保
axi_aclk
和fpga_io_aclk
的频率满足吞吐量需求。
-
地址分配:
- AXI Chip2Chip Master 的 AXI 地址需通过 Vivado 地址编辑器分配,Slave 核将使用相同的地址输出事务(参考 web:14)。
- 错误地址分配可能导致数据传输失败。
-
Aurora 连接:
- Aurora 接口需手动连接到 Aurora IP 核,配置复杂,建议参考应用笔记 XAPP1216(web:23)。
- 确保收发器参考时钟和通道配置匹配。
总结
AXI Chip2Chip IP(PG067)是一款高效的 AXI 协议桥接软核,专为多设备 SoC 系统设计,支持 FPGA 和 SoC 之间的低引脚数、高性能通信。其通过通道复用、宽度转换和多 PHY 支持(Aurora、SelectIO),实现 AXI4 和 AXI4-Lite 接口的透明桥接,广泛应用于多 FPGA 系统、Zynq SoC 集成、实时视频处理和网络通信等领域。
FPGA设计工具推荐
-
SZ901:
SZ901 是一款基于XVC协议的FPGA网络下载器。- 最高支持53M
- 支持4路JTAG独立使用
- 支持端口合并
- 支持国产FLASH烧写
- 下载器无限扩展
- 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
-
SZ501(PRO_A7):
- SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
- 双网口(RGMII)
- 双SFP+
- DDR
- UART
- IIC