Sunday, February 3, 2013

FPGAs 'vs.' ASICs Basic Idea


FPGAs 'vs.' ASICs - Basic Idea

The debate on FPGAs vs ASICs has been around for quite a while now, but not without a good reason. The choice could have a significant bearing on the success of your product.
    What you will find below is one opinion of this long in vogue debate, by Vijayakumar Regupathi and Manisha Mankar,  architects - digitaldesign, at Robert Bosch Engineering and Business Solutions.


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 optimized in the way the resources are used. The same would be the case regarding the utilization of all available resources. But yet, what makes it ‘tick’?

"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 optimized in the way the resources are used, and also in utilization of all available resources. But yet, what makes it ‘tick’?"

FPGAs
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
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.

In case of high volume production, ASICs really shine. Also In terms of useful logic, sizes, and resource optimization, ASICs will outperform FPGAs. ASICs have very high density in terms of logic gates on the chip, due to the optimal design. Gate counts and hence power consumption can give ASICs a competitive edge over an FPGA. All the internal structures/IPs are used for customer specific or mission specific applications or functions. So, while an ASIC may consume more power per unit die size than an FPGA, the power is normally amortized over a higher density solution; and hence, provides better power efficiency.

Bringing them together
The choice of ASIC vs FPGA for volume production is case-to-case basis. In mobile applications, it makes more sense to have an ASIC-based solution due to high density/performance. Time-to-market is also a parameter in such consumer applications, but with newer shorter ASIC development cycles and with less focus on quality, ASICs are the logical choice. On other hand in network applications, where typically the requirement is moderate in terms of complexity and density, FPGA solutions are preferred due to shorter time-to-market. Quality could be addressed through flexibility in soft-hardware bug fixes.

Generally for lower production volumes, FPGA may be more cost effective then ASIC. But the recent trend is suggesting that FPGA could be better alternative solution in high volume applications since cost related to ASIC development are increasing on account of more complex technology nodes. However, at this juncture, it is not very clear whether this trend is sustaining or a temporary aberration.

To summarize, in general, “the designing and producing circuits is extremely expensive and time consuming, but inevitable for certain high-end applications. So ASICs are advantageous when it comes to high port density complex applications with high volume. FPGAs are preferred when it comes to faster time-to-market requirement, lower production/volume and flexibility”.

No comments: