
Applied Micro Circuits Corporation
6195 Lusk Blvd., San Diego, CA 92121 (619) 450-9333
15-34
ADD-ON DMA CONTROLLER DESIGN FOR THE S5933
2.5.5
DMA Burst Writes
The DMA controller always attempts to write to the S5933 add-on to PCI FIFO in bursts. Figure 6 shows a two
data phase burst of the last two double words in a transfer (TXCNT = 8). RDY_IN# is driven by an external
device such as a memory controller and may be used to extend individual data phases for as long as necessary.
The DMA controller is designed to interface with the FIFO asynchronous to BPCLK. This means that bit 5 of
location 45h of the non-volatile boot device for the S5933 should be set. In this mode of operation, the S5933
advances the FIFO pointer at each rising edge of WRFIFO#. To interface to a zero wait-state device, the S5933
would have to be configured for FIFO operation synchronous to BPCLK (where the FIFO advances at every
BPCLK rising edge when WRFIFO# is asserted). This would also require modification of the PLD equations.
Figure 6. DMA Burst Write to the S5933 FIFO (Add-on Read)
2.5.6
Removal of a DMA Request During a Burst
It is possible that during a burst read or write operation by the DMA controller, the DMA request will be removed.
This indicates that the S5933 FIFO cannot support any more data transfers. For DMA reads from the S5933 PCI
to add-on FIFO, this occurs when RDEMPTY is asserted. This indicates that there is no data in the FIFO to be
read. For DMA writes to the S5933 add-on to PCI FIFO, this occurs when WRFULL is asserted. This indicates
that the FIFO is full and no more data should be written.
The DMA controller state machine provides for this situation. Figure 7 shows a DMA burst read from the S5933
FIFO. Data 1 is transferred to Address 1, Data 2 is transferred to Address 1 + 4. RDEMPTY is asserted after the
second double-word is transferred, indicating there is currently no more data to be read. The state machine has
already advanced to the next data phase, but when RDEMPTY is asserted, RDFIFO# is not asserted during the
final data phase, and the address and transfer count registers are not modified. This prevents the FIFO pointers
from being updated, but a dummy write cycle is still run to memory at Address 1 + 8. When RDEMPTY is
deasserted again (indicating there is more data available), the DMA transfer continues from the next address
(Address 1 +8). This results in the data written by the dummy cycle to be overwritten with the next valid data.