We will hold our jump into the debate, in order to first define the two entities to be discussed. The Field-Programmable Gate Array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing—hence the “field-programmable” prefix. On the other hand, an Application-Specific Integrated Circuit (ASIC) is an integrated circuit customized for a particular use, rather than intended for general-purpose use. FPGAs and ASICs can both be configured using the Hardware Description Language (HDL), and most logic functions that an ASIC can perform, can be implemented in an FPGA as well.
How did it all begin?
A little bit on the background will help to set the context for our discussion. In the bygone era, IP routers were, by a great extent, software based. The centralized CPU was performing all the functions and this degraded the performance of the Internet. It didn’t take long for the engineers to realize that moving some of the critical functions to hardware, boosted the overall performance, and that was one of the ‘start of life’ for the FPGAs. Since then, FPGAs have steadily gained ground on ASICs despite also having acquired the label of being a “costly solution”.
There are skeptics in the industry who feel that FPGA cannot match the speeds that today’s applications need, like Internet Routers for instance. However the changing economics and performance enhancement in FPGA technology is seeking a place to address complex applications. As examples, we do see companies shipping line-rate, high performance routers using FPGAs. Well, the choice is still a debate which we discuss below. While an FPGA contains millions of programmable gates used to program any application or function, one thing to note is, this may not necessarily be the most optimised in the way the resources are used. The same would be the case regarding the utilisation of all available resources. But yet, what makes it ‘tick’?
[stextbox id=”info”]”While FPGA contains millions of programmable gates used to program any application or function, one thing to note is, this may not necessarily be the most optimised in the way the resources are used, and also in utilization of all available resources. But yet, what makes it ‘tick’?”[/stextbox]
The significant advantage of FPGA is its configurability, which is the ability to rapidly implement or reprogram the logic for a specific feature or capability that a customer requires. Even if a vendor has new features to add at a later stage in the released product, he still has a freedom to decide whether to implement that feature in software or hardware based on applicability. Time to market for handling change-requests in FPGA is far less than that in ASICs.
Back to the performance of FPGAs, the industry has shown that high-end FPGAs are growing in volume, handling high-speed applications and complex designs. Recent history has shown that FPGA development in terms of volume is on an exponential growth curve.
Earlier FPGAs were only viable for prototyping or low-density applications. Now they see very high-volume usage in consumer products and other moderate volume high-density applications because “FPGA devices now look like System on chips (SOC) with embedded processors, Signal processing block, embedded memory interface controller, Multi-gigabit transceivers, Improved performance and a broad choice of IPs available from FPGA Vendors and/or third parties. With this advantage, short design cycle and reconfigurable options, the FPGAs are pushing the ASICs out of the market”.
In prototyping application, FPGAs can be re-programmed as needed until the final matured specification and /or design is evolved. The ASIC can then be manufactured using directly the FPGA design or after further optimization and finer improvements which could be supported by ASICs.
ASICs on the other hand, are specialized chips that can perform specific functions operating at very high performance level. As device speeds increase, FPGAs experience a dramatic increase in power consumption over an ASIC design. This is largely due to how FPGAs are routed. In the FPGA, the signals are not routed from point A and Point B. Instead a signal is routed through many programmable routing switches and wire segments which cause an increase in power consumption when device speeds increase. In addition, clocks are routed with predefined clock network across the entire die with oversized drivers to handle all potential clocking requirements. Unlike FPGA, in an ASIC, signal networks and clock drivers are tailored to the specific signal/clock network requirements and routed efficiently in metal layers.
Over the years, the technology has grown exponentially. ASICs are typically used for very dense applications e.g. requiring very high port density and high-speed IP cores integration requirement. ASICs have a higher development cost as compared to an FPGA. Also once an ASIC is fabricated, it is not reprogrammable like an FPGA. The layout of the internal chip constructs are fixed and cannot be modified without a “re-spin” of the ASIC. This makes ASICs less flexible for change requests.