AXI 基础第 2 讲——使用 AXI Verification IP (AXI VIP) 对 AXI 接口进行仿真

文章转载自:XILINX技术社区微信公众号

赛灵思 AXI Verification IP (AXI VIP) 是支持用户对 AXI4 和 AXI4-Lite 进行仿真的 IP。它还可作为 AXI Protocol Checker 来使用。

此 IP 只是仿真 IP,将不进行综合(它将在 Pass-through 配置中被连线所替代)。

AXI VIP IP 核用途如下:

  • 生成 Master AXI 指令和写内容
  • 生成 Slave AXI 读内容和写响应
  • 检查 AXI 传输是否符合协议标准
  • 它支持 5 种不同配置:

  • AXI Master VIP
  • AXI Pass-through VIP(无内存模型)
  • AXI Pass-through VIP(有内存模型)
  • AXI Slave VIP(无内存模型)
  • AXI Slave VIP(有内存模型)
  • AXI VIP 设计示例

    在 Vivado 中提供了一个 AXI VIP 设计示例。

    要为 AXI VIP 生成设计示例,只需遵循以下步骤进行操作即可:

    1. 打开新工程,并单击“IP Catalog”。

    2. 搜索“AXI Verification IP”。双击并配置 IP,然后 generate IP。

    3. 右键单击此 IP 并选择“Open IP Example Design”

    AXI VIP 的设计示例包含 3 个 AXI VIP:其中一个配置为 Master、一个配置为 Pass-through,另一个配置为 Slave。

    工程中包含了多个 Test Bench 源文件,以匹配不同 AXI VIP 组合:

    注:所有 Test Bench 文件均为 SystemVerilog 语言。要使用 AXI VIP 的全部功能,应将此 IP 例化包含在 SystemVerilog Test Bench 文件中。

    分析 AXI 接口传输

    Vivado 仿真中的实用功能之一是可将协议实例添加到波形图中以在传输级别来查看信号。

    我将逐一介绍sim_basic_mst_active_pt_mem__slv_passive 仿真集的步骤。

    要使用该仿真集,请在“Source”窗口中右键单击它,然后单击“Make Active”。

    该仿真集仅使用 Master AXI VIP 和 Pass-through AXI VIP(充当内存级别的 Slave 设备)。

    可单击 Flow Navigator 中的“Run Simulation”来运行仿真。

    默认情况下,这将打开仅含时钟和复位信号的波形图。

    我们将添加 Master AXI VIP 和 Pass-through AXI VIP 之间的 AXI 接口。

    在“Scope”窗口中,查找并选中“DUT”>“ex_design”下的主设备 AXI VIP (axi_vip_mst)。随后,“Objects”窗口将显示 IP 的所有端口。找到 M_AXI 接口对象并单击“Add to Wave Window”。

    随后,即可在波形图窗口中看到 AXI 传输信号:

    可以看到,在开始时间与仿真时间 1us 之间,读取 (Read) 和写入(Write) 传输均已发生。

    在波形图窗口中可展开 M_AXI 接口以查看所有信号波形:

    每个通道上面的数字对应于传输数量。可以看到在 Read 通道(紫色)上有 5 次读传输,Write 通道上有 4 次传输。

    单击特定传输即可看到其详细过程。例如,如果单击 Write 通道上的第一次传输,即可看到此传输为 burst 传输类型:

    1. 此传输事务首先在 Write Address 通道上写入地址

    2. 然后,在 Write Data 通道上发送 burst 数据

    3. 最后,如果写数据成功,Slave 会在 Write Response 通道上返回响应

    AXI VIP IP 核相关文档详见附件。

    推荐阅读