Transferring data from FPGA to PC (new to FPGAs)
The USB port can be used to communicate with a design running on the FPGA, as well as for programming it. The Digilent Adept software can be used to interact with a design which implements this protocol; it's also possible to use the Digilent libraries to write your own software which uses this protocol. (I've also written a Perl module, Device::Digilent, if you'd prefer that to C.)

Information on the protocol is available at:

https://www.digilentinc.com/Data/Products/ADEPT/DpimRef%20programmers%20manual.pdf

In short, though: there is a parallel bus between the USB interface chip and FPGA consisting of:


An 8-bit bidirectional bus, used for both addresses and data.
Address and data strobes, and a write flag, all signalled from the host
A "wait" signal used by the FPGA to indicate when it has serviced a read/write


The protocol used treats the FPGA as having 256 byte-wide "registers", each of which can be read or written by the host at any time. The order of events for a read is:


Host asserts the address strobe with the write flag on, and drives the data bus with the index of the register it will be writing.
Host asserts the data strobe with the write flag off, and the FPGA drives the data bus with the value of the register.


A write works similarly, except the second transfer has the write flag on, and the host drives the data bus with the value to be written.