AN 708: 使用外部DDR3存储器的Stratix V和Arria V GZ器件PCI Express DMA参考设计

ID 683390
日期 11/11/2014
Public

1.4. 参考设计

图 1. DMA参考设计框图


本参考设计所使用的带有Altera DDR3控制器的外部DDR3存储器,可访问应用端板载外部DDR3存储器多达128 MB。读DMA将数据从系统存储器移动到外部DDR3存储器。写DMA将数据从外部DDR3存储器移动到系统存储器。

由于存储器仅有单个端口,所以read和write data movers不能同时访问外部存储器。因此,本参考设计未演示DMA用于同步读和写的实际性能。因为外部存储器的延迟比片上存储器的高,从而通过外部DDR3存储器获取的吞吐量相比片上存储器低。

图 2. DMA参考设计Qsys连接


表 10.  AVMM DMA参考设计模块及端口说明
模块 端口 说明
AVMM DMA pcie_256_dma 这是带有DMA的256-bit Avalon存储器映射模块。由两个read和write data movers,一个 RX master,一个TX slave,以及一个内部描述符控制器组成。本参考设计使用的是一个内部描述符控制器。然而,描述符控制器也可位于DMA模块外部。
RXM_BAR0 N/A 这个是Avalon-MM主端口。将存储器访问从PCIe主机传递到PCIe BAR0。主机使用此端口编程描述符控制器。由于本参考设计使用的是一个内部描述符控制器,所以Qsys中不显示此端口连接。该连接在pcie_256_dma内部进行。
RXM_BAR4 Rxm_BAR4 这个是Avalon-MM主端口。将存储器访问从PCIe主机传递到PCIe BAR4。本参考设计中,该端口连接到外部DDR3存储器的一个端口。PCIe主机通过PCIe BAR4访问存储器。

常见应用中,软件控制该端口从而初始化外部DDR3存储器中的随机数据。软件还读取返回数据以验证操作的正确性。

TXS Txs 这个是Avalon-MM从端口。常见应用中,Avalon-MM主端口驱动此端口以发送存储器读或写到PCIe域。

DMA完成其操作时,描述符控制器通过它将DMA状态写回PCIe域中描述符数据形式。描述符控制器还使用该端口发送上游MSI中断。

Write Data Mover dma_rd_master 这个是Avalon-MM主端口。

正常读DMA操作期间,Read Data Mover通过s2把数据从PCIe域移动到外部DDR3存储器。Read Data Mover还将从PCIe域获取的描述符写入描述符控制器中的FIFO。由于存在两个独立的描述符组,一组用于写DMA,另一组用于读DMA。因为这两个独立的组,dma_rd_master端口被连接到连个端口。与wr_dts_slave连接将用于写DMA描述符FIFO,而与rd_dts_slave连接则用于读DMA描述符FIFO。

Write Data Mover dma_wr_master 这是一个Avalon-MM主端口。

Write Data Mover从外部DDR3存储器读取数据然后将数据写入PCIe域。本参考设计中,此端口使用另一端口访问双端口片上存储器。在本参考设计中,因为DDR3控制器仅有单个端口,所以Write Data Mover和Read Data Mover使用相同端口。

FIFO在描述符控制器中 Wr_dts_slave和rd_dts_slave 这个Avalon-MM从端口用于描述符控制器中的FIFO。

当Read Data Mover从系统存储器获得描述符时,就通过该端口将描述符写入FIFO。

由于存在两个独立的描述符组用于读和写,所以存在两个端口。

用于写DMA时,FIFO地址是从0x0801_20000x0801_3FFF

用于读DMA时,FIFO地址是从0x0801_00000x0801_1FFF

软件枚举DMA时,生成描述符目的地址。

描述符控制器中的控制 Wr_dcm_masterherd_dcm_master 描述符控制器中的控制模块具有两个发送和接收端口。一个用于读DMA,另一个用于写DMA。接收端口被连接到RXM_BAR0,发送端口被连接到Txs

内部连接来自RXM_BAR0的接收路径。在DMA参考设计Qsys连接图示中未显示该连接。关于发送路径,读和写DMA端口都外部连接到TxsDMA参考设计Qsys连接图示中显示这些端口。

DDR3控制器 Altera DDR3控制器 这个是单端口DDR3控制器。它最多能访问128 MB外部DDR3存储器。本参考设计中,DDR3控制器的频率是500 MHz。