This article will define what is FPGA and what is ASIC and we’ll attempt to elucidate the questions on FPGAs vs ASICs, we will cover the similarities and differences between them.
We will outline each one’s advantages and disadvantages so that you can make an informed decision on which one to use depending on your application needs.
FPGA stands for Field Programmable Gate Array. It is an integrated circuit which can be “field” programmed to work as per the intended design. It means it can work as a microprocessor, or as an encryption unit, or graphics card, or even all these three at once.
As implied by the name itself, the FPGA is field programmable. So, an FPGA working as a microprocessor can be reprogrammed to function as the graphics card in the field, as opposed to in the semiconductor foundries. The designs running on FPGAs are generally created using hardware description languages such as VHDL and Verilog.
FPGA is made up of thousands of Configurable Logic Blocks (CLBs) embedded in an ocean of programmable interconnects. The CLBs are primarily made of Look-Up Tables (LUTs), Multiplexers and Flip-Flops.
They can implement complex logic functions. Apart from CLBs, and routing interconnects, many FPGAs also contain dedicated hard-silicon blocks for various functions such as Block RAM, DSP Blocks, External Memory Controllers, PLLs, Multi-Gigabit Transceivers etc.
A recent trend is providing a hard-silicon processor core (such as ARM Cortex A9 in case of Xilinx Zynq) inside the same FPGA die itself so that the processor can take care of mundane, non-critical tasks whereas FPGA can take care of high-speed acceleration which cannot be done using processors. These dedicated hardware blocks are critical in competing with ASICs.
ASIC stands for Application Specific Integrated Circuit. As the name implies, ASICs are application specific. They are designed for one sole purpose and they function the same their whole operating life.
For example, the CPU inside your phone is an ASIC. It is meant to function as a CPU for its whole life. Its logic function cannot be changed to anything else because its digital circuitry is made up of permanently connected gates and flip-flops in silicon.
The logic function of ASIC is specified in a similar way as in the case of FPGAs, using hardware description languages such as Verilog or VHDL.
The difference in case of ASIC is that the resultant circuit is permanently drawn into silicon whereas in FPGAs the circuit is made by connecting a number of configurable blocks.
For a comparison, think of creating a castle using Lego blocks versus creating a castle using concrete. The former is analogous to FPGAs, whereas the latter is analogous to ASICs. You can reuse Lego blocks to create a different design, but the concrete castle is permanent.
As per Rajeev Jayaraman from Xilinx, the ASIC vs FPGA cost analysis graph looks like above.
The cost and unit values have been omitted from the chart since they differ with process technology used and with time. ASICs have very high Non-Recurring Engineering (NRE costs) up in millions, whereas the actual per die cost could be in cents.
In the case of FPGAs, there is no NRE cost. You pay for the actual FPGA IC, and generally, get free software for that FPGA (up to a limit). So, the total cost for ASICs starts very high owing to the NRE cost, but its slope is flatter.
That is, prototyping ASICs in small quantities is very costly, but in large volumes, the cost per volume becomes very less. In the case of FPGAs the IC cost is quite higher, so in large volumes, it becomes costly in comparison to ASICs.
Here is the breakdown of ASIC cost components:
Compared to the above list, the FPGA cost is only for the IC which can be bought off-the-shelf.
Are you a newcomer who wants to learn more about VLSI and hardware design? Then FPGAs and simulation software is most suitable for you. Are you designing your own product?
Ask yourself what is the target market, the expected price range, power budget, speed requirement etc for the product. Can it be done using FPGAs? If yes, then go ahead and prototype your idea. If not, you might not have any other way than to go with ASIC.
In the majority of cases, it should be possible to at least prototype and validate your idea using FPGAs. And by the time you are finished with the prototype, you would yourself get the idea whether you need to go with ASIC route or not.
Of course, if your design is totally breakthrough kind and extraordinary with highly specific requirements (in terms of cost, power, speed etc) then you have no option than to go with ASIC route. Otherwise, FPGAs can cater to the majority of use cases, especially when you need reconfigurable hardware.
So, there you go! We hope that you are now more enlightened about FPGAs vs ASICs and can make an informed decision on which one to go for depending on your application needs!
1. Rajeev Jayaraman, Xilinx Inc, 2001 https://www.doc.ic.ac.uk/~wl/teachlocal/arch/killasic.pdf