Hello again, I took a break on this project for a while but have begun again and believe I am almost done.
To recap: The goal of the project was to make a 3 Gb/s function generator by reading a binary file, transmitting that file over PCIe to my ML605 board, and then transmitting that bit pattern out over the high-speed GTX transceivers. I have successfully set up the GTX transceivers and made my custom IP core, and when using the example 'streamwrite.c' file in the windowspack, I can see the ASCII values of the keys I press output over the GTX transceiver. This is great! Now I just need to have the input be the file.
Currently I am wanting to read in one 3 Gb file, and just have it repeat over and over at the output. You had previously suggested just dumping that file directly to RAM and then writing it to the FPGA.
When reading the host programming guide it says
Precautions should however be taken to avoid a shortage of kernel RAM. Xillybus’
IP Core Factory’s automatic memory allocation (“autoset internals”) algorithm is de-
signed not to consume more than 50% of the relevant memory pool, i.e. 512 MB,
based upon the assumption that a modern PC has more than 1 GB of RAM installed.
It’s probably safe to go as high as 75% as well, which can be done by setting the buffer sizes manually
So, when creating my custom IP core I chose the 'autoset internals' option, so the DMA buffer size is chosen automatically right? When I go into control panel and right click / properties on the Xillybus generic FPGA item, it says that my Memory Range is 0x0000 0000 F710 0000 to 0x0000 0000 F710 007F. Does that mean I only have 0x7F of DMA buffer space allocated? I was planning on just writing to that address in my C code... but this doesn't seem right.
If I want to read this large file into the RAM space that xillybus has allocated for it.... do I just declare a large char [] array or whatever as normal, write the file into that, and then use the _write function to my //./xillybus_ device and , and xillybus handles everything else internally?
Thank you!