Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've been using an embedded system based on a combination of FPGA and DSP for about ten years now. If I could go back in time and start over, I would ditch the FPGA. The reason I say that is because of the time costs associated with realizing any benefit of an FPGA design.

1) FPGA based design is "future proof", we can use the same hardware to interface with new sensors in the future!

Reality: we could spin a new rev of the circuit board faster than we can develop and debug the new interface in the FPGA.

2) everything can done in parallel!

Reality: it's faster (development time) to put a soft core CPU on the FPGA and write linear c code to get the job done. When that solution runs fast enough, why spend more time optimizing?

Bad FPGA developers are hard to find, good FPGA developers are nearly impossible to find.

FPGAs are super cool. For certain niche applications they can't be beat. But most of the time, the development cost is just not worth it.



Sounds like the program I used to work on, though we were doing FPGA cards feeding into a small MPI cluster. The only real reason I can think of to use FPGAs in production is that you need ASIC-like functionality, but the total build out isn't worth the cost of taping out an ASIC.

On my first program the hardware had several FPGAs and CPLDs for that reason. That design was finalized in 1994, though. Today those chips could be replaced by microcontrollers. As microcontrollers and soft-core processors get more capable, the applications for FPGAs will decrease.


Any time you are dealing with massive amounts of data in a fairly restricted environment (something out in the field) FPGAs are about your only solution. Image processing is really one of the largest and best uses of FPGAs that I have seen.

I think they are very overblown for many things though. I'm sure eventually when semiconductor technology slows down (Moore's Law) that FPGAs will start becoming worthwhile for most things simply due to their efficiency. We are still a long way from that though!


Do you have any examples of FGPAs used with image processing? I've done a little, and I've seen some academic examples. But I haven't seen anything in production.


The acquisition systems in almost all medical imaging, along with their noise reduction and such are built with FPGAs. An MRI machine costs several million dollars or more, and GE sells a handful each year, so spending $10,000 on the FPGA that it's built around makes more sense than millions on spinning an ASIC that will be out-of-date the day the machine is put in the field. Not to mention the need to maintain these machines for decades, given the replacement cost. Nothing else will do, when an applications processor is too slow to do data acquisition and an ASIC isn't cost effective.


Military cameras, high frame rate cameras, etc. Military cameras in particular since they used uncompressed data (think tens of gbits/s to deal with) and tend to be in mobile environments. Lots of image stabilization and other such things going on.

These types of cameras also tend to be low volume and high cost like wcunning mentioned.


Take a look at: https://www.blackmagicdesign.com/

Almost all their products are FPGA based designs based on a similar core set of blocks which are then leveraged across many products. This reduces both development and fpga cost for them. Very smart approach.


I worked in medical diagnostic device design for a while, and there we needed FPGAs because literally nothing else could accept data as fast as we needed. I'm talking GHz speed ADC reading, with special purpose transceivers that are built on-die with FPGAs. The fact that we can both poll data that fast and do any processing of it at all is astonishing. That's where FPGAs are going today -- data acquisition systems for anything fancier than accelerometers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: