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

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

3.1. 内部例化描述符控制器时的Avalon-MM DMA接口

在组件GUI中选择Enable Avalon-MM DMAInstantiate internal descriptor controller获得该配置结果。

下图显示为以软逻辑实现的Avalon-MM DMA桥接。它通过 Avalon® -ST接口对接PCIe的Hard IP。

下图中, Avalon® -ST连接和BAR0非突发主接口到Descriptor Controller从接口的连接均为内部连接,并以黑色虚线表示。Descriptor Controller Master和非突发Slave间的连接以及Read DMA Data Master和Descriptor Table Slave间的连接都通过Platform Designer创建。图中蓝色线表示这些连接。

注: 下图和文字描述中,术语Read和Write以系统存储器角度出发。因此,Read事务从系统存储器读取数据并将其写入 Avalon® -MM地址空间中的局部存储器。Write事务将从 Avalon® -MM地址空间的局部存储器中读取的数据写入系统存储器。
图 19. 具有可选内部描述符控制器的Avalon-MM DMA桥结构图(显示为DMA写流程)

本图示中的数字描述了DMA写流程中的步骤如下:

  1. CPU写入Descriptor Controller Slave中的寄存器以启动DMA。
  2. Descriptor Controller指示Read Data Mover获取描述符列表。
  3. Read Data Mover将描述符列表转发到PCIe Write Descriptor Table Slave。
  4. Descriptor Controller指示Write Data Mover传输数据。
  5. Write Data Mover将FPGA数据传输到系统存储器。
  6. Write Data Mover使用done位来通知描述符控制器数据传输已完成。
  7. Descriptor Controller Master更新系统存储器中描述符列表的状态。
  8. Descriptor Controller Master向主机发送MSI中断。
图 20. 具有可选内部描述符控制器的Avalon-MM DMA桥结构图(显示为DMA读流程)

本图示中的数字说明DMA读流程中的步骤如下:

  1. CPU写入Descriptor Controller Slave中的寄存器以启动DMA。
  2. Descriptor Controller指示Read Data Mover获取描述符列表。
  3. Read Data Mover将描述符列表转发到PCIe Write Descriptor Table Slave。
  4. Descriptor Controller指示Read Data Mover传输数据。
  5. Read Data Mover将数据从系统存储器传输到FPGA。
  6. Read Data Mover使用done位来通知描述符控制器数据传输已完成。
  7. Descriptor Controller Master更新系统存储器中描述符列表的状态。
  8. Descriptor Controller Master向主机发送MSI中断。

当桥接中包含可选Descriptor Controller时,Avalon-MM桥接包含以下 Avalon® 接口以实现DMA功能:

  • PCIe Read DMA Data Master (rd_dma):此为256-bit宽,只写Avalon-MM主接口,它支持最多16个周期的rd_dma*前缀突发。Read Data Mover使用该接口对从 PCIe* 系统存储空间读取的数据块进行高吞吐量写入。该接口将描述符写入Read和Write Descriptor table slave以及任何与 Avalon® -MM连接的从接口。
  • PCIe Write DMA Data Master (wr_dma):此只读接口将数据块以高吞吐量从Avalon-MM域传输到PCI Express存储空间。并驱动其突发Avalon-MM主接口上的读事务。还通过来自 Avalon® -MM读数据载荷创建PCIe Memory Write(MWr)TLP。将MWr TLP转发到Hard IP来实现链路上的传输。Write Data Mover模块将传输分解为所需数量的Avalon-MM突发读事务和PCIe MWr TLP。此为具有wr_dma*前缀的256-bit突发Avalon-MM接口。
  • PCIe Read Descriptor Table Slave (rd_dts):这个是256-bit Avalon-MM从接口,它支持最多16个周期写突发。PCIe Read DMA Data Master将描述符写入该表。该连接在DMA桥接外创建,因为Read Data Mover通常还与其他Avalon-MM slave连接。该接口的前缀为rd_dts
  • PCIe Write Descriptor Table Slave (wr_dts):256-bit Avalon-MM从接口,它支持最多16个周期写突发。PCIe Read DMA Data Master将描述符写入该表。PCIe Read DMA Data Master必须在DMA桥接以外与该接口连接,因为突发主接口可能也需要与PCIe Read Data Mover目的地连接。该接口的前缀为wr_dts
  • Descriptor Controller Master(DCM):32-bit,非突发Avalon-MM主接口,带有只写功能。其控制将单个DWORD DMA状态信息发送到主机的非突发Avalon-MM从接口。这些接口的前缀为 wr_dcmrd_dcm
  • Descriptor Controller Slave(DCS):32-bit非突发Avalon-MM从接口,具读写访问权限。主机通过BAR0 Non-Bursting Avalon-MM Master访问该接口以对Descriptor Controller进行编程。
    注: 它并非Avalon-MM桥接的顶层接口。由于该接口与BAR0连接,因此无法使用BAR0访问其他Avalon-MM从接口。