1

I am studying DMA block presented in IP catalog and figure out what the best choice is.

I started with AXI DMA and AXI CDMA blocks and found the following description of the difference:

AXI DMA is used with streaming devices to memory mapped devices or vice versa. AXI CDMA is used with memory mapped to memory mapped devices

I didnt understand these sentences,could someone explain what this mean? What is a difference?

Franki Lee
  • 25
  • 6
  • 1
    which part is unclear? – jsotola Aug 12 '21 at 14:54
  • Did you read chapters 2 and 3 of the linked document? They describe the operation of the different DMAs. – Adam Haun Aug 12 '21 at 15:31
  • @jsotola What is a difference? I have read and it seems they are almost the same blocks, both are for high transmission (PS to PL). and CDMA is connection between two memory mapped block... is this only a difference between them? – Franki Lee Aug 13 '21 at 06:01
  • @AdamHaun I did. Sorry I am a beginner and probably dont know how to find a difference in such description. in these chapter, description of these block are given, signal, port...but it wasnt discussed what cases we should use the first block or second... – Franki Lee Aug 13 '21 at 06:04
  • @jsotola if I have a stream transmission, will be axi dma the best choice? – Franki Lee Aug 19 '21 at 06:28

1 Answers1

2

Going by the descriptions and block diagrams, it sounds like a streaming device would be one that produces or consumes a stream of bytes. A memory-mapped device connects to a memory bus. So a peripheral that stores incoming data in a memory-mapped register would need the CDMA, while a peripheral where the data comes directly out of a FIFO buffer would use the DMA.

If you tell us more about the system you're working on I might be able to help more.

Adam Haun
  • 21,331
  • 4
  • 50
  • 91
  • Thank you for taking your time! Briefly, I am working on SPI ( high speed, up to 50 MBits/s, which should be connected with CPU ( hardware) via DMA or DMA with FIFO ( CPU is connected with DDR-RAM ( Ping Pong Buffers for transmit and receive). – Franki Lee Aug 16 '21 at 05:44
  • In that case, it sounds like you would use the CDMA to read data out of a memory-mapped SPI register or the regular DMA to read data straight out of the FIFO. – Adam Haun Aug 16 '21 at 16:26
  • 1
    I have found another block - AXI Data mover. If i connect it with AXI FIFO Stream block ( command transfer parameters)I will get the DMA block, as I understood. This block gives me more freedom in implementation, isnt? – Franki Lee Aug 17 '21 at 05:40
  • if I have a stream transmission, will be sxi dma the best choice? – Franki Lee Aug 19 '21 at 06:27