Spartan-3E USB for I/O?

I am new to FPGA and I can't find any info on this subject anywhere. Can the USB on the Spartan-3E be used for I/O at run-time... or is it just for downloading configs?

If not, I would appreciate any suggestions for a similar device that can use the USB. The Opal-Kelly XEM3001 seems like a good candidate, but may be lacking in other things I may need.

Thanks in advance.

-Bob F.

Reply to
Bob
Loading thread data ...

There is a project mentioned on this newsgroup that replaced the CPLD code with something else, so an open source driver could download bitfiles to the spartan-3e board, bypassing Impact completely. I use it myself.

I think the connections are USB port -> Cypress 8051 based controller -> CPLD -> FPGA The Cypress is 100% programmable, you can download code through the usb port. The CPLD is programmable. So I believe you can do what you want in theory, but it will take some work.

formatting link

Start there.

-Dave

--
David Ashley                http://www.xdr.com/dash
Embedded linux, device drivers, system architecture
Reply to
David Ashley

I've been wondering about using the USB port myself. Looking at the PCB, there's more connections between the FX2 and the CPLD than are used by the inisyn programmer.

As mentioned above, you can put anything you want in the FX2. You may have to hotwire the driver to make it go, but it can be done.

In that vein, has anyone figured out page 3 of the schematics?

Oh, and is anyone interested in (or doing) a prototype card that would go on the expansion connector?

Bob wrote:

Reply to
ghelbig

Yes you can use other applications/code (ie libusb on linux) to download new config files. When I have looked at the board and ohm'd out different signals between the FX2, CPLD, FPGA, etc there are few connections between the FX2 and the FPGA.

Mainly the JTAG signals (TDO, TDI, TMS, TCLK) are connected. To do any decent I/O transfer the FIFO data signals (slave FIFO or GPIF) would have to be wired to the CPLD or FPGA, which I believe they are not. Best I can tell it is only for simplified configuration, ie don't need an additional programming cable.

If you google "USB FPGA" you will find many USB FPGA boards that provide USB I/O connectivity that you are looking for.

Reply to
chris.felton

snipped-for-privacy@gmail.com schrieb:

JTAG is sufficient, it always is on all FPGAs that have internal JTAG TAP access primitives

FX2 can use the JTAG pins for synced serial comm with the cores in the FPGA. peak transfer speed should be possible at few megabit/sec when the transfer loop is fully optimized in the FX2 code

Antti

Reply to
Antti

True, but...

If one uses the nifty GPIF features of the FX2, transfer rates of up to

98 MB/s are possible. (Yup, faster than USB2 will do.)

GH

Reply to
ghelbig

sure but as those pins are not connected on s3e starterkit so it cant be used. for boards that support GPIF transfers (like cesys s3e-500 board) the GPIF is the way to go of course. I got pretty damn high sustained bandwith results with the cesys board, at least 25Mbyte/s (maybe more dont recall so precise) continous sustained transfer rate with windows host

Antti

Reply to
Antti Lukats

I read with interest the 2 messages above, as they raise an issue I've been thinking about recently. I'm considering buying a Spartan 3E Starter Kit, simply because it seems to offer a good balance between FPGA size, DRAM size, other peripherals and bundled development software, and crucially, cost. However, I am interested in testing basic video processing applications, and I'm concerned that the one thing this board doesn't have is any kind of facility for (relatively) high-bandwidth data I/O ? The USB port would've been ideal, as I'd like to be able to use an effective bandwidth of about 40 Mbit/s, but it seems from this thread that it would take a fair amount of hacking to convert the USB port from its nominal JTAG role into something that would offer only minimal bandwidth ? The only other alternative I see is the Ethernet port, but that would presumably require at least an Ethernet IP core programmed onto the FPGA. I am aware that such things can be had from a number of sources, but I have little idea of the ease-of-use or effectiveness of this solution.

So in summary, I'm just interested in any comments on the above, or in any other suggestions for getting decent I/O bandwidth out of this board. To clarify, I should add that I'm most interested in communications between this board and a 'host' PC, rather than any other hardware.

Thanks, Andy M.

Reply to
Andrew MacLennan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.