Hardware and Software Design • Manufacturing Services
page 18
DMA FIFO Holding Register DMA Read
$2XXX
Bit#
Definiti
on
31-0
Output FIFO data
Read the data stored within the Output FIFO. Select the Output FIFO to read with the Channel definition. Enable the
process with READ_EN_DMA. When enabled and a read to this address occurs the DMA engine within the Xilinx is
started. The data is read from the FIFO, stored within the Input FF register and then moved to the Holding register
– a three deep pipeline. The initial READY signal is held off until data is ready to be read from the holding register.
The data within the register is updated on each clock until the BLASTn signal is asserted by the PLX device.
BLASTn will be asserted when the Burst transfer to the PCI bus is halted due to length of transfer or software
intervention.
The PLX device requires about 6 clocks to arbitrate for the bus and start the transfer. The max time permitted
for a transfer is 256 clocks leaving about 250 data transfers per burst. The transfer is interrupted with the
BLASTn signal and the pipeline retains the current contents. The next transfer will begin with the data within the
pipeline [shorter start-up sequence within the DMA Xilinx as no prefetch and pipeline fill are required on a restart.
In Direct mode, the PLX device will likely have to wait for the DMA process to start-up as the Output FIFO reads
happen at a faster rate than the input data from the LVDS front end. During the Process the software should not
attempt to access the PCI_LVDS_8R. During Retrieve mode, the Address Generator will stay ahead of the DMA
operation; the Output FIFO will always be ready to start a new transfer.
The DMA transfer is controlled by the scatter gather list, PLX device, Address Generator and DMA Xilinx. All
must be properly coordinated for effective operation. The Scatter Gather list instructs the PLX where to place
data and how much, when to interrupt and when it is completed. The DMA Xilinx selects the group of channels to
read from and DMA mode. The Address Generator has a programmed length and address offset to use to define
the data to read. The length programmed is in 64 bit words and must be set to provide all of the data requested
by the scatter gather list. The scatter gather list will reduce the size of each DMA action and the PCI bus
requirements will further subdivide the transfers to be the actual PCI transfers.