I have created an FPGA design that needs pins to give it inputs and outputs. Naturally I turned to the Arduino since it is an easy microcontroller to program for. My issue is if it is possible to stream data from a file (64 bits in size for each input) to get a 64 bit output and write it back to a file on my computer. My fpga design can break down the inputs and outputs into smaller numbers of bits to account for the number of pins on the arduino board. The total file size of the data is 100 Mb.
Is there a way to easily stream the the data back and forth from a text file on my computer to the arduino?
You FPGA will send data to an Arduino and the Arduino will send it to a computer?
100Mb is 800 Megabits. They can't be stored in the controller and need to be sent to the computer. That doubles the communication time.
How long time do You allow such a trancaction to take? Remember that some kind of handshaking, maybe checksum might be needed. That adds up time, overhead....
The data (64 bits at a time) will go from the computer, to the arduino to the fpga and then from the fpga back to the arduino and back to the computer, now processed. Timing is not an issue as much of proof of concept. The main idea is showing that the FPGA design works.
Okey. Handling 64 bits is doable but if the total amount of data is 800 Megabits...?
You need some kind of protocol. The computer needs some kind of handshaking with the Arduino. You need to find something suitable there.
In a safe environmet, no electronical noice, short cables etc., it could work.
Using SerialTransfer.h, you can transfer large files reliably. On the PC side, you can use the pip-installable Python library pySerialTransfer to receive the data and vice versa.