In this article we will do a comparative study on FPGA and ASIC. FPGAs are integrated circuits although they have certain distinctive features which make them different from ASICS.
Lets start our journey with definitions of FPGA and ASIC.
I. What is FPGA?
Field Programmable Gate Array is abbreviated as FPGA.It is an integrated circuit and unlike ASIC it can be configured after fabrication as per customer need. Hence the name "Field Programmable" is used. It can work as a microprocessor, or as an encryption unit, or graphics card, or even all these.
FPGA consists of Configurable Logic Blocks (CLBs) connected with programmable interconnects(Fig 1). The Configurable Logic Blocks are primarily made of Look-Up Tables, Multiplexers and Flip-Flops. They can implement complex logic functions. Apart from Configurable Logic Blocks and routing interconnects, many FPGAs also contain dedicated hard-silicon blocks designed for various dedicated functions such as Block RAM, DSP Blocks, External Memory Controllers, PLLs, Multi-Gigabit Transceivers etc.Another emerging trend is inclusion of a hard-silicon processor core inside the same FPGA die itself. In such a case the processor takes care repititive, non-critical tasks and the FPGA takes care of high-speed acceleration.
II. What is ASIC?
Application Specific Integrated Circuit is abbreviated as ASIC. ASICs are intrigated circuits designed for a specific application and the chip follow or execute same function throughout its life time, there is no change or alteration.For example, the CPU inside phone or laptop is an ASIC. It is designed and fabricated to act as a CPUfor whole of its lifetime. Its logical functioning will remain unchanged as the whole gate level design is permanently fabricated with MOSFETs and metal interconnets on physical silicon wafer. In ASIC flow everything starts with specification and after all the steps the design is transferred on the Silicon as millions of MOS devices and metal interconnects between them.
Fig 2. VLSI Design Flow
Now lets discuss the similarities and differences between FPGA and ASIC.
1. FPGA is Reconfigurable circuit. FPGAs can be reconfigured with a different design. In some FPGAs its possible to reconfigure a part in a particular way whereas the rest of the chip is functional.
ASIC has 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. There is one similarity between ASIC and FPGA, in both cases the designs are specified generally using hardware description languages (HDL) such as VHDL or Verilog.
3. The NRE or non-recurring engineering costs for ASICs is high due to custom design and development and costs of masks. This cost could potentially reach millions of dollars. FPGAs, on the other hand, have no NRE costs.
4. FPGA is not suited for very high-volume mass production whereas AISC is suited for very high-volume mass production. Because of mass production the end product reaches customer hand in reasonable price. For an example if you consider the kind of effort and process requires in launching a new phone in market is huge. A phone is as smart as its processor. Obviously the cost related to it also huge.Starting from design, fabrication, launching, digital promotion, hiring a star brand ambassador, the total final cost for a batch of smart phone is unimaginable for a common consumer although its within reach of a common man. Just think for a while. Just because mass production the end product become purchasable in terms of money.
5. FPGA is usually less energy efficient and operates in limited operating frequency compare to ASIC in similar process nodes.
ASICs are much more power efficient than FPGAs. In ASICs Power consumption can be controlled and optimized very precisely. In advance applications ASIC solution for less leakage and high speed performance are different thus concentrationg on one at a time. Node is aslo selected as per application. ASIC fabricated using the same process node can run at much higher frequency than FPGAs since its circuit is optimized for its specific function.
6. Analog designs are not possible with FPGAs. Although FPGAs may contain specific analog hardware such as PLLs, ADC etc, they are not much flexible. 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.
7. Time to market is a great deciding factor when it comes to business viability. Time to market is much lesser in case of FPGA with respect to ASIC. FPGAs don’t require layout/masks so the overall production time is lesser. They are reprogrammed in the field as per need so there is less need to perform test and verification.
ASIC design is more complex , custom design is often required. Due to the complexities and customization in design at every step more time requires starting from learning,designing,testing and verification. Eventually the time to market become longer.
8. ASIC is designed for one functionality so the number of gate and hence the size optimized. FPGAs are designed for multi functionality and hence usually larger in size.
9. FPGAs are suitable for applications where the design need to be upgraded for better algorithm or better design such as Radars, Cell Phone Base Stations etc. Here, programmability is the deciding factor.
ASICs are not suited for applications where the design need upgradation frequently.
10. FPGAs are preferred for prototyping and validating a design or concept. Even many ASICs are prototyped using FPGAs. Major processor manufacturers use FPGAs to validate their System-on-Chips (SoCs). It is easier to make sure design is working correctly as intended using FPGA prototyping.
Although ASIC is not recommended to prototype a design.Once the silicon has been taped out, almost there is no way to fix a design bug.
11. FPGA process doesn't require back-end design(Fig 3). Everything is handled by synthesis and routing tools. So designers make sure the circuit works as er RTL code and meets timing.
Fig 3. FPGA Design Flow
ASIC designers need to care for everything like RTL,Synthesis, Floor planning, PnR, Layout, Timing (Fig 2) closure etc. Each step of flow is handled by different specialist team.
Well these are the differences between ASIC and FPGA.
Depending on requirement and priority one need to choose wisely between ASIC and FPGA. If an application need flexibility for future update or budget is low and require low volume production, FPGA is the solution. Whereas if the apllication required high speed performance or it is power sensitive or high volume production is required, its an analog circuitry then ASIC is the solution.
FPGA field have good scope of work. If you are good at programming, RTL coding, proficient in Verilog, Vhdl, more inclined in front end can look for job in FPGA.
Find the video lecture here:
Courtesy : Image by Vishnu Mohanan on unsplash