ADM-XRC SDK 2.3.0 User Guide (Linux)
© Copyright 2001-2003 Alpha Data
Demand-mode DMA transfers
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.
To take advantage of demand-mode DMA, an FPGA design must drive the LDREQ# signal, and monitor the LDACK# signal. These signals 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
Demand-mode DMA read, LDREQ# kept asserted
In this example, LDREQ#n is kept asserted.
Note:
Demand-mode DMA read, LDREQ# deasserted to pause transfer
In this example, LDREQ#n is deasserted mid-burst in order to "pause" the DMA transfer.
Note:
Demand-mode DMA single word read, LDREQ# deasserted early
In this example, LDREQ#n is deasserted early in order to perform a single word demand-mode DMA burst.
Note:
Demand-mode DMA write, LBTERM# breaks up bursts
In this example, LBTERM# breaks up the demand-mode DMA bursts.
Note: