Thanks again for your reply！I want to use two DMAs and two HP ports to transfer data from DRAM to PL at the same time, just like the link:Multiple DMAs, But only one work.
However, I found that one of the DMAs was not working properly. Then, I read the status register and found that it pointed out DMA Decode Error. This error occurs if the address request points to an invalid address.
So I read the physical address accessed by DMA1 , I found that the problem is that this address is less than the start address of my HP1 port, which leads to the inability to read the data in DRAM from HP1 port.Just like the address 0x18050000 of input_buffer.physical_address in the figure is less than 0x20000000 of the start address of my HP1 port.
To make matters worse, because the four memories (input_buffer_0, output_buffer_0, input_buffer_1, output_buffer_1) allocated by the Xlnk class are continuous, I cannot reduce the start address of HP1 in the Vivado Address Editor to make the addresses of input_buffer_1 and output_buffer_1 larger than The address of the HP1 port, Because it is very likely that the newly allocated physical address is all greater than the address of the HP1 port, so that data cannot be read from the HP0 port.
I don’t know what should i do
I am looking forward to your reply！Thank you so much!