1.4. 参考设计
本参考设计所使用的带有Altera DDR3控制器的外部DDR3存储器,可访问应用端板载外部DDR3存储器多达128 MB。读DMA将数据从系统存储器移动到外部DDR3存储器。写DMA将数据从外部DDR3存储器移动到系统存储器。
由于存储器仅有单个端口,所以read和write data movers不能同时访问外部存储器。因此,本参考设计未演示DMA用于同步读和写的实际性能。因为外部存储器的延迟比片上存储器的高,从而通过外部DDR3存储器获取的吞吐量相比片上存储器低。
| 模块 | 端口 | 说明 |
|---|---|---|
| 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_2000—0x0801_3FFF。 用于读DMA时,FIFO地址是从0x0801_0000—0x0801_1FFF。 软件枚举DMA时,生成描述符目的地址。 |
| 描述符控制器中的控制 | Wr_dcm_masterhe和rd_dcm_master | 描述符控制器中的控制模块具有两个发送和接收端口。一个用于读DMA,另一个用于写DMA。接收端口被连接到RXM_BAR0,发送端口被连接到Txs。 内部连接来自RXM_BAR0的接收路径。在DMA参考设计Qsys连接图示中未显示该连接。关于发送路径,读和写DMA端口都外部连接到Txs。DMA参考设计Qsys连接图示中显示这些端口。 |
| DDR3控制器 | Altera DDR3控制器 | 这个是单端口DDR3控制器。它最多能访问128 MB外部DDR3存储器。本参考设计中,DDR3控制器的频率是500 MHz。 |