ASIC vs. FPGA: What’s the difference?

by Matthew Edwards 

What is an ASIC?

The term ASIC is an acronym for Application Specific Integrated Circuit. As the name suggests, an ASIC is an integrated circuit that was designed for a particular use or application, which cannot be reprogrammed or modified after it is produced. An ASIC is designed to the specifications of the product and is not intended for general use. A more common term is SoC (System on Chip), which is an ASIC that acts as an entire subsystem including a CPU, memory and peripherals.

Types of ASIC

ASICs can be categorised by the amount of customisation that can be done. There are three main types of ASIC:

When are ASICs used?

Since ASICs are designed to a product's specification and can’t be reprogrammed, they are used in products which are intended for permanent applications. Also, due to ASICs being designed to a product’s exact specification, ASICs offer better performance at lower power. Other benefits of using ASICs are that they are able to incorporate significant amounts of circuitry into a single chip. This can reduce the number of components in the chip, as well as reducing the overall BOM (Bill of Materials). As the volumes increase, the per unit manufacturing costs reduce, making the choice of ASIC increasingly financially attractive.

What is an FPGA?

FPGA stands for Field Programmable Gate Array. An FPGA is produced for general use by using configurable logic blocks and programmable interconnects. This means that an FPGA can be programmed and reprogrammed (depending on the type of FPGA) to perform many functions after it has been manufactured.

Types of FPGA

FPGAs can be classified in two ways. Either by their internal architecture or by the programmable technology type. Within those two classifications, there are multiple types of FPGA.


Programmable technology type

When are FPGAs used?

FPGAs are useful for prototyping when designing a product and, once the design is complete, they can switch to ASICs for mass production. The process of moving from an FPGA design to an ASIC design is not trivial. Due to the nature of FPGAs, the verification on these designs tends to be less thorough than on ASICs. Therefore, to move a design from an FGPA to an ASIC can require more work than is initially expected. They are also used when a product requires updating after manufacturing or ongoing flexibility during the product’s lifetime, such as some safety or security applications. An FPGA could also be used if time to market is crucial. Although the per unit cost is high, the hardware can be designed quickly. So, for an expensive or low volume product, an FPGA could be a better way to market.

ASIC vs FPGA: What’s the difference?

What’s the difference? Above, we’ve gone through both ASICs and FPGAs, the different types of both, and when/why they are used. There are many differences between the two but, when deciding which to use, there are some differences that are key to the decision:

  1. Flexibility: Because FPGAs can be re-programmed, they can be more flexible than ASICs once the product has been manufactured. In field updates to the hardware can minimise the impact of any bugs in the system after production.
  2. Design Flow: The design flow of ASICs is far more complex which involves several stages from system specification/architecting the design through to tape out and manufacture. These designs tend to take years to reach manufacture from the initial stages. The result of the ASIC design process is a highly specific and efficient chip for the product. 
  3. Cost: Because the ASIC design flow is so complex and time consuming, the cost of designing an ASIC is much higher than an FPGA. Although, once the design is ready for manufacture, the cost per unit of an ASIC tends to be much cheaper and, the larger the production run is, the lower the cost per unit becomes.
  4. Performance and Efficiency: ASICs are designed for a specific purpose and will have exactly as many gates as is needed. This means it can eliminate wasted space and power, making it more efficient and giving it better performance than an FPGA. Using an FPGA gives you flexibility in exchange for efficiency which, in most cases, is a poor trade-off.


Further information at or email