02-06-2020 04:34 AM
We are trying to configure AXI DMA in zynq ultralscale+ (zcu111) board.
DMA is configured in simple mode with bus width of 256.
DMA S2MM path is not working.Tready signal remains high and Interrupt of Completion (IOC ) is not generated.
Once S2MM reset is asserted Tready goes low for 4 cycles and then remains high.PL continiously provides data with valid whenever Tready is high.
With buswidth as 32 DMA S2mm path is working.
MM2S stream path Connection :
- In MM2S path all signals are taken separately and connected to custom IP block in PL.
S2MM stream path Connection :
- In S2MM stream path all signals are made into "one external AXI Interface signal" and connected to AXI DMA S_AXIS_S2MM port.
Suggestions would be helpful.
03-19-2020 07:29 PM
I've only used axi_dma SG. For s2mm completion, when configured as SG, a tlast signal needs to be generated. Otherwise the completion will never occur and an interrupt will not be generated.
For mm2s, the axi_dma will automatically create tlast.
I've attached an ipi module that I recently created and used for SG axi_dma. An axi_gpio is used to set when the tlast counter creates the tlast signal towards the s2mm dma port.
To use this module, add it as source to your vivado project, then in IPI right click and select 'add module'
03-20-2020 06:06 AM