L-tile和H-tile Avalon® 存储器映射 Intel® FPGA IP PCI Express* 用户指南

ID 683667
日期 11/11/2021
Public
文档目录

10.2. Endpoint设计实例

本设计实例由本地Endpoint,DMA应用程序和Root Port BFM组成。写DMA模块实现Endpoint存储器到Root Complex (RC)存储器的写操作。读DMA实现RC存储器到Endpoint存储器的读操作。

在硬件平台上运行时,通常由运行于Root Complex处理器上的软件应用程序控制DMA。仿真中,随本设计实例而生成的测试平台会提供一个Verilog HDL的BFM驱动器模块以控制DMA操作。因为本实例不依赖PCI Express链路以外的其他硬件接口,因此可使用本设计实例对系统进行硬件验证。

系统生成以Verilog HDL创建Endpoint系列。当前发布中仅有Verilog HDL测试文件可用。

注:

要使用MSI运行DMA测试,必须将PCI Express/PCI Capabilities页面下的Number of MSI messages requested参数设置成不小于2的值。

DMA设计实例使用能够传送大量零碎内存的体系结构,则无需访问每个存储器块的DMA寄存器。对于每个存储器块,DMA设计实例使用的描述符列表包含信息如下:

  • 传送大小
  • 源地址
  • 目的地址
  • 控制位,以设置软件应用程序或BFM驱动器与DMA模块间的握手行为(handshaking behavior)。
注: DMA设计实例仅支持DWORD对齐访问。DMA设计实例不支持ECRC转发。

BFM驱动器将描述符列表写入BFM共享存储器,由此DMA设计实例引擎持续收集DMA读,DMA写或两者的描述符列表。传送之初,BFM编程Endpoint DMA控制寄存器。DMA控制寄存器显示描述符列表总数和首个描述符列表的BFM共享存储器地址。编程DMA控制寄存器后,DMA引擎不断从BFM共享存储器取回用于DMA读和DMA写的描述符,并执行每个描述符的数据传送。

下图显示为与外部RC CPC相连的设计实例的结构图。

图 69. 仿真的顶层DMA设计实例

该结构图包括以下单元:

  • DMA应用程序连接到Intel L-/H-Tile Avalon-MM for PCI Express IP核的 Avalon® -MM接口。该连接中包含以下接口:
    • Avalon® -MM RX主接口接收来自Hard IP块的TLP头和数据信息。
    • Avalon® -MM TX 从接口将TLP头和数据信息发送到Hard IP块。
    • Avalon® -MM控制寄存器访问(CRA)IRQ端口向Hard IP块请求MSI中断。
    • 边带信号总线承载如配置信息等静态信息。
  • BFM共享存储器储存DMA读和DMA写操作的描述符列表。
  • Root Complex CPU和相关联 PCI Express* PHY通过Root Port连接Endpoint设计实例。

实例Endpoint设计和应用程序实现如下目标:

  • 展示如何对接使用Avalon-MM协议的Intel L-/H-Tile Avalon-MM for PCI Express
  • 提供DMA通道,初始化 PCI Express* 链路上的存储器读和写事务。

DMA设计实例层次包含以下组件:

  • DMA读和DMA写模块
  • 片上Endpoint存储器(Avalon-MM slave)对每个引擎使用两个Avalon-MM接口。

RC从模块通常驱动以Endpoint片上缓冲存储器为目标的下游事务。这些目标存储器事务旁路DMA引擎。此外,RC从模块监视性能和并确认传入的消息TLP。