11-17-2018 06:23 AM - edited 11-17-2018 06:25 AM
I was working with Axi CDMA simple transfer since while. In the beginning, I was struggling with the data transfer through CDMA but as mentioned in the following link now I'm able to do the data transfer.
With the help of following Block Diagram and Address Map, I'm able to transfer data through CDMA from DDR to BRAM and vise-versa using Simple Transfer Poll Mode (without Scatter Gather).
Now, I wanted to use the same design and transfer the data through CDMA but in Scatter-Gather Mode. for that I've tried the template code provided by xilinx. With the help of that code I'm able to transfer the data from one location of DDR to another location of DDR in Scatter Gather mode. So I don't see any problem in the template code. But the ultimate goal is to transfer the data between DDR and BRAM.
So, in the same code, I've kept DDR as destination address and BRAM as source address. But this scenario is not working as DDR to DDR works fine.
What is working with above Block Design??
What is not working??
Looking forward to any positive response..
Thanks and Regards,
11-22-2018 09:18 PM
11-22-2018 11:05 PM - edited 11-23-2018 12:54 AM
Please find the attachment for the template code I was talking about which is provided by the xilinx on the following path in my laptop.
In that code I've changed the following things to made it working for BRAM to DDR data transfer.
#define MEMORY_BASE 0x01000000 #define TX_BUFFER_BASE 0xC0000000 //(MEMORY_BASE + 0x00630000) #define TX_BUFFER_BASE_PS 0x40000000
#define RX_BUFFER_BASE (MEMORY_BASE + 0x00660000)
0x40000000 address of BRAM is visible to PS, so I'm writing some known data to it.
Similarly 0xC0000000 address of BRAM is visible to CDMA, this address is used for transmitting the BRAM data to DDR.
Can anyone help me to resove this, as the DDR to DDR is working and BRAM to DDR is not.