Altera IP Compiler for PCI Express User Manual

Page 244

Advertising
background image

15–12

Chapter 15: Testbench and Design Example

Chaining DMA Design Example

IP Compiler for PCI Express User Guide

August 2014

Altera Corporation

as well as other miscellaneous status registers.

altpcierd_dma_dt

—This module arbitrates PCI Express packets issued by the

submodules altpcierd_dma_prg_reg, altpcierd_read_dma_requester,
altpcierd_write_dma_requester

and altpcierd_dma_descriptor.

altpcierd_dma_prg_reg

—This module contains the chaining DMA control

registers which get programmed by the software application or BFM driver.

altpcierd_dma_descriptor

—This module retrieves the DMA read or write

descriptor from the BFM shared memory, and stores it in a descriptor FIFO.
This module issues upstream PCI Express TLPs of type Mrd.

altpcierd_read_dma_requester

, altpcierd_read_dma_requester_128—For each

descriptor located in the altpcierd_descriptor FIFO, this module transfers data
from the BFM shared memory to the endpoint memory by issuing MRd PCI
Express transaction layer packets. altpcierd_read_dma_requester is used with
the 64-bit Avalon-ST IP core. altpcierd_read_dma_requester_128 is used with
the 128-bit Avalon-ST IP core.

altpcierd_write_dma_requester, altpcierd_write_dma_requester_128

—For

each descriptor located in the altpcierd_descriptor FIFO, this module transfers
data from the endpoint memory to the BFM shared memory by issuing MWr
PCI Express transaction layer packets. altpcierd_write_dma_requester is used
with the 64-bit Avalon-ST IP core. altpcierd_write_dma_requester_128 is used
with the 128-bit Avalon-ST IP core.

altpcierd_cpld_rx_buffer

—This modules monitors the available space of the

RX Buffer; It prevents RX Buffer overflow by arbitrating memory read request
issued by the application.

altpcierd_cdma_ecrc_check_64

, altpcierd_cdma_ecrc_check_128—This

module checks for and flags PCI Express ECRC errors on TLPs as they are
received on the Avalon-ST interface of the chaining DMA.
altpcierd_cdma_ecrc_check_64

is used with the 64-bit Avalon-ST IP core.

altpcierd_cdma_ecrc_check_128

is used with the 128-bit Avalon-ST IP core.

altpcierd_cdma_rx_ecrc_64.v

, altpcierd_cdma_rx_ecrc_64_altcrc.v,

altpcierd_cdma_rx_ecrc_64.vo

—These modules contain the CRC32 checking

Megafunction used in the altpcierd_ecrc_check_64 module. The .v files are
used for synthesis. The .vo file is used for simulation.

altpcierd_cdma_ecrc_gen

—This module generates PCI Express ECRC and

appends it to the end of the TLPs transmitted on the Avalon-ST TX interface of
the chaining DMA. This module instantiates the altpcierd_cdma_gen_ctl_64,
altpcierd_cdma_gen_ctl_128

, and altpcierd_cdma_gen_datapath modules.

altpcierd_cdma_ecrc_gen_ctl_64

, altpcierd_cdma_ecrc_gen_ctl_128—This

module controls the data stream going to the altpcierd_cdma_tx_ecrc module
for ECRC calculation, and generates controls for the main datapath
(altpcierd_cdma_ecrc_gen_datapath).

altpcierd_cdma_ecrc

gen_datapath—This module routes the Avalon-ST data

through a delay pipe before sending it across the Avalon-ST interface to the IP
core to ensure the ECRC is available when the end of the TLP is transmitted
across the Avalon-ST interface.

altpcierd_cdma_ecrc_gen_calc

—This module instantiates the TX ECRC core.

Advertising