8
\$\begingroup\$

There is no shortage of micro-controllers with built in USB interfaces, but there do not appear to be FPGAs with built in USB interfaces.

Are there technical reasons for this, or is it just that the companies don't perceive a profitable market for USB FPGAs?

Personally, I can think of many of projects for which a low cost USB FPGA would be quite useful.

\$\endgroup\$
8
  • 3
    \$\begingroup\$ There are, just like you have FPGAs with Ethernet, DDR ionterface, ARM cores etc. \$\endgroup\$
    – Oldfart
    Commented May 15, 2018 at 11:42
  • 5
    \$\begingroup\$ I'm voting to close this question as off-topic because 1/ It is a disguised rant. 2/ It is about commercial equipment . 3/ No prior research. \$\endgroup\$
    – Oldfart
    Commented May 15, 2018 at 11:44
  • 3
    \$\begingroup\$ @Oldfart, I'm not sure what you mean about no prior research. Do you want me to include a list of unsuccessful google searches? As you yourself mentioned, FPGAs include many different hard coded blocks. However, there are no USB interfaces. There could be a technical reason, there could be an economic reason, it could be ignorance to a market opportunity. How is asking an honest question a rant? \$\endgroup\$
    – crj11
    Commented May 15, 2018 at 11:56
  • 10
    \$\begingroup\$ A general purpose USB stack requires significant software (And is far more easily done in software then as a FPGA style state machine), so you should be looking for things like the Zynq where there is a hard IP CPU already, many of these have an interface for a USB PHY. The PHY is generally external for much the same reason very few people put ethernet PHYs on die even when building processors with built in ethernet MACs (Noise sensitivity, need for really robust ESD measures, analogue stuff). \$\endgroup\$
    – Dan Mills
    Commented May 15, 2018 at 11:58
  • 2
    \$\begingroup\$ @oldfart, a rant is to "speak/shout at length in an angry, impassioned way". The OP made a perfectly calm and reasoned point. ('rant' is very overused and misused on this site.) Indeed, the vast majority of FPGAs sold do not have USB interfaces, unlike for microcontrollers. There is no demonstration of a clear lack of research - the OP asked why not, not which ones do. Please can we stick to the site's agenda and help. \$\endgroup\$
    – TonyM
    Commented May 16, 2018 at 14:31

2 Answers 2

10
\$\begingroup\$

A general purpose USB interface really needs software in play, it is HARD to do as a FPGA style FSM.

USB physical layer is also 5V, and modern processes are pushing the upper limit even at 3.3V, there are basically no 5V capable FPGA parts using modern processes.

Further, particularly for relatively high speed IO over cable interfaces (Like say 480Mb/s) the cable equaliser and driver are essentially in some sense analogue, so you need a process node that supports 5V analogue design AND 1V high density in something like 28nm or such for the core.

\$\endgroup\$
4
  • 4
    \$\begingroup\$ Mostly agreed, but the USB physical layer is not usually 5 V. The USB spec requires a minimum V_oh of 2.8 V, so most transceivers run off of 3.3 V. (Of course, Vbus is typically 5 V, but that's separate.) \$\endgroup\$ Commented May 15, 2018 at 20:02
  • \$\begingroup\$ @AbeKarplus, USB requires 5V tolerance on interface wires. True, the mandatory requirements to withstand a continuous short to 5.25 V was lifted in 2008, but it still "is recommended". If you want a robust computing platform that doesn't die on every device attachment, you better have robust USB interface silicon. \$\endgroup\$ Commented May 15, 2018 at 23:15
  • 2
    \$\begingroup\$ @AliChen Most transceivers don't bother with 5 V tolerance, though. They should, sure, but it's rare. \$\endgroup\$ Commented May 16, 2018 at 1:15
  • 1
    \$\begingroup\$ Lattice recently introduced an FPGA with a built in USB interface. See latticesemi.com/about/newsroom/pressreleases/2023/… \$\endgroup\$
    – crj11
    Commented Nov 25, 2023 at 18:18
6
\$\begingroup\$

First of all, there ARE FPGAs with USB interfaces, so your premise is flawed. However, they tend to be high-end SoC devices where the tight integration is worth the premium cost.

For low-cost, low-end systems, it usually makes more sense to marry a USB microcontroller with a separate low-end FPGA or CPLD. Such systems tend to have a large software component anyway, so using dedicated hardware for both the CPU and the USB is more efficient.

The USB PHY interface is not integrated into FPGAs because modern FPGA processes can handle 3.3V at most (sometimes with limited 5.0V I/O compatibility), but USB PHY requires full 5.0V input and output.

\$\endgroup\$
15
  • 1
    \$\begingroup\$ Can you give me a link to an FPGA with an integrated USB interface? \$\endgroup\$
    – crj11
    Commented May 15, 2018 at 13:53
  • 3
    \$\begingroup\$ Search for Xilinx Zynq or Intel Arria. \$\endgroup\$
    – Dave Tweed
    Commented May 15, 2018 at 13:56
  • 1
    \$\begingroup\$ That, plus the fact that it makes no sense to put just a phy on a low-end FPGA. You still need a CPU to implement the other layers of the USB protocol stack. \$\endgroup\$
    – Dave Tweed
    Commented May 15, 2018 at 14:20
  • 4
    \$\begingroup\$ An FTDI chip has a CPU in it. \$\endgroup\$
    – Dave Tweed
    Commented May 15, 2018 at 14:35
  • 3
    \$\begingroup\$ @crj11 FTDI chips are generally very much fixed function (And are probably really small microcontrollers under the hood). A general purpose USB interface really needs software in play, it is HARD to do as a FPGA style FSM. USB physical layer is also 5V, and modern processes are pushing the upper limit even at 3.3V, there are basically no 5V capable FPGA parts using modern processes. I also don't recall many micros with on board PHYs capable of any real speed, IIRC it all seems to be 12Mb/s, not 480Mb, there is a reason for that. \$\endgroup\$
    – Dan Mills
    Commented May 15, 2018 at 14:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.