AXI Crossbar IP 详细介绍
概述
AXI Crossbar 是属于 AXI Interconnect IP Suite 的一部分,专为 AXI4、AXI3 和 AXI4-Lite 协议设计,提供多个 AXI 主设备(Master)和从设备(Slave)之间的灵活互联功能。它通过交叉开关(Crossbar)架构实现高效的数据路由,支持多主多从的点对点连接,广泛应用于 FPGA 和 SoC 系统设计,特别是在需要复杂 AXI 总线互联的场景,如多核处理器系统、视频处理、网络通信和硬件加速器集成。
该 IP 核的主要功能包括:
- 多路互联:支持 1-16 个 AXI 主接口和 1-16 个 AXI 从接口,形成 N×M 交叉矩阵。
- 协议支持:兼容 AXI4、AXI3 和 AXI4-Lite 协议,支持协议转换和混合协议设计。
- 高性能路由:通过优先级仲裁、突发传输和流水线优化,实现低延迟和高吞吐量。
- 灵活配置:支持数据宽度转换、时钟域转换、地址映射和稀疏连接。
主要特性
AXI Crossbar IP 具有以下关键特性:
-
AXI 协议兼容性:
- 符合 ARM AMBA AXI4、AXI3 和 AXI4-Lite 协议规范(参考 UG761)。
- AXI4 接口:支持 32、64、128、256、512 或 1024 位数据宽度,适用于高带宽数据传输。
- AXI4-Lite 接口:固定 32 位数据宽度,适用于低带宽控制信号传输。
- AXI3 接口:支持 32 或 64 位数据宽度,向后兼容旧设备。
- 支持协议转换(例如,AXI4 到 AXI3 或 AXI4-Lite)。
-
交叉开关架构:
- 支持 1-16 个主接口(Sxx_AXI)和 1-16 个从接口(Mxx_AXI),形成 N×M 交叉矩阵。
- 单播路由:一个主接口事务路由到一个从接口。
- 稀疏连接:支持非完全连接的拓扑结构,减少资源占用(参考 PG059,第 9 页)。
-
时钟域支持:
- 同步模式:所有接口共享同一时钟(
ACLK
),简化设计。 - 异步模式:支持跨时钟域传输,每个接口可使用独立的时钟(如
Sxx_ACLK
、Mxx_ACLK
)。 - 最大频率:最高 250 MHz(7 系列,-1 速度等级),更高频率适用于 UltraScale 设备(参考 PG059 表 2-1)。
- 同步模式:所有接口共享同一时钟(
-
高性能设计:
- 仲裁机制:支持固定优先级或轮询(Round-Robin)仲裁,优化多主竞争。
- 突发支持:支持 AXI4 的突发传输,最大突发长度为 256 数据节拍(AXI4)或 16 数据节拍(AXI3)。
- 流水线优化:通过寄存器切片(Register Slice)减少关键路径,提高时序性能。
- 吞吐量:接近 100% 的 AXI 总线利用率(64 字节突发,150 MHz,参考 PG059 表 2-2)。
-
功能模块:
- 宽度转换:支持主从接口之间的数据宽度转换(如 32 位到 256 位)。
- 地址映射:通过可编程地址解码器将主接口事务路由到指定从接口。
- 协议转换:支持 AXI4 到 AXI3、AXI4 到 AXI4-Lite 或 AXI3 到 AXI4-Lite 的转换。
- 时钟转换:通过内部 AXI Clock Converter 模块支持跨时钟域传输。
-
工具与设备支持:
- 设计工具:Vivado Design Suite、ISE Design Suite。
- 支持设备:Artix-7、Kintex-7、Virtex-7、Zynq-7000、Kintex UltraScale、Virtex UltraScale、Zynq UltraScale+ MPSoC、Versal Prime、Versal AI Core。
- 免费随 Vivado 和 ISE 设计套件提供,无需额外许可(参考 web:8、web:23)。
功能模块
AXI Crossbar IP 的核心功能是提供多主多从的 AXI 事务路由,其主要功能模块包括以下几个方面:
1. 交叉开关核心(Crossbar Core)
- 功能:实现 AXI 主接口到从接口的动态路由。
- 机制:
- 根据主接口的地址信号(
ARADDR
或AWADDR
)和地址映射表,确定目标从接口。 - 使用优先级仲裁(固定优先级或轮询)处理多主竞争。
- 支持单播路由,确保事务按序传输到指定从接口。
- 根据主接口的地址信号(
- 应用:实现多主多从的点对点连接,如处理器到内存的访问。
2. 地址解码器(Address Decoder)
- 功能:解析主接口的地址信号,确定目标从接口。
- 机制:
- 每个主接口的地址范围通过 Vivado 配置或 AXI 地址编辑器定义。
- 支持重叠地址范围(需配置优先级)或非重叠地址映射。
- 提供错误响应(SLVERR)给无效地址事务。
- 应用:支持灵活的地址分配,如多个主设备访问不同内存区域。
3. 协议转换模块
- 功能:在主从接口之间执行 AXI 协议转换。
- 机制:
- AXI4 到 AXI3:将 AXI4 突发分割为 AXI3 兼容的短突发(最大 16 数据节拍)。
- AXI4 到 AXI4-Lite:移除突发支持,仅传输单次事务。
- AXI3 到 AXI4-Lite:类似 AXI4 到 AXI4-Lite 的转换。
- 应用:连接不同协议的 AXI 设备,如 AXI4 处理器到 AXI3 外设。
4. 宽度转换模块
- 功能:在主从接口之间调整数据宽度。
- 机制:
- 支持宽到窄(Wide-to-Narrow)或窄到宽(Narrow-to-Wide)转换。
- 例如,256 位主接口到 32 位从接口,自动重新打包数据。
- 确保数据完整性和协议合规性(参考 web:14)。
- 应用:连接不同数据宽度的 AXI 模块,如高带宽 DMA 到低带宽外设。
5. 时钟转换模块
- 功能:支持跨时钟域的 AXI 事务传输。
- 机制:
- 使用内部 AXI Clock Converter(类似 PG065)实现异步 FIFO 或轻量级同步。
- 每个主接口(
Sxx_ACLK
)和从接口(Mxx_ACLK
)可使用独立时钟。
- 应用:桥接不同时钟域的模块,如 Zynq PS 和 PL。
6. 寄存器切片(Register Slice)
- 功能:插入寄存器管道,优化时序性能。
- 机制:
- 在主从接口或交叉开关内部添加一级或多级寄存器。
- 增加 1-2 个时钟周期延迟,但提高最大频率(Fmax)。
- 应用:解决高频设计中的时序违例问题。
接口说明
以下是 AXI Crossbar IP 的主要接口及其功能:
-
AXI 主接口(Sxx_AXI,x=00-15):
- 类型:AXI4、AXI3 或 AXI4-Lite 从接口。
- 信号:
Sxx_AXI_ARADDR
、ARVALID
、ARREADY
:读地址通道。Sxx_AXI_RDATA
、RRESP
、RVALID
、RREADY
:读数据通道。Sxx_AXI_AWADDR
、AWVALID
、AWREADY
:写地址通道。Sxx_AXI_WDATA
、WVALID
、WREADY
:写数据通道。Sxx_AXI_BRESP
、BVALID
、BREADY
:写响应通道。
- 功能:接收来自 AXI 主设备(如处理器、DMA)的事务。
- 时钟:
Sxx_ACLK
(异步模式)或ACLK
(同步模式)。 - 数据宽度:AXI4/AXI3 为 32 至 1024 位,AXI4-Lite 固定 32 位。
-
AXI 从接口(Mxx_AXI,x=00-15):
- 类型:AXI4、AXI3 或 AXI4-Lite 主接口。
- 信号:与 Sxx_AXI 类似,但方向相反。
- 功能:输出路由后的 AXI 事务到下游 AXI 从设备(如内存、外设)。
- 时钟:
Mxx_ACLK
(异步模式)或ACLK
(同步模式)。 - 数据宽度:与 Sxx_AXI 匹配或通过宽度转换调整。
-
时钟与复位接口:
ACLK
:全局时钟信号,用于同步模式下所有接口。Sxx_ACLK
:主接口独立时钟(异步模式)。Mxx_ACLK
:从接口独立时钟(异步模式)。ARESETN
:全局低电平有效复位信号,同步到ACLK
。Sxx_ARESETN
:主接口复位信号(异步模式)。Mxx_ARESETN
:从接口复位信号(异步模式)。- 功能:提供时钟和复位控制,支持同步或异步设计。
配置方法
1. 在 Vivado 中添加 IP
- 打开 Vivado 的 IP Catalog,搜索 AXI Interconnect(包含 AXI Crossbar 模块),将其添加到设计。
- 双击 IP 核,打开定制化对话框,配置以下参数:
- 基本设置:
- Number of SI:主接口数量(1-16)。
- Number of MI:从接口数量(1-16)。
- Topology:选择 Fully Connected(完全连接)或 Sparse Crossbar(稀疏连接)。
- 协议与宽度:
- Protocol:为每个主/从接口选择 AXI4、AXI3 或 AXI4-Lite。
- Data Width:为每个接口选择数据宽度(AXI4/AXI3:32 至 1024 位;AXI4-Lite:32 位)。
- 时钟配置:
- Clocking Mode:选择 Synchronous(同步)或 Asynchronous(异步)。
- ACLK Frequency:设置全局时钟频率(默认 100 MHz)。
- Sxx_ACLK Frequency:设置主接口时钟频率(异步模式)。
- Mxx_ACLK Frequency:设置从接口时钟频率(异步模式)。
- 性能优化:
- Arbitration Strategy:选择 Fixed Priority 或 Round-Robin。
- Register Slice:启用寄存器切片(None、Light-Weight、Fully Registered)。
- FIFO Depth:为异步模式配置 FIFO 深度(512、1K、2K 字)。
- 地址映射:
- 使用 Vivado 地址编辑器为每个主接口分配从接口的地址范围。
- 支持重叠地址(需配置优先级)或非重叠地址。
- 基本设置:
2. 连接与驱动
- 硬件连接:
- 将主接口(
Sxx_AXI
)连接到 AXI 主设备(如 MicroBlaze、Zynq PS、AXI DMA)。 - 将从接口(
Mxx_AXI
)连接到 AXI 从设备(如内存控制器、AXI GPIO)。 - 分配时钟信号:
- 同步模式:所有接口连接到单一
ACLK
。 - 异步模式:为主接口分配
Sxx_ACLK
,为从接口分配Mxx_ACLK
。
- 同步模式:所有接口连接到单一
- 分配复位信号:
- 同步模式:使用单一
ARESETN
。 - 异步模式:为主接口分配
Sxx_ARESETN
,为从接口分配Mxx_ARESETN
。
- 同步模式:使用单一
- 使用 Vivado 地址编辑器配置地址映射,确保主接口事务正确路由(参考 web:14)。
- 将主接口(
- 驱动程序:
- AXI Crossbar 核无需专用驱动程序,依赖上下游 AXI 设备的驱动。
- 确保上下游设备的地址映射和协议配置一致(如 AXI4 到 AXI3 转换)。
3. 仿真与验证
- 使用 Vivado 仿真工具验证互联功能:
- 检查主从接口的 Valid-Ready 握手和数据传输。
- 验证地址映射的正确性(事务是否路由到指定从接口)。
- 测试协议转换(如 AXI4 到 AXI3)和宽度转换的完整性。
- 确保跨时钟域传输的稳定性(异步模式)。
- 使用 AXI Verification IP(PG267)生成激励,验证协议合规性(参考 web:8)。
- 分析波形,确认无数据丢失、协议错误或仲裁问题。
资源利用情况
AXI Crossbar IP 的资源占用取决于接口数量、数据宽度、同步模式和附加功能(如寄存器切片、FIFO)。以下是典型资源利用情况(基于 7 系列、UltraScale 和 Zynq 设备,Vivado 生成):
- 资源类型:
- LUT(查找表):200-5000,取决于接口数量和数据宽度。
- FF(触发器):300-6000,与 LUT 占用相关。
- BRAM:0-8,异步模式下 FIFO 使用 BRAM。
- DSP 切片:不使用。
- 配置示例:
- 2×2 AXI4,64 位,同步模式,无寄存器切片:约 300 LUT、400 FF、0 BRAM。
- 4×4 AXI4,128 位,异步模式,FIFO 深度 1K:约 1500 LUT、2000 FF、4 BRAM。
- 8×8 AXI4,256 位,Fully Registered:约 4000 LUT、5000 FF、0 BRAM(同步模式)。
- 最大频率:
- 7 系列(-1 速度等级):250 MHz。
- UltraScale:300 MHz 或更高(参考 web:8)。
具体资源利用数据需参考 Vivado 生成的报告,建议用户根据目标设备和配置验证资源占用。
应用场景
AXI Crossbar IP 适用于以下场景:
-
多核处理器系统:
- 连接多个处理器(如 MicroBlaze、Zynq PS)到共享内存或外设。
- 例如,Zynq PS 和 PL 中的多个 AXI 主设备访问 DDR 内存。
-
视频处理:
- 路由视频数据到多个处理模块(如编码器、解码器、显示接口)。
- 配合 AXI Video DMA 和 AXI Interconnect(参考 web:14)。
-
信号处理:
- 在信号处理系统中,连接多个处理核心(如 FFT、滤波器)到数据源或内存。
- 支持不同数据宽度的模块互联。
-
网络通信:
- 在网络处理器中,路由高速数据包到不同处理单元。
- 使用 AXI4-Lite 传输控制信号,AXI4 传输数据。
-
SoC 集成:
- 在 Zynq UltraScale+ MPSoC 或 Versal 系统中,实现 PL 和 PS 之间的复杂互联。
- 支持跨时钟域传输和协议转换。
注意事项
-
仲裁策略选择:
- 固定优先级适合优先级明确的多主场景,但可能导致低优先级主设备饥饿。
- 轮询仲裁适合公平访问场景,但可能增加延迟(参考 PG059,第 10 页)。
- 通过仿真测试仲裁策略对性能的影响。
-
地址映射配置:
- 确保地址范围不冲突,或为重叠地址配置明确的优先级。
- 使用 Vivado 地址编辑器简化地址分配(参考 web:14)。
- 无效地址事务将返回 SLVERR 响应,需在设计中处理。
-
时钟域配置:
- 异步模式下,
Mxx_ACLK
频率应尽量接近或高于Sxx_ACLK
,以维持吞吐量(建议Mxx_ACLK
≥ 75%Sxx_ACLK
,参考 web:17)。 - 确保时钟源稳定,使用 MMCM/PLL 生成时钟(参考 web:8)。
- 异步模式下,
-
复位同步:
ARESETN
、Sxx_ARESETN
和Mxx_ARESETN
需在各自时钟域内同步,保持至少 16 个时钟周期(参考 UG761)。- 推荐使用异步复位同步释放机制,避免亚稳态问题(参考 web:17)。
总结
AXI Crossbar IP(PG059)是一款功能强大的 AXI 互联软核,专为多主多从的 AXI4、AXI3 和 AXI4-Lite 协议设计,提供灵活的交叉开关路由功能。其支持协议转换、宽度转换、时钟域转换和稀疏连接,结合高性能仲裁和流水线优化,广泛应用于多核处理器系统、视频处理、信号处理和 SoC 集成等领域。
用户在使用时应注意仲裁策略、地址映射和时钟域配置,并通过仿真验证路由性能和协议合规性。该 IP 核可与 AXI Clock Converter、AXI DMA 等 IP 组合使用,满足复杂系统设计需求。
FPGA设计工具推荐
-
SZ901:
SZ901 是一款基于XVC协议的FPGA网络下载器。- 最高支持53M
- 支持4路JTAG独立使用
- 支持端口合并
- 支持国产FLASH烧写
- 下载器无限扩展
- 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
-
SZ501(PRO_A7):
- SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
- 双网口(RGMII)
- 双SFP+
- DDR
- UART
- IIC