Microcontrollers, FPGAs, ASIC (Application-specific integrated circuit) all are used for similar type of applications (at different levels). I know about microcontrollers and FPGAs. But what is an ASIC really? I have a hard time understanding why we have all off these very similar technologies.
We used an ASIC in a number of products where a microcontroller used too much power. It was a fairly simple device, a couple of hundreds gates, and had to consume less than 100 nA static, which for microcontrollers at the time was not possible. Price was comparable to a microcontroller due to high quantities; you'll probably need >100 k/yr.
An FPGA would not only have been overkill, costing a lot more, but would have needed an external code Flash, which added to the already bigger footprint.
When you're trying to design an electronic system, you can generally come up with a multitude of technically valid solutions using a combinations of off-the-shelf chips, including programmable components (µC, µP), analog components, programmable logic (FPGA, CPLD) and memories.
Sometimes it can be interesting to integrate just the functionalities you need in a chip dedicated to your application (or a limited sub-class of applications) and that is what an ASIC is: a combination of analog functions, digital functions, programmable logic, programmable controllers, and different types of memory, in a single chip. An ASIC might also be the only possible solution when your system needs to reach a high energy efficiency (eg. lowest joule/operation) or very high performance (eg. lowest latency, or highest operation/second).
ASIC cost a lot to develop (100's of k€, often much more), but the cost to produce thousands of silicon wafers after the initial investment is low (cents to tens of cents per chip). They also take several month to design, verify and produce, and require a very complex methodology, and outrageously expensive development tools.
That's why they're used for high-volume applications (eg. consumer electronics) and application where you can charge a huge price per chip (eg. space hardware, routers for ISPs, etc.)
Some ASIC integrate programmable logic like a FPGA, and some FPGA integrate application-specific analog blocks so the distinction is not always simple, but the following is generally true :
- FPGA as available off-the-shelf, ASIC are not
- FPGA cost 10-1000€ per piece, ASIC cost 0.1-10€ per piece
- development tools for FPGA are accessible, for ASIC it cost a fortune
- FPGA systems can be designed in weeks, ASIC take months
- FPGA are less power efficient than ASIC that are designed for power efficiency
- FPGA are less powerful than ASIC that are designed for peak performance
- FPGA are available with a limited set of analog functions, ASIC can be designed with all kinds of analog functions (for power management, signal processing, interface, etc)
ASIC is an integrated circuit (IC) customized for a particular use, rather than intended for general-purpose use. For example, a chip designed to run in a digital voice recorder is an ASIC. Field-programmable gate arrays (FPGA) are the modern-day technology for building a breadboard or prototype from standard parts; programmable logic blocks and programmable interconnects allow the same FPGA to be used in many different applications. For smaller designs and lower production volumes, FPGAs may be more cost effective than an ASIC design even in production.
ASICs have great utility in aerospace applications. Because they are not field programmable they are more radiation tolerant. This is generally important for space applications, because of the harsh environments, and for military applications, where hardware may need to operate through induced radiation environments.
At large volumes ASICs can actually be cheaper than FPGAs, such as in high-production-rate missiles.
The downside of ASICs is that because the logic is burned into the circuit you have to get it right before you spin a large lot. FPGAs are often used for initial development with ASICs design and fab coming relatively late when the underlying logic is solid.
ASICs are application specific ICs which are designed for a particular application or purpose. I would say that something like the A6 processor on the new Apple iPhone would be a good example of an ASIC. Everything on it would have to be designed from scratch so generally the non-recurring cost or the research cost that goes into it is really high. So, generally ASICs are used when the ICs are going to be produced in very large quantities so that the total cost of each IC is very small. The cost of each IC is given by
Cost of each IC = variable cost + (Non-recurring cost/Volume of ICs), where the variable cost is the manufacturing cost of each IC and the non-recurring cost is the amount that went into designing the initial IC.
However, FPGAs are ICs which serve a more general purpose and are available off the shelf like someone has already mentioned before. But this is a cheaper option only when you need a few ICs. Going out on a limb and this should only serve as a means of trying to understand the difference, I can say that if the FPGA technique was used for the A6 iPhone processor and the obvious number of iPhones that Apple sells, the FPGA technique would be costlier for Apple when compared to the ASIC method. You might to take the last statement with a pinch of salt.