Hello,
I'll take them one by one.
stdoubleu wrote:I wonder what is going to happen if I contentiously send data to the FPGA, but the FPGA is not consuming the xillybus fifo?
At some point the fifo will be filled and on host side the reserved memory will be full as well. What happens if I try to write more then?
Will the call be stalled until the fifo gets some space?
Exactly. On the host, the call to write() will block, which means that the process will sleep until there is buffering space to write the call's content to. This is exactly the way a TCP/IP link behaves if one side writes data and the other side doesn't consume it.
Note that you can control the host's DMA buffer size in the IP core factory, so there can be several hundreds of MBytes of data in the buffer before it blocks (if that's what you chose to have).
stdoubleu wrote:Another question: is there a limitation on the amount of streams?
In theory, not. The practical limit is probably filling the FPGA, or possibly not meeting timing constraints because of the excessive logic. The core has been tested with 60 streams total, which is probably more than any real-life user requires. So it's practically unlimited.
stdoubleu wrote:If I understood correctly the streams do not effect each others throughput as long as they dont send in the same timeframe.
Is that right, or is the maximum throughput statically divided? For my application I would like to use 8 asynchronous streams.
Xillybus is designed to attempt dividing the bandwidth as clever as possible. In other words, as long as the sum of bandwidth requirements is below the total limit (which is published for each platform on the download page), no bandwidth limitation will be felt on either. If the total required bandwidth exceeds the limit, it's divided more or less evenly among the streams (with the exception of streams that require less than their fair share, which will get as much as needed, and leave the rest for the other streams).
So as long as the total
momentary bandwidth requirement is below the limit, all streams flow with no limitations.
Regards,
Eli