FIFO to Design Empty

Comments and questions related to the "Down to the TLP" pages

FIFO to Design Empty

Postby Guest »

I have used the Xillybus with a 32-to-16 FIFO to stream data from the PC to my design. By placing an ILA at the output of the FIFO and capturing the data and empty signal, I am finding that the FIFO is empty about half the time. I am only running my design at 10MHz which seem like it should almost never go empty given the speed of the PCIe? Any suggestions?

Gabriel
Guest
 

Re: FIFO to Design Empty

Postby support »

Hello,

The most likely explanation is that you're not pushing data fast enough from the host. You may want to check the process' CPU consumption (with "top" in Linux).

This happens when the data buffer that is allocated and used in the user program is too small, so write() is called too often. Each write() is a system call with its processing overhead, and this wastes CPU as the data rate increases.

The sample programs given by Xillybus use a small buffer in order to skip the malloc() part, but for a serious application, they should be something like 128kB - 512kB.

Regards,
Eli
support
 
Posts: 802
Joined:


Return to General PCIe

cron