System console contains commands to read/write specific address locations inside the design. This is good to read/write small amount of data. However, what if the user wants to write several MB of data and read the result from the FPGA processing as well? e.g it could be image or video data that is being input into the FPGA and then user wants to fetch and store the results into the computer to check it.
Is there a dedicated way to read/write whole file worth of data to/from FPGA using system console? Ideally we would use multi threaded application where one thread writes and the other thread reads. Atleast this is what I think. Please let me know your thoughts.
System Console isn't really designed for what you're proposing. It's meant for reading and writing particular address locations and monitoring locations for periodic reading. Remember, in most cases you're using this over JTAG at most 24 MHz.
You can monitor things faster using tools like Signal Tap or Signal Probe. For writing, remember you can initialize a RAM and have your design access that ROM during operation.
I had assumed that the system console could stream data into the FPGA and this will solve the problem. The data is going to be a few MB at most, the FPGA might have to store it in an external RAM at the end.