[AXIS] AXI4-Stream Verification

AXI4-Stream Verification IP (PG277) 详细介绍

概述

AXI4-Stream Verification IP,以下简称 AXI4-Stream VIP。该 IP 核专为验证基于 AXI4-Stream 协议的自定义 RTL 设计而开发,支持模拟 AXI4-Stream 主设备(Master)、从设备(Slave)以及透传(Passthrough)模式下的行为。它通过提供可编程的激励生成、协议检查和事务监控功能,显著简化了 AXI4-Stream 接口的验证流程,广泛应用于 FPGA 和 SoC 系统设计中的视频处理、信号处理、网络数据包处理和硬件加速器验证等领域。

该 IP 核的主要功能包括:

  • 激励生成:模拟 AXI4-Stream 主设备或从设备,生成协议兼容的命令和数据。
  • 协议检查:实时监控 AXI4-Stream 事务,确保符合 AMBA 4 AXI4-Stream 协议规范。
  • 事务监控:在透传模式下捕获和分析事务信息,如吞吐量和延迟。
  • 测试支持:提供示例测试用例和测试台,加速自定义设计的验证。

主要特性

  1. AXI4-Stream 协议支持

    • 完全符合 ARM AMBA 4 AXI4-Stream 协议规范,支持标准信号:TVALIDTREADYTDATATSTRBTKEEPTLASTTIDTDESTTUSER
    • 支持所有协议数据宽度和传输类型:
      • TDATA:1-512 位。
      • TUSER:0-128 位。
      • TIDTDEST:0-32 位。
    • 支持字节流、连续对齐流、连续非对齐流和稀疏流。
  2. 操作模式

    • 主模式(Master Mode):生成 AXI4-Stream 命令和数据负载,模拟主设备行为。
    • 从模式(Slave Mode):响应 AXI4-Stream 事务,生成 TREADY 信号,模拟从设备行为。
    • 透传模式(Passthrough Mode):透明监控事务信息(如吞吐量、延迟)或插入主动激励。
  3. SystemVerilog 实现

    • 以非加密 SystemVerilog 源码形式提供,包含类库和可合成 RTL。
    • 通过虚拟接口(Virtual Interface)控制 RTL 接口,支持灵活的测试台集成。
    • 兼容主流验证方法学,如 UVM、OVM 和 VMM。
  4. 协议检查

    • 内置协议检查器,实时检测 AXI4-Stream 事务中的协议违规(如 TVALIDTREADY 握手错误)。
    • 支持运行时配置,允许启用或禁用特定检查规则。
  5. 测试支持

    • 提供示例测试台和测试用例,展示 AXI4-Stream 的主、从和透传模式功能。
    • 示例可通过 Vivado IP Integrator 访问,作为自定义设计的验证起点。
    • 支持随机化事务生成,便于覆盖测试。
  6. 仿真支持

    • 兼容主流仿真器:Vivado Simulator、Aldec Riviera-PRO、Cadence Incisive Enterprise Simulator、Mentor Graphics Questa Prime 和 Synopsys VCS。
    • 提供事务级日志和波形分析,便于调试。
  7. 工具与设备支持

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

功能模块

1. 主模式(Master Mode)

  • 功能:模拟 AXI4-Stream 主设备,生成协议兼容的命令和数据负载。
  • 机制
    • 创建 axi4stream_transaction 对象,配置 TDATATSTRBTKEEPTLASTTIDTDESTTUSER
    • 支持随机化事务生成(通过 randomize() 方法),覆盖多种传输场景。
    • 通过 driver.send() 方法发送事务,控制信号时序(如 TVALID)。
  • 应用:验证从设备的接收能力(如 FIFO、处理模块)。

2. 从模式(Slave Mode)

  • 功能:模拟 AXI4-Stream 从设备,响应主设备的事务并生成 TREADY 信号。
  • 机制
    • 配置 TREADY 生成策略(如单次触发、振荡模式、随机延迟。
    • 捕获接收到的 TDATATLAST 等信号,记录事务信息。
    • 支持自定义响应逻辑,模拟复杂从设备行为。
  • 应用:验证主设备的发送能力和协议合规性。

3. 透传模式(Passthrough Mode)

  • 功能:透明监控 AXI4-Stream 事务,或插入主动激励。
  • 机制
    • 捕获主设备和从设备之间的事务信息(如吞吐量、延迟、协议错误)。
    • 支持非侵入式监控(仅记录)或主动干预(如修改 TDATATLAST)。
    • 提供回调机制,便于用户自定义监控逻辑。
  • 应用:分析系统性能或调试复杂数据流。

4. 协议检查

  • 功能:实时检测 AXI4-Stream 事务中的协议违规。
  • 机制
    • 检查 TVALIDTREADY 握手协议(例如,TVALIDTREADY 低时不得改变)。
    • 验证信号稳定性(TDATATLAST 等在 TVALID 高且 TREADY 低时保持稳定)。
    • 检查数据包边界(TLAST 的正确使用)。
    • 输出错误日志,包含违规类型和时间戳。
  • 应用:确保设计符合 AXI4-Stream 协议规范。

5. 示例测试台

  • 功能:提供预配置的测试台和测试用例,展示 VIP 的使用方法。
  • 机制
    • 包含主模式、从模式和透传模式的示例。
    • 提供 SystemVerilog 测试代码,展示事务创建、发送和监控。
    • 可通过 Vivado IP Integrator 自动生成。
  • 应用:作为自定义测试台开发的模板。

接口说明

以下是 AXI4-Stream Verification IP 的主要接口及其功能:

  1. AXI4-Stream 接口(M_AXIS 或 S_AXIS)

    • 类型:AXI4-Stream 主接口(主模式)或从接口(从模式、透传模式)。
    • 信号
      • TVALID:数据有效信号(主模式输出,从模式输入)。
      • TREADY:准备好信号(主模式输入,从模式输出)。
      • TDATA:数据信号,宽度可配置(1-512 位,可选)。
      • TSTRBTKEEP:字节选通信号,宽度为 TDATA 的 1/8(可选)。
      • TLAST:数据流结束信号(可选)。
      • TIDTDEST:流标识和目标标识信号(可选)。
      • TUSER:用户定义信号,宽度可配置(0-128 位,可选)。
    • 功能
      • 主模式:生成事务并驱动信号。
      • 从模式:响应事务并生成 TREADY
      • 透传模式:监控或转发事务。
  2. 时钟与复位接口

    • ACLK:全局时钟信号,与 AXI4-Stream 接口同步。
    • ARESETn:全局低电平有效复位信号,同步到 ACLK
  3. 虚拟接口(Virtual Interface)

    • 类型:SystemVerilog 虚拟接口,用于测试台控制 VIP。
    • 功能:通过 SystemVerilog 类(如 axi4stream_vip_mst_taxi4stream_vip_slv_t)访问 RTL 接口,配置和驱动事务。
    • 示例agent = new("master vip agent", dut.axi4stream_vip_0.inst.IF);

配置方法

1. 在 Vivado 中添加 IP

  • 打开 Vivado 的 Block Design,右键选择 Add IP
  • 搜索 AXI4-Stream Verification IP,将其拖入设计。
  • 双击 IP 核,打开定制化对话框,配置以下参数:
    • 组件名称(Component Name):设置 IP 实例名称,需以字母开头,包含字符 a-z、0-9 和下划线。
    • 接口模式(Interface Mode):选择主模式(Master)、从模式(Slave)或透传模式(Passthrough)。
    • 信号配置
      • 启用或禁用 TDATATSTRBTKEEPTLASTTIDTDESTTUSER
      • 设置 TDATA 宽度(1-512 位)。
      • 设置 TUSER 宽度(0-128 位)。
      • 设置 TID/TDEST 宽度(0-32 位)。
    • 运行时参数
      • HAS_TREADY:启用或禁用 TREADY 信号(默认启用)。
      • TLAST_GEN_METHOD:配置 TLAST 生成方式(手动或自动)。
      • TREADY_GEN_METHOD:配置 TREADY 生成策略(例如,XIL_AXI4STREAM_READY_GEN_OSC 表示振荡模式)。

2. 测试台开发

  • 添加 VIP 包
    • 在测试台中导入 SystemVerilog 包:import axi4stream_vip_pkg::*; 和实例特定的包(如 sys_axi4stream_vip_0_0_pkg::*)。
    • 示例代码:
      `timescale 1ns/1ps
      import axi4stream_vip_pkg::*;
      import sys_axi4stream_vip_0_0_pkg::*;
      module tb();
        logic aresetn, aclk;
        sys_wrapper dut(.*);
        sys_axi4stream_vip_0_0_mst_t agent;
        initial begin
          agent = new("master vip agent", dut.sys_i.axi4stream_vip_0.inst.IF);
          agent.start_master();
          // 生成事务
          axi4stream_transaction wr_transaction;
          wr_transaction = agent.driver.create_transaction("write transaction");
          assert(wr_transaction.randomize());
          agent.driver.send(wr_transaction);
        end
      endmodule
      
  • 常见问题
    • 若出现 axi4stream_vip_pkg 未找到错误,需确保 Vivado 项目已包含 VIP 源码。
    • 忽略仿真器中的红线警告(如 XIL_AXI4STREAM_READY_GEN_SINGLE 未找到),这些通常为视觉错误。

3. 仿真与验证

  • 将 AXI4-Stream VIP 连接到待测设计(DUT)的 AXI4-Stream 接口。
  • 配置时钟(ACLK)和复位(ARESETn)信号,确保与 DUT 同步。
  • 使用 Vivado Simulator 或其他支持的仿真器运行测试:
    • 验证主模式:检查 TVALIDTDATATLAST 是否正确生成。
    • 验证从模式:检查 TREADY 响应和接收数据。
    • 验证透传模式:检查事务日志和吞吐量统计。
  • 使用示例测试台(通过 IP Integrator 生成)作为参考,添加自定义测试用例。
  • 分析波形和日志,定位协议违规或功能问题。

资源利用情况

AXI4-Stream Verification IP 主要用于仿真环境,不直接影响硬件资源占用。其 RTL 部分为轻量级,仅用于接口信号驱动,资源占用极低:

  • 资源类型(基于 Kintex-7,Vivado 生成):
    • LUT(查找表):10-50,取决于信号数量。
    • FF(触发器):10-50,用于信号同步。
    • BRAM:不使用。
    • DSP 切片:不使用。
  • 配置示例
    • 32 位 TDATA,主模式:约 20 LUT、20 FF。
    • 64 位 TDATA,透传模式:约 30 LUT、30 FF。
  • 最大频率:最高 250 MHz(Kintex-7,-1 速度等级),与 DUT 时序相关。

硬件资源仅在将 VIP 的 RTL 部分综合到 FPGA 时产生,仿真时无需考虑。


应用场景

AXI4-Stream Verification IP 适用于以下场景:

  1. 接口验证

    • 验证 AXI4-Stream 主设备或从设备的连接性和基本功能。
    • 适用于自定义 IP 的开发和集成(如 AXI4-Stream FIFO、DMA)。
  2. 协议合规性测试

    • 检查 AXI4-Stream 事务是否符合协议规范,定位握手或信号稳定性问题。
    • 配合 AXI4-Stream Protocol Checker IP(PG145)进行深入验证。
  3. 视频处理

    • 模拟视频流生成或接收,验证视频处理模块(如编码器、解码器)的功能。
    • 配合 AXI4-Stream to Video Out IP。
  4. 信号处理

    • 生成多通道信号数据流,验证信号处理核心(如 FFT、滤波器)。
    • 适用于雷达、通信或音频处理系统。
  5. 网络数据包处理

    • 模拟高速数据包流,验证网络处理模块的吞吐量和协议合规性。
    • 适用于数据中心或通信系统。
  6. 测试台开发

    • 作为测试台的核心组件,加速 UVM 或 SystemVerilog 测试环境的搭建。
    • 使用示例测试台快速开发自定义测试用例。

注意事项

  1. 仿真环境配置

    • 确保导入正确的 SystemVerilog 包(如 axi4stream_vip_pkg 和实例特定包),否则可能出现编译错误。
    • 忽略仿真器中的红线警告(如 XIL_AXI4STREAM_READY_GEN_SINGLE 未找到),这些为已知视觉错误。
  2. 信号配置

    • 配置 TDATATUSER 等信号宽度时,需与 DUT 接口匹配,否则可能导致仿真错误。
    • 若 DUT 不支持 TREADY,需设置 HAS_TREADY=0
  3. TLAST 生成

    • 默认情况下,TLAST 需手动配置或随机生成。若需自动生成数据包,设置 TLAST_GEN_METHOD 为自动模式。
    • 验证 TLAST 的正确性,确保数据包边界符合设计要求。
  4. 测试台集成

    • 使用虚拟接口时,需正确绑定到 DUT 的 AXI4-Stream 接口。
    • 示例代码中,agent.start_master()agent.start_slave() 需在复位完成后调用。

总结

AXI4-Stream Verification IP是一款功能强大且易用的验证工具,专为 AXI4-Stream 接口的仿真和验证设计。其支持主、从和透传三种模式,提供激励生成、协议检查和事务监控功能,显著简化了自定义 RTL 设计的验证流程。该 IP 核以 SystemVerilog 实现,兼容主流仿真器和验证方法学,广泛应用于视频处理、信号处理、网络数据包处理和 SoC 验证等领域。

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、付费专栏及课程。

余额充值