cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
4,904 Views
Registered: ‎04-24-2015

Number of Transfers to DMA .

 

I am using Zedboard and VIVADO. I managed to send values from RAM to custom IP and get it back. But the problem is I can only do maximum 4000 transfers (at each transfer, 32 bit data are sending or recieving ). If i try to read the transfer more than 4000 , then i get junk Value from DDR.
Here are the settings of the code:

#define TX_BUFFER_BASE      (MEM_BASE_ADDR + 0x01000000)
#define RX_BUFFER_BASE      (MEM_BASE_ADDR + 0x10000000)


#define MAX_PKT_LEN_WORDS    4000
#define MAX_PKT_LEN         MAX_PKT_LEN_WORDS*4

#define TEST_START_VALUE    0x00000001

#define NUMBER_OF_TRANSFERS MAX_PKT_LEN_WORDS

What can be the solution to do more transfers ?

Thanks

 

0 Kudos
2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
4,889 Views
Registered: ‎08-02-2011

How is the 'Width of Buffer Length Register' bit set in your hardware?
www.xilinx.com
0 Kudos
Highlighted
Adventurer
Adventurer
4,882 Views
Registered: ‎04-24-2015

yes. Exactly that was the point that i just realized after posting here :P

 

I increased the size and now it works. But just confuse right now about the total transfers. As i need to do transfers more than 1Mbyte.

 


#define MAX_PKT_LEN_WORDS    32
#define MAX_PKT_LEN            MAX_PKT_LEN_WORDS*4
#define NUMBER_OF_TRANSFERS    4000000 //4MBytes

 

I set that configurations at the start of the code, and fill the TxBuffer according to MAX_PKT_LEN (32*4 =128bytes). So 128 bytes are transferring 4000000 times in a for loop.

Is it really transferring 4MByte or i should increase the MAX_PKT_LEN_WORDS to 10000 or more ?

 

Thanks


Regards

0 Kudos