--- Quote Start ---
I'm doing some heavy algorithm stuff in a Stratix IV eval kit. I need to download large amounts of test data to external memory (SDRAM, SRAM, etc.) from windows, process the data in the FPGA, retrieve the results and dump it to a text file that I can read with MATLAB. Is anyone familiar with an convenient ways of getting data into/out of FPGAs? There is Ethernet, JTAG (both usb and header based), PCIe edge connector, HSMC connector on board. I don't have any software programming support, so it would have to be something a firmware guy could easily figure out.
--- Quote End ---
Assuming you are referring to either the "Altera Stratix IV GX Development Kit" or the "Terasic DE4", both boards are PCIe boards, with ethernet, JTAG, HSMC, etc.
You can use JTAG as described in:
http://www.alterawiki.com/wiki/using_the_usb-blaster_as_an_sopc/qsys_avalon-mm_master_tutorial You can use PCIe as described in:
http://www.alteraforum.com/forum/showthread.php?t=35678 The zip file includes a program called pci_debug, which allows you to access the PCI board from Linux. This uses CPU reads and writes, so the performance is not that great. For high-performance, you need to use a DMA controller on the Stratix board, and then write a device driver to utilize it.
You could consider using the Ethernet interface. The code from your development PC is pretty simple - the JTAG tutorial has a client and server written in Tcl, and a client written in C-code. You'd just have to instantiate a NIOS II processor on the Stratix IV board, and write NIOS II code for transferring data to/from memory.
Cheers,
Dave