Concrete use cases of FPGA boards in large organizations (automotive, aviation etc.)

So what’s the typical volume that would justify an ASIC? Tens of thousands? Millions? More?

I’m no electrical engineer, but in 2014, an EE colleague didn’t believe me when I mentioned that people were using ASICs for bitcoin mining—he argued that they were too expensive and had too long a lead time for that to be true.

We googled it, and it was true even then. My friend didn’t fully appreciate how big bitcoin mining had become, but that might give you some context on the volumes needed for ASICs to be economically viable.

Rapid prototyping is an important and common use: FPGA prototyping - Wikipedia

(3) FPGAs are also used to reduce parts counts. You can combine a bunch of other functions into a single FPGA, which reduces costs and improves reliability (since there are fewer parts to break).

For example, let’s say you wanted to create a PCI interface with four old fashioned RS-232 com ports on it. You could do it with a PCI interface chip, four UARTs, and some level shifting circuitry. Or you could combine the PCI interface chip and all four UARTs into a single FPGA, for roughly the same cost as what the PCI interface chip alone would have cost.

As for (2b), there are an awful lot of examples that would fall under “other signal processing”, everything from a quick and dirty Fast Fourier Transform (FFT) for anything from processing RADAR returns to generating spectrum displays, to creating a voice over IP chip, to some sort of fancy flight computer processing for aircraft, to all sorts of things. Digital signal processing is a huge world of stuff.

Eh, it depends. I have seen folks use ASICs for relatively low volume production because they were forced by contract to make their interface “open source”, but still wanted to make it extremely difficult for anyone else to interface to them (here, you can look through this 4,000 page data sheet, or you can just buy one of our ASICs so that we get a profit even if you make the device).

More generally though, I’d say you definitely need to be up in the thousands of units before ASICs become cost effective.

There are other considerations as well, though. FPGAs are basically all digital gates. If you need to combine some sort of analog circuit functionality into a small package (a wifi adapter, for example), you can’t do the analog part on an FPGA, but you can mix analog and digital circuitry on an ASIC.

On the other hand, once you create an ASIC, you can’t easily patch it when your product is out in the field. Patching an FPGA is MUCH easier, so you might want to go with an FPGA just for that reason.

I currently work as an FPGA design engineer so I can add a little to the comments so far.

(1)This is certainly a use but I don’t think it’s in the majority of uses. There a many many more people using FPGAs directly than as prototype platforms for ASICs. Admittedly I don’t deal with ASIC design so it’s possible I just never see it based on my industry. But when looking for jobs there a far less referencing FPGA for ASIC prototyping.
(2) This is true for a microcontrollers as well so it doesn’t pose an advantage over microcontrollers.
(2a) FPGAs are almost always more expensive than microcontrollers. And as others have mentioned the support components are usually more expensive/numerous.
(2b) This is a little vague. It would all depend what you’re trying to do. FPGAs are generally more expensive and lower speed. Pushing speeds above 200MHz is pretty uncommon in FPGAs but is relatively common in microcontrollers.

The main advantage of FPGAs over microcontrollers is that FPGAs can do everything in parallel while with microcontrollers must execute each line of code in sequence. So say you want to compute the arctan of 12 32-bit values. And say these 12 values arrive every 100 cycles. By the end of the 100 cycles you need to be done with the computation. In a microcontroller each of these 32-bit values needs to be separately computed so to meet the timing you need to compute an arctan computation in 8 cycles(8 cycles * 12 values = 96 < 100). In an FPGA you can compute each 32-bit value at the same time with 12 separate arctan blocks. In this case each arctan block could take 100 cycles to compute and still be on time. That means it can be 12.5 times slower than the microcontroller. Then imagine your manager comes a long and says ‘I actually need 14 32-bit arctans’. The microcontroller just physically can’t do this. The FPGA just has to add 2 more arctan blocks.

That example is obviously simplistic and microcontrollers could have special blocks to handle these types of operations but the example is illustrative of where an FPGA might be used over a microcontroller.

Another advantage of FPGAs is they generally have higher user available pin counts than microcontrollers.

A personal project I did that took use of an FPGA was a 1 meter by 1 meter RGB led grid. This contained 900 RGB leds. To drive it I used an FPGA. Using a microcontroller would have been annoying as I would have to use a large one to get the required pin count. And the speed would have had to been pretty high to be able to achieve the required refresh rate. Here’s a couple videos of it working.
https://imgur.com/a/uUEhqmA
https://imgur.com/a/X24NfBN

Not that one - microprocessors are cheap, FPGAs are expensive.

There are theoretical security advantages. I have read of them used in satellites for this. Essentially, FPGAs can be designed to be immune to buffer overflow and other “ownage” hacks because they can’t run arbitrary code. Each block permanently (well, until the eeprom containing their initial instructions is changed) does only what it was programmed to do.

If you are serious about security you would cover the eeprom in epoxy and connect the write enable pin to ground on the board.

I would assume military missiles and drones use some sort of security like this.