Lattice Semiconductor ispLever Core Multi-Channel DMA Controller User Manual Download Page 11

Lattice Semiconductor

Multi-Channel DMA Controller User’s Guide

11

The functionality of the core in the non-8237 mode is very similar to that of the 8237 mode. However, the two
modes have totally different sets of programmable control registers. This increases the programmability features in
the non-8237 mode. Some of the features available only in the non-8237 mode are:

• Multiple channels

• Configurable channels for DMA transfers between memory-and-memory or I/O-and-memory

• Parameterized address output and data bus width

• Parameterized word-count register

The microprocessor programs a number of registers to ensure the DMA controller functions properly. The internal
registers are accessed when the 

cs_n

 signal is asserted and the address of the register is placed on the 

ain

 bus.

When the 

iowin_n

 signal is low, the registers are over written with the data on 

dbin

 bus. When the 

iorin_n

 sig-

nal is asserted, the registers are read and their contents are placed on the 

dbout

 bus. The least significant eight

bits of the data bus can access the internal registers irrespective of the data bus width. 

To prevent erroneous behavior, the DMA registers should be programmed only when the controller is in the Idle
State (SI) or before it receives the 

hlda

 signal from the microprocessor. Not adhering to these rules will cause the

DMA controller to function in a non-deterministic way. The registers visible to the microprocessor are different for
the 8237 and non-8237 modes. 

The MCDMA controller core is a fully synchronous machine that runs off the positive edge of the clock. However,
the DMA request signals, 

dreq[N-1:0

], are asynchronous with respect to the clock. These signals have to be

synchronized within the core.

DMA Initialization

Once the Command and Mode registers are programmed and the controller is enabled, DMA transfers can be initi-
ated either by asserting the unmasked channel’s 

dreq

 signal or by requesting to DMA by programming the request

register. The internal registers of the core are accessible during the idle state (SI) when no channel is requesting
service and no DMA transfers are in progress.

The core operates in two cycles: Idle and Active. The core remains in the idle cycle as long as it is not performing
any DMA transfers and none of the unmasked channels have a pending request. In this state, the microprocessor
can program the device. Once an unmasked channel requests DMA service, the device asserts the 

hreq

 signal to

take control of the bus and enters the first active cycle state S0. The device can still be programmed in the S0 state
until it receives the 

hlda

 signal from the bus arbiter. For DMA transfers between memory and I/O, the active cycles

go from states S1 through S4. When memory-to-memory DMA transfers are performed, the active cycles go
through states S11, S12, S13, S14 for the memory read operation and states S21, S22, S23, S24 for the memory
write operation. Wait states are introduced whenever the slave device is not ready for the transfer.

MCDMA Transfer  Modes

When the MCDMA is in the active cycle, the DMA service takes place in one of the following three modes:

Single Transfer  Mode:

 In single transfer mode, the device is programmed to make one transfer only. Following 

each transfer, the Word Count decrements and the address decrements or increment, depending on what is 
selected in the Mode register. To be recognized, the 

dreq

 signal must be held active until 

dack

 becomes active. 

If 

dreq

 is held active throughout the single transfer, 

hreq

 goes inactive and releases the bus to the system. After 

the transfer, 

hreq

 will go active again. When the controller receives a new 

hlda

, another single transfer will be 

performed.

Block Transfer Mode:

 In block transfer mode, 

dreq

 signals the device to continue making transfers during the ser-

vice until a terminal count is encountered (generation of 

eopout_n

).This occurs when the word count goes to 

0xFFFF, or an external End of Process (e

opin_n

) is encountered. The 

dreq

 signal must be held active until 

dack

 

becomes active. Auto-initialization occurs at the end of the service if the channel has been programmed for it.

Summary of Contents for ispLever Core Multi-Channel DMA Controller

Page 1: ...February 2006 ipug11_04 0 Multi Channel DMA Controller User s Guide ispLever CORE CORE TM...

Page 2: ...om the Intel 8237A core in the following ways The bi directional ports are split into separate input and output ports MCDMA does not support the cascade mode of operation The latch that holds the uppe...

Page 3: ...Lattice Semiconductor Multi Channel DMA Controller User s Guide 3 Software DMA requests...

Page 4: ...the data bus CPU Interface Data The CPU Interface Data block contains all the configuration registers It includes all the routing logic required to transfer either the selected register s contents du...

Page 5: ...3 S14 S21 S22 S23 and S24 If the next transfer should continue for the same request the path from S11 to S24 is repeated If memory to I O or I O to memory is enabled the FSM goes through states S2 S3...

Page 6: ...Modes Request Dropped Illegal Mode Illegal I O Mode 8237 only LAST_TRAN SINGLE_TRAN Termination LAST_TRAN SINGLE_TRAN Termination Write Phase Read Phase Another Transfer Compressed 8237 only NR NR NR...

Page 7: ...ty at that time The DMA priority scheme will be described more in the priority request encoder section Non 8237 Mode In this mode memory to memory transfer is detected if bit zero of the current chann...

Page 8: ...f the memory to memory transfer mode In the 8237 mode the content of the current address register on Channel 1 is put on the address bus In the non 8237 mode the content of the destination address reg...

Page 9: ...the DMA transfer The dack signal is asserted The dreq signal does not need to be held asserted after this state if block or single transfer mode is selected memr_n or iorout_n is asserted depending on...

Page 10: ...ns are addressable but I O locations are not addressable The source address register in the non 8237 mode holds the memory location address during DMA transfers between an I O device and memory Active...

Page 11: ...est register The internal registers of the core are accessible during the idle state SI when no channel is requesting service and no DMA transfers are in progress The core operates in two cycles Idle...

Page 12: ...e MODE_8237 Defines the DMA mode If it is TRUE the DMA will be in 8237 mode otherwise it will be in non 8237 mode TRUE FALSE Number of Channel NUM_CHANNELS Sets the number of channels In 8237 mode it...

Page 13: ...ters In the 8237 mode ain is 4 bits wide In the non 8237 mode the bus width depends on the number of channels selected dbin DATA_BUS_WIDTH 1 0 Input N A Data Bus Input The CPU writes to the internal r...

Page 14: ...n and iorin_n are asserted Clock edges 1 2 and 3 indicate the edges on which the data is valid aen Output High Address Enable This active high signal enables the 8 bit latch that contains the upper 8...

Page 15: ...Lattice Semiconductor Multi Channel DMA Controller User s Guide 15 Figure 4 Processor Read Timing Waveform Clock cs_n iorin_n ain 1 2 3 dbout...

Page 16: ...ss Si Note 1 This timing diagram demonstrates the extended write operation In the 8237 mode when normal write operation is selected iowout_n or the memw_n is asserted one clock cycle later If compress...

Page 17: ...ialization is enabled the value in the Base Word Count register is reloaded at the end of the DMA service When the value in the register goes from zero to 0xFFFF a terminal count eopout_n signal is ge...

Page 18: ...r master clear clears this register The channel must be in block mode in order to make a software request Table 10 lists the request register format in 8237 Mode Status Register This register is only...

Page 19: ...ress increment 1 Address decrement 7 6 10 Demand mode select 01 Single mode select 10 Block mode select 11 Cascade mode unsupported Bit Description 0 0 Channel 0 unmasked 1 Channel 0 masked 1 0 Channe...

Page 20: ...in consecutive cycles after clearing the byte pointer The number of cycles taken to access this register depends on the size of the address bus During memory to memory transfers this register stores...

Page 21: ...s the channel s hardware requests Auto initialization is disabled upon a reset Table 13 Command Register Non 8237 Mode Table 14 Mode Register Non 8237 Mode Bit Description 0 0 Controller enable 1 Cont...

Page 22: ...0 0 0 1 Base and current Word Count reg Current Word Count reg 0 0 1 0 1 Base and current Address reg Current DMA address reg 0 0 1 1 Base and current Word Count reg Current Word Count reg 0 1 0 0 2...

Page 23: ...of the bits select which channel to be programmed Program the Mode and Channel control registers of all the channels Write into the Address registers and Word Count register Enable the controller The...

Page 24: ...PFUs2 Registers sysMEM EBRs I O fMAX MHz 8237 dma_mc_o4_2_001 lpc 1258 200 524 N A 59 58 Non 8237 dma_mc_o4_2_002 lpc 2661 499 1187 N A 125 66 1 Performance and utilization characteristics are genera...

Page 25: ...ng the usage of IPexpress can be found in the IPexpress and ispLEVER help system For more information on the ispLEVER design tools visit the Lattice web site at www latticesemi com software Mode Name...

Page 26: ...nd is included as a standard feature of the ispLEVER design tools Details regarding the usage of IPexpress can be found in the IPexpress and ispLEVER help system For more information on the ispLEVER d...

Page 27: ...cluded as a standard feature of the ispLEVER design tools Details regarding the usage of IPexpress can be found in the IPexpress and ispLEVER help system For more information on the ispLEVER design to...

Page 28: ...d is included as a standard feature of the ispLEVER design tools Details regarding the usage of IPexpress can be found in the IPexpress and ispLEVER help system For more information on the ispLEVER de...

Page 29: ...Mouser Electronics Authorized Distributor Click to View Pricing Inventory Delivery Lifecycle Information Lattice DMA MC E2 N3 DMA MC O4 N2 DMA MC XM N3 DMA MC XP N2 DMA MC SC N3...

Reviews: