[AXI] AXI Sideband Formatter Utility

AXI Sideband Formatter Utility IP 详细介绍

概述

AXI Sideband Formatter Utility 专为在 AXI 内存映射接口(AXI4、AXI3、AXI4-Lite)中插入和恢复侧带信息(Sideband Information)设计,通过 AXI USER 信号在 AXI 网络中传输额外信息,如奇偶校验(Parity)或主设备 ID(SMID)。它利用 AXI SmartConnect IP 在任意网络拓扑和事务转换中传播 USER 信号的能力,广泛应用于需要增强 AXI 接口信息内容的嵌入式系统,如 Zynq SoC、PCIe 通信和复杂多核系统。

AXI Sideband Formatter Utility 的核心功能是将侧带信息(如 SMID 或奇偶校验)附加到 AXI USER 信号的低位,同时保留现有的 USER 数据,在接收端恢复这些信息以确保数据完整性和事务追踪。它通过轻量级设计和标准 AXI 接口兼容性,支持灵活的配置,适用于高可靠性场景。

该 IP 核的主要功能包括:

  • 侧带信息插入:将 SMID、奇偶校验或其他用户定义信息附加到 AXI USER 信号。
  • 侧带信息恢复:在接收端提取侧带信息,恢复原始 USER 数据。
  • 协议兼容性:支持 AXI4、AXI3 和 AXI4-Lite 协议,保持标准 AXI 接口合规性。
  • 低资源占用:轻量设计,适合嵌入复杂 AXI 网络。

主要特性

AXI Sideband Formatter Utility IP 具有以下关键特性:

  1. 协议支持

    • 支持 AMBA AXI4AXI3AXI4-Lite 协议的内存映射接口(参考 ARM AMBA AXI 规范,IHI0022)。
    • 不支持 AXI4-Stream 协议(需使用其他 IP,如 AXI4-Stream Interconnect)。
    • 兼容 AXI 通道的 USER 信号(ARUSER、AWUSER、WUSER、RUSER、BUSER)。
  2. 侧带信息处理

    • 插入功能
      • 将侧带信息(如主设备 ID(SMID)、奇偶校验或用户定义数据)附加到 AXI USER 信号的低位。
      • 支持用户配置的侧带宽度(典型 1-32 位)。
      • 保留原始 USER 数据,移位至高位以容纳侧带信息。
    • 恢复功能
      • 在接收端提取侧带信息,恢复原始 USER 数据。
      • 支持奇偶校验验证,确保数据完整性。
    • SMID 支持
      • 插入主设备 ID(SMID)以追踪事务来源,特别适用于多主设备系统(如 Zynq MPSoC 的 SMMU 应用)。
    • 奇偶校验支持
      • 生成并验证数据通道(WUSER、RUSER)的奇偶校验,增强可靠性。
  3. 信号传播

    • 利用 AXI SmartConnect IP 在任意网络拓扑中传播 USER 信号。
    • 支持事务转换(如突发分割、数据宽度转换)时 USER 信号的正确传递。
    • 确保侧带信息在 AXI Interconnect 或 SmartConnect 中的一致性。
  4. 灵活配置

    • 支持通过 Vivado GUI 配置 USER 信号宽度、侧带信息类型(SMID、Parity)及其宽度。
    • 可选择性地启用/禁用奇偶校验或 SMID 插入。
    • 支持动态 USER 信号分配,适配不同应用需求。
  5. 时钟与复位

    • 使用单一时钟(aclk)驱动所有接口,支持同步设计。
    • 支持低电平有效复位(aresetn),与 AXI 接口同步。
    • 最大频率:250 MHz(7 系列,-1 速度等级),更高频率支持 UltraScale+ 设备。
  6. 工具与设备支持

    • 设计工具:Vivado Design Suite。
    • 支持设备:Artix-7、Kintex-7、Virtex-7、Zynq-7000、Kintex UltraScale、Virtex UltraScale、Zynq UltraScale+ MPSoC、Versal AI Core、Versal Premium、Versal Prime。

功能模块

AXI Sideband Formatter Utility IP 的功能模块围绕侧带信息插入和恢复设计,核心包括信号格式化、奇偶校验生成/验证和控制逻辑。以下是主要模块及其功能:

1. 侧带信息格式化模块

  • 功能:将侧带信息附加到 AXI USER 信号或从中提取。
  • 机制
    • 插入过程
      • 接收输入 USER 信号(如 S_AXI_ARUSERS_AXI_WUSER)。
      • 将侧带信息(如 SMID 或奇偶校验)附加到 USER 信号的低位。
      • 将原始 USER 数据移位至高位,生成扩展的 USER 信号(M_AXI_ARUSERM_AXI_WUSER)。
      • 例如:若 USER 宽度为 8 位,侧带信息为 2 位 SMID,则输出 USER 信号为 10 位(2 位 SMID + 8 位原始 USER)。
    • 恢复过程
      • 接收扩展的 USER 信号(如 S_AXI_RUSER)。
      • 提取低位的侧带信息(如 SMID 或奇偶校验)。
      • 移位恢复原始 USER 数据,输出到 M_AXI_RUSER
    • 信号支持
      • 支持所有 AXI 通道的 USER 信号(ARUSER、AWUSER、WUSER、RUSER、BUSER)。
      • 动态调整 USER 信号宽度以适配侧带信息。
  • 应用:在 AXI 网络中传输额外信息,如事务追踪或数据完整性验证。

2. 奇偶校验生成与验证模块

  • 功能:为数据通道生成奇偶校验并验证数据完整性。
  • 机制
    • 生成
      • 对写数据通道(S_AXI_WDATA)或读数据通道(M_AXI_RDATA)计算奇偶校验。
      • 将奇偶校验位附加到对应 USER 信号(M_AXI_WUSERS_AXI_RUSER)。
      • 支持奇偶校验类型:奇校验(Odd Parity)或偶校验(Even Parity)。
    • 验证
      • 在接收端比较接收的奇偶校验位与重新计算的奇偶校验。
      • 若不匹配,生成错误标志(可通过外部逻辑捕获)。
    • 配置
      • 通过 Vivado 参数启用/禁用奇偶校验。
      • 支持用户定义的奇偶校验位数(典型 1 位)。
  • 应用:增强数据传输的可靠性,特别是在高可靠性系统中。

3. SMID 插入模块

  • 功能:插入主设备 ID(SMID)以追踪事务来源。
  • 机制
    • 接收外部 SMID 输入(通过 s_axis_smid 信号或配置参数)。
    • 将 SMID 附加到 USER 信号的低位(如 M_AXI_ARUSERM_AXI_AWUSER)。
    • 在接收端提取 SMID,输出到外部逻辑(通过 m_axis_smid 信号)。
    • 支持 SMID 宽度配置(典型 4-8 位)。
  • 应用:支持多主设备系统的事务追踪,如 Zynq MPSoC 的 SMMU 应用。

4. 控制逻辑模块

  • 功能:协调 USER 信号的格式化、传递和恢复。
  • 机制
    • 使用有限状态机(FSM)管理 AXI Valid-Ready 握手(如 ARVALID/ARREADY)。
    • 确保侧带信息与 AXI 事务同步传递。
    • 支持动态 USER 信号分配,适配不同通道和宽度。
  • 应用:保证协议合规性和数据一致性。

5. 时钟与复位模块

  • 功能:管理时钟和复位信号。
  • 机制
    • 时钟aclk,驱动所有逻辑,与 AXI 接口同步。
    • 复位aresetn,低电平有效,同步复位所有寄存器。
    • 支持单一时钟域设计,无跨时钟域复杂性。
  • 应用:确保与 AXI 系统时钟和复位一致。

接口信号

以下是 AXI Sideband Formatter Utility IP 的主要接口信号及其功能:

  1. AXI 从接口(S_AXI)

    • 类型:AXI4、AXI3 或 AXI4-Lite 从接口,接收主设备的信号。
    • 信号(以 AXI4 为例,AXI3 和 AXI4-Lite 为子集):
      • 读地址通道
        • S_AXI_ARADDR[C_ADDR_WIDTH-1:0]:读地址(32 或 64 位)。
        • S_AXI_ARVALIDARREADY:读地址握手。
        • S_AXI_ARLEN[7:0]:突发长度(AXI4:0-255;AXI3:0-15)。
        • S_AXI_ARUSER[C_ARUSER_WIDTH-1:0]:读地址 USER 信号。
        • S_AXI_ARID[C_ID_WIDTH-1:0]:事务 ID。
      • 读数据通道
        • S_AXI_RDATA[C_DATA_WIDTH-1:0]:读数据(32-1024 位)。
        • S_AXI_RUSER[C_RUSER_WIDTH-1:0]:读数据 USER 信号。
        • S_AXI_RVALIDRREADY:读数据握手。
        • S_AXI_RID[C_ID_WIDTH-1:0]:读事务 ID。
      • 写地址通道
        • S_AXI_AWADDRAWVALIDAWREADYAWLENAWUSERAWID:写地址参数。
      • 写数据通道
        • S_AXI_WDATAWVALIDWREADY:写数据握手。
        • S_AXI_WUSER[C_WUSER_WIDTH-1:0]:写数据 USER 信号。
        • S_AXI_WSTRB[C_DATA_WIDTH/8-1:0]:写选通。
      • 写响应通道
        • S_AXI_BRESPBVALIDBREADY:写响应。
        • S_AXI_BUSER[C_BUSER_WIDTH-1:0]:写响应 USER 信号。
    • 功能:接收主设备的事务和 USER 信号。
    • 参数
      • C_PROTOCOL:协议类型(0=AXI4,1=AXI3,2=AXI4-Lite)。
      • C_ADDR_WIDTH:地址宽度。
      • C_DATA_WIDTH:数据宽度。
      • C_ID_WIDTH:事务 ID 宽度。
      • C_ARUSER_WIDTHC_AWUSER_WIDTHC_WUSER_WIDTHC_RUSER_WIDTHC_BUSER_WIDTH:各通道 USER 信号宽度。
  2. AXI 主接口(M_AXI)

    • 类型:AXI4、AXI3 或 AXI4-Lite 主接口,输出格式化后的信号。
    • 信号:与 S_AXI 类似,但方向相反,USER 信号宽度可能增加(包含侧带信息)。
    • 功能:将格式化后的 USER 信号传递到从设备。
    • 参数:同 S_AXI,但 USER 宽度可能扩展。
  3. SMID 接口(可选)

    • s_axis_smid[C_SMID_WIDTH-1:0]:输入主设备 ID。
    • m_axis_smid[C_SMID_WIDTH-1:0]:输出恢复的 SMID。
    • 功能:插入和提取 SMID 用于事务追踪。
    • 参数
      • C_SMID_WIDTH:SMID 宽度(典型 4-8 位)。
  4. 时钟与复位接口

    • aclk:全局时钟,驱动所有接口。
    • aresetn:低电平有效复位,同步到 aclk
    • 功能:提供时钟和复位控制。

配置方法

1. 在 Vivado 中添加 IP

  • 添加 AXI Sideband Formatter Utility
    • 在 Vivado IP Catalog 中搜索 AXI Sideband Formatter Utility,添加到设计。
    • 双击 IP 核,打开定制化对话框。
  • 配置参数
    • 协议类型
      • C_PROTOCOL:选择 AXI4、AXI3 或 AXI4-Lite。
    • 接口参数
      • C_DATA_WIDTH:数据宽度(32、64、128、256、512、1024 位)。
      • C_ADDR_WIDTH:地址宽度(默认 32 或 64 位)。
      • C_ID_WIDTH:事务 ID 宽度(默认 4 位)。
      • C_ARUSER_WIDTHC_AWUSER_WIDTHC_WUSER_WIDTHC_RUSER_WIDTHC_BUSER_WIDTH:各通道 USER 信号宽度。
    • 侧带信息设置
      • C_SIDEBAND_TYPE:侧带信息类型(SMID、Parity、Custom)。
      • C_SIDEBAND_WIDTH:侧带信息宽度(1-32 位)。
      • C_PARITY_TYPE:奇偶校验类型(Odd 或 Even,若启用)。
    • SMID 设置
      • C_SMID_WIDTH:SMID 宽度(若启用 SMID)。
      • C_ENABLE_SMID:启用/禁用 SMID 插入。
  • RTL 生成
    • Vivado 生成 Verilog 代码,实例化格式化和恢复逻辑。
    • 输出文件位于项目目录(如 project_name.srcs/sources_1/ip/axi_sideband_formatter)。

2. 连接与驱动

  • 硬件连接
    • S_AXI
      • 连接到 AXI 主设备(如 Zynq PS、AXI DMA)输出 USER 信号。
    • M_AXI
      • 连接到 AXI 从设备(如 AXI SmartConnect、AXI Interconnect)接收格式化的 USER 信号。
    • SMID 接口(若启用)
      • 连接 s_axis_smid 到 SMID 源(如外部逻辑)。
      • 连接 m_axis_smid 到 SMID 接收逻辑(如 SMMU)。
    • 分配时钟和复位:
      • aclk:连接到主从接口的时钟源。
      • aresetn:连接到主从接口的复位信号。
    • 使用 Vivado 连接向导自动匹配信号。
  • 驱动程序
    • AXI Sideband Formatter Utility 为纯硬件 IP,无需专用驱动。
    • 依赖主从设备的驱动程序,USER 信号透明传递。
    • 若使用 SMID 或奇偶校验,需在软件中处理恢复的 SMID 或错误标志。

3. 仿真与验证

  • 仿真环境
    • 使用 Vivado Simulator 或 ModelSim 进行 RTL 仿真。
    • 编写 Verilog 测试平台,驱动 S_AXI 信号和 s_axis_smid(若启用)。
    • 使用 AXI Verification IP(PG267)生成激励,验证 USER 信号传递。
  • 验证内容
    • 检查侧带信息插入:验证 M_AXI_ARUSERM_AXI_WUSER 包含正确的 SMID 或奇偶校验。
    • 验证侧带信息恢复:确认 M_AXI_RUSER 恢复原始 USER 数据,m_axis_smid 输出正确 SMID。
    • 测试奇偶校验:模拟数据错误,验证错误标志生成。
    • 确保 AXI 协议合规性(Valid-Ready 握手、信号稳定性)。
    • 验证事务追踪:检查多主设备场景下 SMID 的正确传递。
  • 波形分析
    • 使用 Vivado 波形查看器分析 S_AXIM_AXI 的 USER 信号。
    • 确认侧带信息的插入和恢复时序。
    • 检查奇偶校验验证的错误标志。

资源利用情况

AXI Sideband Formatter Utility 的资源占用取决于协议类型、USER 信号宽度和侧带信息配置。以下是典型资源利用情况(基于 7 系列、UltraScale 和 Zynq 设备,Vivado 综合):

  • 资源类型
    • LUT(查找表):100-500,取决于 USER 宽度和奇偶校验逻辑。
    • FF(触发器):200-1000,与 USER 宽度和 SMID 配置相关。
    • BRAM:0(无需 BRAM)。
    • DSP 切片:0(不使用)。
  • 配置示例
    • AXI4,64 位数据宽度,8 位 USER,4 位 SMID:约 200 LUT、400 FF。
    • AXI4-Lite,32 位数据宽度,4 位 USER,1 位奇偶校验:约 100 LUT、200 FF。
    • AXI3,128 位数据宽度,8 位 USER,4 位 SMID + 1 位奇偶校验:约 300 LUT、600 FF。
  • 最大频率
    • 7 系列(-1 速度等级):250 MHz。
    • UltraScale+:350 MHz 或更高。

应用场景

AXI Sideband Formatter Utility IP 适用于以下场景:

  1. 多主设备系统

    • 在 Zynq UltraScale+ MPSoC 中,通过 SMID 追踪 AXI 事务来源,支持系统内存管理单元(SMMU)区分不同主设备。
    • 应用于多核处理器或多 DMA 系统的事务管理。
  2. 数据完整性保护

    • 在高可靠性系统中(如航空航天、汽车电子),使用奇偶校验验证 AXI 数据通道的完整性。
    • 配合 AXI SmartConnect 确保复杂网络中的数据一致性。
  3. PCIe 通信

    • 在 PCIe 设计中,通过 SMID 标识 PL 侧 DMA 事务,增强 SMMU 的内存保护能力。
    • 支持虚拟机间的安全 AXI 事务隔离。
  4. 嵌入式系统调试

    • 通过插入用户定义的侧带信息,监控 AXI 网络中的事务行为。
    • 配合 Vivado ILA 捕获 USER 信号,分析系统性能。
  5. 复杂网络拓扑

    • 在 AXI SmartConnect 或 AXI Interconnect 构成的复杂网络中,传播侧带信息以支持事务追踪或错误检测。

注意事项

  1. 协议兼容性

    • 确保 C_PROTOCOL 与主从接口匹配(AXI4、AXI3、AXI4-Lite)。
    • AXI4-Lite 不支持突发,USER 信号通常用于控制信息而非数据。
  2. USER 信号宽度

    • 配置 C_ARUSER_WIDTH 等参数时,确保足够容纳侧带信息和原始 USER 数据。
    • 过小的 USER 宽度可能导致数据截断(参考 web:0)。
  3. 侧带信息配置

    • SMID 宽度(C_SMID_WIDTH)需与系统主设备数量匹配,典型 4-8 位。
    • 奇偶校验启用时,验证逻辑可能增加少量延迟,需评估性能影响。
  4. 时钟与复位

    • 确保 aclk 与主从接口时钟同步,避免采样错误。
    • aresetn 需保持至少 16 个时钟周期,同步释放以防亚稳态。
  5. 仿真验证

    • 验证 USER 信号的插入和恢复,确保侧带信息无丢失。
    • 测试奇偶校验错误场景,确认错误标志生成。

总结

AXI Sideband Formatter Utility IP(PG360)是一款高效的侧带信息处理软核,支持 AXI4、AXI3 和 AXI4-Lite 协议,通过插入和恢复 SMID、奇偶校验等侧带信息,增强 AXI 网络的事务追踪和数据完整性。其轻量设计、灵活配置和与 AXI SmartConnect 的无缝集成使其成为多主设备系统、PCIe 通信和高可靠性嵌入式系统的关键组件。

用户在配置时需注意协议类型、USER 信号宽度和侧带信息设置,合理连接主从接口,并通过仿真验证插入和恢复功能。结合 Vivado 工具、AXI Verification IP 和 ILA 调试,AXI Sideband Formatter Utility 可显著提升系统可靠性和调试效率。

FPGA设计工具推荐

  • SZ901
    SZ901 是一款基于XVC协议的FPGA网络下载器。

    • 最高支持53M
    • 支持4路JTAG独立使用
    • 支持端口合并
    • 支持国产FLASH烧写
    • 下载器无限扩展
    • 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
  • SZ501(PRO_A7)

    • SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
    • 双网口(RGMII)
    • 双SFP+
    • DDR
    • UART
    • IIC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值