by support »
Hello,
The maximal data rate depends on the targeted FPGA, and are listed on this page:
http://xillybus.com/pcie-downloadIf you don't reach these speeds, please check if it's not the software that slows you down. The process that writes to the FIFO should be well below 100% CPU usage. It's a bit tricky to check this today, with multicore processors, and e.g. the "top" utility showing 100% processor usage if the process takes up all processor power of all cores on some distributions, and 100% if it takes a single core's processing power on other distributions.
If it's not a software issue, I suggest creating a custom IP core at the IP Core Factory, with the default stream names, but explicitly requiring the data rates you need.
A side note about software: I don't know if the ofstream class adds a software-level buffer. If it does, you might write data, and not have it written to the FIFO until the ofstream's buffer is full, or you close the file, or you flush the file object. Again, I don't know about this specific class, but I know such buffering exists if you use fwrite() instead of write() in plain C. This is not an issue to worry about now, as you're surely filling the buffers sooner or later, but you may encounter problems in the future.
Regards,
Eli
Hello,
The maximal data rate depends on the targeted FPGA, and are listed on this page:
http://xillybus.com/pcie-download
If you don't reach these speeds, please check if it's not the software that slows you down. The process that writes to the FIFO should be well below 100% CPU usage. It's a bit tricky to check this today, with multicore processors, and e.g. the "top" utility showing 100% processor usage if the process takes up all processor power of all cores on some distributions, and 100% if it takes a single core's processing power on other distributions.
If it's not a software issue, I suggest creating a custom IP core at the IP Core Factory, with the default stream names, but explicitly requiring the data rates you need.
A side note about software: I don't know if the ofstream class adds a software-level buffer. If it does, you might write data, and not have it written to the FIFO until the ofstream's buffer is full, or you close the file, or you flush the file object. Again, I don't know about this specific class, but I know such buffering exists if you use fwrite() instead of write() in plain C. This is not an issue to worry about now, as you're surely filling the buffers sooner or later, but you may encounter problems in the future.
Regards,
Eli