Altera Arria 10 Avalon-ST User Manual

Page 207

Advertising
background image

module monitors performance and acknowledges incoming message TLPs. Each DMA module consists of

these components:
• Control register module—The RC programs the control register (four dwords) to start the DMA.

• Descriptor module—The DMA engine fetches four dword descriptors from BFM shared memory

which hosts the chaining DMA descriptor table.

• Requester module—For a given descriptor, the DMA engine performs the memory transfer between

Endpoint memory and the BFM shared memory.

The following modules are provided in both Verilog HDL:
altpcierd_example_app_chaining—This top level module contains the logic related to the Avalon-ST

interfaces as well as the logic related to the sideband bus. This module is fully register bounded and can

be used as an incremental re-compile partition in the Quartus II compilation flow.

altpcierd_cdma_ast_rx, altpcierd_cdma_ast_rx_64, altpcierd_cdma_ast_rx_128—These modules

implement the Avalon-ST receive port for the chaining DMA. The Avalon-ST receive port converts the

Avalon-ST interface of the IP core to the descriptor/data interface used by the chaining DMA

submodules. altpcierd_cdma_ast_rx is used with the descriptor/data IP core (through the ICM). a

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

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

altpcierd_cdma_ast_tx, altpcierd_cdma_ast_tx_64, altpcierd_cdma_ast_tx_128—These modules

implement the Avalon-ST transmit port for the chaining DMA. The Avalon-ST transmit port converts

the descriptor/data interface of the chaining DMA submodules to the Avalon-ST interface of the IP

core. altpcierd_cdma_ast_tx is used with the descriptor/data IP core (through the ICM).

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

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

altpcierd_cdma_ast_msi—This module converts MSI requests from the chaining DMA submodules

into Avalon-ST streaming data.

alpcierd_cdma_app_icm—This module arbitrates PCI Express packets for the modules

altpcierd_dma_dt (read or write) and altpcierd_rc_slave. alpcierd_cdma_app_icm instantiates the

Endpoint memory used for the DMA read and write transfer.

alt pcierd_compliance_test.v—This module provides the logic to perform CBB via a push button.

altpcierd_rc_slave—This module provides the completer function for all downstream accesses. It

instantiates the altpcierd_rxtx_downstream_intf and altpcierd_reg_ access modules. Downstream

requests include programming of chaining DMA control registers, reading of DMA status registers,

and direct read and write access to the Endpoint target memory, bypassing the DMA.

altpcierd_rx_tx_downstream_intf—This module processes all downstream read and write requests

and handles transmission of completions. Requests addressed to BARs 0, 1, 4, and 5 access the

chaining DMA target memory space. Requests addressed to BARs 2 and 3 access the chaining DMA

control and status register space using the altpcierd_reg_access module.

altpcierd_reg_access—This module provides access to all of the chaining DMA control and status

registers (BAR 2 and 3 address space). It provides address decoding for all requests and multiplexing

for completion data. All registers are 32-bits wide. Control and status registers include the control

registers in the altpcierd_dma_prg_reg module, status registers in the

altpcierd_read_dma_requester and altpcierd_write_dma_requester modules, 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.

UG-01145_avst

2015.05.04

Chaining DMA Design Examples

17-7

Testbench and Design Example

Altera Corporation

Send Feedback

Advertising