We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎10-14-2018

XDMA PCIe core , streaming file H2C to fifo hangs on large files

Hi all,


Here is my problem: I have a design which implements a DMA/Bridge subsystem for PCIe. the core is working in streaming mode. to the H2C port of the core, I connect a fifo generator block, configured to streaming mode. master side of the FIFO is connected to an AXI dma in S2MM mode, moving data from the fifo to DRAM.

FIFO is written at 250 MHz, FIFO is read at 200 MHz. first i run the S2MM dma channel, then I write a file to H2C.

I am using the provided xdma_rw application (xdma_rw h2c_0 write 0x0 -f testfile.bin) , supplied with the xdma windows 10 driver, to write a file on the host into the PCIE and move it to card.

when transferring files up to around 250KB, everything works fine. the data moves to FIFO and then to DRAM. S2MM DMA registers show completed, all good.

when trying to send larger files, (I have tried 500KB and above), the transfer hangs, I dont get a write confirmation massage from the xdma_rw command. 

when this happens, the software application hangs, and windows freezes to the point I need to reset the PC. this makes it hard to see whats going on in tap/registers.

now, because this happens when increasing file size, I would assume I have a bandwidth problem. I do have a write faster than my read, however, by the nature of the streaming interface flow control should de assert the FIFO ready signal when it is full,  so the XDMA core waits for FIFO to get read. but obviously somthing goes wrong.


can anyone shed some light on the subject?



0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎08-06-2008

Re: XDMA PCIe core , streaming file H2C to fifo hangs on large files


Could you please do the following to narrow down the issue?

1. Check if tready at the user logic is asserted or not.

2. Check the status signals of the XDMA IP.

3. Review dmesg log by enabling debug messages.

You can find references to all above in the following document:


Also, if you are using an older version of Vivado, do check with the latest version 2018.3.


0 Kudos