Low cost, high speed interconnect between FPGA and PC - Page 1
Forum section: electronics / general

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 15, 2012, 06:26:53 am
content: Is there a cheap way to get a high speed interconnect (as in more than USB2 or Ethernet) between a Digilent Atlys FPGA board and a Core i7 desktop PC? (If it matters, the PC runs Linux.) Going from the PC to the FPGA seems simple enough with the use of HDMI but what about the reverse? Would it be possible to use a USB 3 to SATA converter and then have the FPGA operate as a "SCSI generic device"?Ideally, I would want nearly 3Gbps (the maximum data rate coming from the ADC) of usable bandwidth (meaning PCIe?), but I can make do with less. Also, whatever solution is proposed must allow the FPGA to be reprogrammed without having to reboot the PC in order to use it afterwards.

author: SeanB
author_rank: Super Contributor
timestamp: December 15, 2012, 07:16:56 am
content: 10 Gigabit ethernet? Seems like it will have to be a PCI card using a 16x controller and slot to get the data rate.

author: T4P
author_rank: Super Contributor
timestamp: December 15, 2012, 08:27:12 am
content: 3 gigabit per sec OR 3 gigabyte per sec?3 gigabit per sec is doable on Sata gen 2 probably but SATA gen 3 is a better bet

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 15, 2012, 10:02:19 am
content: Sata may be one option - also maybe multiple GigE interfaces in parallel, sending raw packets not TCPIPOr multiple SATA interfaces?QuoteThat's probably more down to OS limitations than hardware.You may still need a sizeable RAM buffer at the FPGA side to deal with any latencies at the PC end.

author: HardBoot
author_rank: Regular Contributor
timestamp: December 23, 2012, 06:09:46 pm
content: There's DVI/HDMI transceiver chips which can push 6Gbit, SATA would be easiest since the computer already has it so no interface card needed, only challenge is finding a suitable chip for the FPGA.

author: joelby
author_rank: Frequent Contributor
timestamp: December 24, 2012, 12:20:42 am
content: For high speed SATA, you'll probably want to use GTP transceivers, and if you have those, you might as well use PCIe. I'd probably recommend getting something like an SP605 (supports x1 Gen1 - 250 MB/s) or ML605 (x8 Gen 1, but a lot more expensive!). You can use partial reconfiguration to avoid rebooting the PC between bitstream changes, though this isn't well supported on the Spartan-6.What are you planning to do with the 3 Gbps of data? I did something similar using UDP over gigabit Ethernet at about 700 Mbps and my PC struggled to keep up with that.USB 3 might be another option if you can find a PHY that works well with the Spartan-6 SelectIO.

author: ptricks
author_rank: Frequent Contributor
timestamp: December 25, 2012, 01:20:46 pm
content: There is the new protocol and connectors from Intel , called Thunderbolt. Not sure what is currently available right now in the FPGA area for implementation, but it is , according to intel, the standard for all future connections for video, data, peripheral, networking, basically everything on one connector.https://thunderbolttechnology.net/http://www.altera.com/corporate/about_us/history/optical/abt-optical-interconnects.htmlIf you want to do PCIe :http://www.altera.com/support/refdesigns/ip/interface/ref-pciexpress-ddr3-sdram.htmlAnother option is IDE, make it appear as a drive to the pc. You can get 100MB/sec rates or lower and the interface is simple.

author: nctnico
author_rank: Super Contributor
timestamp: December 25, 2012, 04:00:54 pm
content: I like the IDE (PATA) idea. You can convert to either SATA or USB with a dirt cheap adapter while the FPGA shouldn't have any trouble pumping a lot of data into it at moderate clock speeds (50 to 100MHz).