
Synopsys Protocol
For peripherals using the Synopsys protocol, clock-crossing logic and protocol adaptation logic exist between
the DMA and the peripheral. The Synopsys protocol does not support the flush command; any flush
commands issued do not reach the peripheral. The Synopsys protocol does not provide for acknowledgements;
hence, the protocol cannot distinguish between acknowledgements to burst and single transfers.
No Flush Support
For peripherals that use the Synopsys peripheral request protocols, the flush command is not supported.
Any flush command issued to any peripheral interface supporting the Synopsys protocol is dropped before
reaching the peripheral.
No Acknowledge Type
For the Synopsys peripheral request interface protocol, there is no acknowledgement available. As a result
peripherals using the Synopsys protocol cannot distinguish between acknowledgements to burst and single
transfers.
Using Events and Interrupts
The DMAC can support eight events and interrupts. The
INTEN
register determines whether each event-
interrupt resource is an event or an interrupt.
When the DMAC executes a
DMASEV
instruction it modifies the event-interrupt resource that you specify.
The
INTEN
register sets the event-interrupt resource to function as an:
• Event—The DMAC generates an event for the specified event-interrupt resource. When the DMAC
executes a
DMAWFE
instruction for the same event-interrupt resource then it clears the event.
• Interrupt—The DMAC sets the
irq <event_num>
signal high, where <event_num> is the number
of the specified event resource. To clear the interrupt you must write to the
INTCLR
register.
Using an Event to Restart DMA Channels
When you program the
INTEN
register to generate an event, you can use the
DMASEV
and
DMAWFE
instructions to restart one or more DMA channels.
DMAC executes DMAWFE before DMASEV
To restart a single DMA channel:
1. The first DMA channel executes
DMAWFE
and then stalls while it waits for the event to occur.
2. The other DMA channel executes
DMASEV
using the same event number. This generates an event, and
the first DMA channel restarts. The DMAC clears the event, one clock cycle after it executes
DMASEV
.
You can program multiple channels to wait for the same event. For example, if four DMA channels have all
executed
DMAWFE
for event 2, and another DMA channel executes
DMASEV
for event 2, the four DMA
channels all restart at the same time. The DMAC clears the event, one clock cycle after it executes
DMASEV
.
DMAC executes DMASEV before DMAWFE
If the DMAC executes
DMASEV
before another channel executes
DMAWFE
the event remains pending until
the DMAC executes
DMAWFE
. When the DMAC executes
DMAWFE
it halts execution for one
aclk
clock
cycle, clears the event and then continues execution of the channel thread.
DMA Controller
Altera Corporation
cv_54016
Synopsys Protocol
16-14
2013.12.30