AXI 内存设计示例演示

建议用于:

  • 设备:不详

  • Quartus®:v13.0

author-image

作者

此设计示例演示了 Qsys 系统的简单 Verilog 自定义内存组件上的 AMBA* AXI*-3 从机接口。可以将此示例用作自定义 AXI 从机接口的基础。此组件还包括可选的 Avalon® Streaming (Avalon-ST) 接口和 Avalon® Memory-Mapped (Avalon-MM) 接口,演示了如何在一个组件中使用多个接口标准。

《Quartus® II 手册》使用此示例来说明使用组件编辑器和自定义硬件 Tcl 命令封装知识产权 (IP) 组件的过程。可以使用此示例中的 HDL 文件了解如何使用组件编辑器创建您自己的简单硬件 Tcl (_hw.tcl) 文件,如“创建 Qsys 组件”(PDF) 一章所述。还可以参考所包含的 _hw.tcl 文件,了解硬件 Tcl 命令的高级用法,包括推导参数、验证回调和精细回调,从而自定义 Qsys 中的参数化 UI 并将接口表示为可选接口。有关硬件 Tcl 命令的详细信息,请参阅“组件接口 Tcl 参考”(PDF) 一章。

有关使用 Qsys 创建包含自定义组件的系统的更多信息,请参阅《Quartus II 手册》中的“使用 Qsys 创建系统”(PDF) 一章。

使用此设计示例

下载文件 demo_axi3_memory.zip 并解压缩内容。此设计示例需要 Altera® Complete Design Suite (ACDS) v13.0 或更高版本。

ZIP 文件的 /ip 子目录中包括以下 IP 组件文件:

  • 设计文件 demo_axi_memory.svsingle_clock_ram.sv

  • 用于封装 Qsys 组件的自定义硬件 Tcl 文件 demo_axi_memory_hw.tcl
  • 用于在仿真输出中生成消息的 SystemVerilog 包文件 /verification_lib/verbosity_pkg.sv(也可以在 Quartus II 软件安装目录中找到,路径为 /ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)

要在您自己的 Qsys 系统中使用此组件,请将 /ip 子目录从解压缩的 ZIP 文件复制到您的 Quartus II 项目目录中。在项目中创建或打开 Qsys 系统时,Qsys 会检测 /ip 子目录中的 IP 组件,并将此组件添加到 LibraryProject 部分的 Memories and Memory Controls/On-Chip 类别下的列表中。

ZIP 文件的 /ip/simulation 子目录中还包含以下文件,用于仿真独立组件:

  • Testbench 文件 tb_mem.sv
  • 脚本 run_sim.tcl,使用 mem.do 文件在 Mentor Graphics® ModelSim* 中执行仿真,从而显示组件运行波形

要在 ModelSim 中运行仿真,请将工作目录设置为解压缩的 ZIP 文件中的 /ip/simulation 子目录。输入源 run_sim.tcl。

此外,ZIP 文件还包含以下 Quartus II 软件文件:

  • 一个简单的 Qsys 测试系统 test.qsys,用于展示 Qsys 系统中组件的实例化
  • 一个 Quartus II 软件伪项目文件,供您选择性地生成和编译 Qsys 测试系统:test.qpf、test.qsf、test.sdc

要查看实例化为 Qsys 测试系统一部分的组件,请在 Quartus II 软件中打开 test.qpf 项目文件,然后在 Qsys 中打开 test.qsys 文件。双击“系统内容”选项卡上的“名称”“描述”列中的组件(或右键单击组件,然后选择“编辑”),查看参数编辑器。

该设计的使用受英特尔® 设计示例许可协议中条款和条件的管理和约束。

设计详情

示例 Qsys 组件包括以下接口:

AXI-3 从机接口

AXI 从机接口是片上内存模块的内存映射接口。此接口应由 AXI 或 Avalon-MM 主机接口控制,此主机接口可以对内存模块进行写入和读取。参数指定了 AXI ID 信号宽度、从机地址宽度和数据宽度。

Avalon-ST 接口

在 Qsys 中对此组件进行实例化时,可以选择启用或禁用可选的 Avalon-ST 源接口。此接口的灵感来自电话应用程序,其中的铃声(DTMF、忙音、拨号音、回铃音等)都存储为重复字节流,可以根据需要切换到特定端口。Avalon-ST 端口提供一个字节流,它由起始地址、结束地址和存储在 RAM 中这两个地址(包括这两个地址)之间的数据所定义。按照从起始地址到结束地址的顺序输出字;每个字首先输出 MSB。此演示版本假设结束地址大于起始地址。

例如,可考虑使用以下内存内容:
起始地址:0xbeef_0742
0xdace_32f7
结束地址:0xb0de_13ef
组成的字节流将为:be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07

Avalon-MM CSR 接口

Avalon-MM 接口是一个简单的控制和状态寄存器 (CSR) 接口,用于控制上述流端口。只有在启用 Avalon-ST 接口时才需要此接口,禁用 Avalon-ST 接口时此接口将被禁用。参数指定了 Avalon® 从机地址宽度和数据宽度。

控制寄存器位于与内存地址范围分隔的地址范围内,其基地址可以分配到系统内存映射中任何方便的位置。下表列出了每个控制寄存器的用途:

Qsys 参数编辑器

以下屏幕截图显示了 Qsys 中 AXI 内存组件演示的参数编辑器 UI。