In this article, we’ll be focusing on why FPGAs hit the sweet spot for processing power. Before we dive too deeply into this conversation, let’s address the “elephant in the room” – everything exists for a reason, even ASICs (Application Specific
Without any further ado, let’s get to the list:
1) FPGAs are Reconfigurable – The configurability of your average FPGA leaves ASICs in the dust. In addition to the hard/soft IP cores (an example: Arm Core on our Arty Z7) that are configured for a specific application, the real value lies in being able to reconfigure (and reconfigure again) after installation – something that ASICs just can’t do.
2) FPGAs Work in Parallel – One of the benefits of FPGAs that make them such a good tool for working with measurement systems and other edge computing applications that require the processing of a large amount of data like embedded vision is that they are able to process in parallel. CPUs/GPUs work sequentially, processing one piece at a time, but with a well-configured FPGA you’ll be able to simultaneously intake and process the next batch of information before the first batch is done, giving a low latency.
3) FPGAS Perform Time-Critical Processing – With the aforementioned low latency, engineers and developers are able to use FPGAs for applications that require very time-critical calculations; like software-defined radio, medical devices, and mil-aero systems. When you don’t have to wait as long on the processor to complete a calculation, the output can be much more accurate. ASICs have even less latency, but again, they are only for a single specific application. For prototyping and design, FPGA is the more forgiving choice.
4) FPGAs Have Optimal Performance per Watt – When compared with a CPU or GPU, you will be getting higher performance per watt (though it is closer when using floating point arithmetic) with an FPGA. This low power consumption can be nearly 3 to 4 times less than that of a GPU. The operating cost of an ASIC is far and away the best, but the high initial cost (sometimes in the millions) does a lot to offset that.
5) No OS Overhead – If the latency and computational power of a CPU/GPU would be comparable to an FPGA, the inside track is lost by the necessity of running an operating
system. The OS brings down the processing cost efficiency, as resources need to be dedicated to it, increasing the power used and decreasing the compute power.
6) FPGAs are Essentially Blank Canvases – While ASICs need to have their functionality before
So, yes, there are applications that might be better suited for an ASIC, a CPU, or a GPU, but for engineers that are fluent in HDLs, the FPGA hits the mark for price, processing power, and configurability. And for those that are more versed in languages like C, Java, and Python? Keep an eye on our new Eclypse Z7, which has high level API that will allow for an easier interaction between FPGAs and software languages (currently C and C++ are supported, with more coming later).