Extremely Large Real TIme Transfers


#1

I have an application wheremMy FPGA will be Generating Data which needs to be transferred to the PC. The Data is a real-time stream and is so large (512MB) that it all can’t be buffered and sent. What I want is a simple USB interface where my state machine can write data (32-bit) to the PC on a sample by sample basis (1Mega Sample / Sec) rate. It would be desireable on the PC end where I to have to do little driver development. I just want to read the stream data and dump to a file (c++). I can write the C code but have no experience with USB interface stuff. Ideally what I need is something like the FTDI 245 Chip, just faster! The USB interface just looks like a FIFO and I just read and write data from the FIFO

My current FPGA code can fit in the Spartan 3 device, I just want to see if my application is possible with your modules. If needed, small buffers can be created from the data stream (1k chunks for example). I just need to be able to stream the data in real time. I also need a simple mechanism for writing to the FPGA to inidicate the start of a stream.

Is this application possible with your module?

Thanks in Advance,
Eli


#2

Hi Eli-

It sounds as though your application is well within the realm of what is possible with our modules.

To best suit the communication methods we make available with our API, it would be best to “chunkify” your data into blocks as you suggest. The larger blocks you can break up, the more efficient the communication will be.

You could quite easily use our “Triggers” to denote the beginning of a block of data and use the “Pipes” to transfer the data out.

The DES sample would be a good starting point. While it is not a streaming sample, it uses the communication methods you would want to use in your design.