ADM-XRC SDK 2.8.1 User Guide (Linux)
© Copyright 2001-2009 Alpha Data
The DMA engines on the local bus bridge of an ADM-XRC series card are capable of operating in demand-mode. In demand-mode, instead of transferring data to or from the FPGA as fast as possible, a DMA engine will transfer data "on-demand" of the FPGA. For example, in a design which contains a FIFO whose data is read out via the local bus, the FPGA can request that the DMA engine transfer some data only when the FIFO is not empty.
To use demand-mode DMA, the host must specify demand-mode in the mode word for a DMA transfer. This is done using the ADMXRC2_BuildDMAModeWord function. The mode word that includes demand-mode can then be supplied in a call to ADMXRC2_DoDMA, for example. Demand-mode may be freely mixed with the other DMA modes, such as constant address mode and LEOT mode.
To use demand mode:
The LDREQ# and LDACK# signals actually comprise pairs of request-acknowledge signals, one pair per DMA engine in the PCI-to-local bus bridge on an ADM-XRC series card. They work as follows:
This following topics illustrate the local bus protocol when demand-mode DMA is used:
Demand-mode DMA burst read, LDREQ# kept asserted
Demand-mode DMA burst read, LDREQ# deasserted to pause transfer
Demand-mode DMA single word read, LDREQ# deasserted early
Demand-mode DMA write, LBTERM# breaks up bursts
In this example, LDREQ#n is kept asserted.
Note:
In this example, LDREQ#n is deasserted mid-burst in order to "pause" the DMA transfer.
Note:
In this example, LDREQ#n is deasserted early in order to perform a single word demand-mode DMA burst.
Note:
In this example, LBTERM# breaks up the demand-mode DMA bursts.
Note: