USB communication
Fig.1 shows the schematic. Now, we use a new chip from FTDI: the FT2232C that has the particularity to offer two independent channels, each with several bits. The first one (channel A) will serve as a JTAG programmer to configure the FPGA. The second one (channel B) will serve as a fast serial communication pipe (about 5MS/s) to drive and retrieve datas from the FPGA. To see all the other possibilities that the FT2232C offer, check the datasheet on the FTDI website. In order to isolate the DSO from the PC, U6 and U7 are used as galvanic isolators (with very low consumption) and take place between the USB chip and the remaining parts of the DSO.
Figure 1