
Applied Micro Circuits Corporation
6195 Lusk Blvd., San Diego, CA 92121 (619) 450-9333
15-35
ADD-ON DMA CONTROLLER DESIGN FOR THE S5933
When a DMA request is removed during a data phase, the DMA controller completes the data phase (without
asserting RDFIFO# or WRFIFO# or updating the address/count registers) and advances to the recovery phase.
From the recovery phase, if the DMA request has not been reasserted, the state machine advances to the idle
state, giving up control of the add-on bus. If the DMA request has been reasserted by the time the recovery
phase is completed, then the state machine advances to the address phase and begins another data transfer.
Figure 7. DMA Request (RDEMPTY) Removal During a Burst Read Transfer
3.0
PLD MODIFICATIONS
The PLD implementation described in this application note is a general-purpose, single-channel DMA controller.
The design can easily be modified for a specific add-on application. Modifications such as decreasing the
address register or transfer count size are relatively simple. The design could also be easily modified for a 16-bit
add-on interface. The following sections describe some possible modifications and show how they can be
implemented.
3.1
Automatically Programming Transfer Count and Address Registers
Many S5933 applications may implement add-on initiated bus mastering. This allows add-on logic to program
S5933 PCI bus master address registers (MWAR and MRAR) and transfer count registers (MWTC and MRTC).
In this situation, it might be desirable to allow the DMA controller address and transfer count registers to be
programmed during the write access to the corresponding S5933 add-on operation registers. Whenever a PCI
bus master read or write address is programmed, the DMA controller address register is programmed during the
same cycle. Whenever a PCI bus master read or write transfer count is programmed, the DMA controller transfer
count is programmed during the same cycle. This avoids running extra add-on bus cycles to setup add-on DMA
transfers and S5933 bus mastering.