FPGA Vs ASIC: Differences Between Them And Which One To Use?
For a person new to the field of VLSI and hardware design, it’s often one of the very first questions: What’s the difference between FPGA, ASIC and CPLD? In an another post, we have tried to answer the differences between FPGA and CPLD. This article will attempt to answer questions on FPGAs vs ASICs, and the similarities and differences between them. This article 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.
What is FPGA?
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 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 provide 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.
What is ASIC?
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 similar way as in case of FPGAs, using hardware description languages such as Verilog or VHDL. 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.
FPGA vs ASIC comparison summary
|1||Reconfigurable circuit. FPGAs can be reconfigured with a different design. They even have capability to reconfigure a part of chip while remaining areas of chip are still working! This feature is widely used in accelerated computing in data centres.||Permanent circuitry. Once the application specific circuit is taped-out into silicon, it cannot be changed. The circuit will work same for its complete operating life.|
|2||Design is specified generally using hardware description languages (HDL) such as VHDL or Verilog.||Same as for FPGA. Design is specified using HDL such as Verilog, VHDL etc.|
|3||Easier entry-barrier. One can get started with FPGA development for as low as USD $30.||Very high entry-barrier in terms of cost, learning curve, liaising with semiconductor foundry etc. Starting ASIC development from scratch can cost well into millions of dollars.|
|4||Not suited for very high-volume mass production.||Suited for very high-volume mass production.|
|5||Less energy efficient, requires more power for same function which ASIC can achieve at lower power.||Much more power efficient than FPGAs. Power consumption of ASICs can be very minutely controlled and optimized.|
|6||Limited in operating frequency compared to ASIC of similar process node. The routing and configurable logic eat up timing margin in FPGAs.||ASIC fabricated using the same process node can run at much higher frequency than FPGAs since its circuit is optimized for its specific function.|
|7||Analog designs are not possible with FPGAs. Although FPGAs may contain specific analog hardware such as PLLs, ADC etc, they are not much flexible to create for example RF transceivers.||ASICs can have complete analog circuitry, for example WiFi transceiver, on the same die along with microprocessor cores. This is the advantage which FPGAs lack.|
|8||FPGAs are highly suited for applications such as Radars, Cell Phone Base Stations etc where the current design might need to be upgraded to use better algorithm or to a better design. In these applications, the high-cost of FPGAs is not the deciding factor. Instead, programmability is the deciding factor.||ASICs are definitely not suited for application areas where the design might need to be upgraded frequently or once-in-a-while.|
|9||Preferred for prototyping and validating a design or concept. Many ASICs are prototyped using FPGAs themselves! Major processor manufacturers themselves use FPGAs to validate their System-on-Chips (SoCs). It is easier to make sure design is working correctly as intended using FPGA prototyping.||It is not recommended to prototype a design using ASICs unless it has been absolutely validated. Once the silicon has been taped out, almost nothing can be done to fix a design bug (exceptions apply).
|10||FPGA designers generally do not need to care for back-end design. Everything is handled by synthesis and routing tools which make sure the design works as described in the RTL code and meets timing. So, designers can focus into getting the RTL design done.||ASIC designers need to care for everything from RTL down to reset tree, clock tree, physical layout and routing, process node, manufacturing constraints (DFM), testing constraints (DFT) etc. Generally, each of the mentioned area is handled by different specialist person.
How to choose between FPGA or ASIC
Are you a newcomer who wants to learn more about VLSI and hardware design? Then FPGAs and simulation softwares are most suitable for you. Are you designing your own product? Cool! Ask yourself what is the target market, 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 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. Ofcourse, 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 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!