FPGA to XMOS migration feasibility

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
pej02
Member
Posts: 11
Joined: Thu Jun 09, 2011 9:04 pm

FPGA to XMOS migration feasibility

Post by pej02 »

I'm currently working on a project which uses a 200 kgate Spartan 3A attached to a 480 Mbps FTDI 2232 USB interface chip (runs in 245 sync mode), 32 Mbyte Micron DDR2 SDRAM (8 bit wide data) and a number of high-speed bipolar line drivers made by Maxim. Essentially, it works as a frame buffer/display driver and the clock into the 'main' state machine is 100 MHz with the SDRAM processes running at 133 MHz.

I am curious to know whether I could replace the FPGA and FTDI parts with an XMOS device and achieve the same functionality? I've spotted that there is code for an SDRAM interface (perhaps not DDR2 though?) on the XMOS pages. I've not seen any code for a CDC USB device though.


User avatar
rp181
Respected Member
Posts: 395
Joined: Tue May 18, 2010 12:25 am

Post by rp181 »

There are USB libraries:
http://www.xmos.com/applications/software-components

The most used USB PHY on XMOS is the USB3318, for example it is on the XTAG.
User avatar
segher
XCore Expert
Posts: 844
Joined: Sun Jul 11, 2010 1:31 am

Post by segher »

pej02 wrote:I'm currently working on a project which uses a 200 kgate Spartan 3A attached to a 480 Mbps FTDI 2232 USB interface chip (runs in 245 sync mode),
The FT2232H can do at most 30MB/s, it's easy to do that on an xcore as well.
32 Mbyte Micron DDR2 SDRAM (8 bit wide data)
with the SDRAM processes running at 133 MHz.
You cannot run xcore I/O pins at that speed. You also normally need 1.8V for DDR2,
and an xcore cannot do that.

The good news is that DDR2 is at most as fast as plain SDRAM at the same data bus speed,
usually slower. And 16bit data bus is common, so you can get about the same bandwidth,
and about the same latency (probably slightly better than the DDR2).
I am curious to know whether I could replace the FPGA and FTDI parts with an XMOS device and achieve the same functionality?
It depends what that functionality actually _is_. You didn't tell :-)
pej02
Member
Posts: 11
Joined: Thu Jun 09, 2011 9:04 pm

Post by pej02 »

rp181 wrote:There are USB libraries:
http://www.xmos.com/applications/software-components

The most used USB PHY on XMOS is the USB3318, for example it is on the XTAG.
Thanks. There is an example for a HID device on this link in the included zip file. Do you know if there is any code for a CDC (communication device class) aswell?
pej02
Member
Posts: 11
Joined: Thu Jun 09, 2011 9:04 pm

Post by pej02 »

segher wrote:The FT2232H can do at most 30MB/s, it's easy to do that on an xcore as well.
Is there any XC code available which controls the FT2232H device?
segher wrote:The good news is that DDR2 is at most as fast as plain SDRAM at the same data bus speed,
usually slower. And 16bit data bus is common, so you can get about the same bandwidth,
and about the same latency (probably slightly better than the DDR2).),
So it is just a case of re-using the SDRAM example code and using the Micron part in that example?
User avatar
leon_heller
XCore Expert
Posts: 546
Joined: Thu Dec 10, 2009 10:41 pm
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller »

There isn't any point in using an FT2232H, high-speed USB can be implemented on an XMOS chip.
pej02
Member
Posts: 11
Joined: Thu Jun 09, 2011 9:04 pm

Post by pej02 »

leon_heller wrote:There isn't any point in using an FT2232H, high-speed USB can be implemented on an XMOS chip.
How?
User avatar
leon_heller
XCore Expert
Posts: 546
Joined: Thu Dec 10, 2009 10:41 pm
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller »

XMOS has code for it. You need a PHY chip, of course.
pej02
Member
Posts: 11
Joined: Thu Jun 09, 2011 9:04 pm

Post by pej02 »

leon_heller wrote:XMOS has code for it. You need a PHY chip, of course.
No problem with the PHY. However, as far as I can make out from the code and documentation in here: https://www.xmos.com/applications/usb/u ... le?ver=all there is no code which implements a CDC. The XUD library code would enable someone highly skilled at writing USB stacks to implement a CDC but I'm not one of those. Perhaps this is why XMOS employs an FT2232D on its XC-1A G4-based development board?
User avatar
leon_heller
XCore Expert
Posts: 546
Joined: Thu Dec 10, 2009 10:41 pm
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller »

Isn't the XMOS high-performance audio over USB an example of a USB CDC?

The original XTAG used an FTDI chip, also. The current XTAG-2 uses a XS1-L1 for the USB interface; if the XC-1A was redesigned it would probably use one, also.
Last edited by leon_heller on Tue Jun 14, 2011 12:36 pm, edited 1 time in total.