At the latest semiconductor IC fabrication process nodes of 45nm and below, the number of logic gates in an FPGA exceeds 5million giving ample space for designing logic functional blocks for today's SoCs (System on Chip). Nearly every FPGA Company provides silicon, software, and hardware reference design to quickly develop embedded system applications even with least knowledge of HDL or any such FPGA specific languages. With such a set of tools and support, FPGA based systems can be developed within weeks compared to what it used to take months earlier. Factors such as these are contributing to the growth of FPGA. On the otherside ASIC's development cost is rising; forcing cost sensitive applications to move from ASIC based to FPGA based.
Even at basic level, FPGA provide flexibility of reprogrammability to the user. FPGA can be used to implement any logical function that an application-specific integrated circuit (ASIC) could perform. Where, ASIC is a chip designed for a particular application.
Earlier FPGAs are used for lower speed, lower complexity and lower volume designs. But today's FPGAs run at >500 MHz with good performance. With the drag and drop kind of ready IPs available for embedded processors, DSP blocks, and high-speed serial interface at lower prices, FPGAs are targeting almost any type of design.
A coarse-grained architectural approach a step further by combining the logic blocks and interconnects of traditional FPGAs with embedded microprocessors and related peripherals to form a complete "system on a programmable chip".Check this Wikipedia article to know more about coarse-grained architecture
Modern FPGAs can be reprogrammed at "run time," leading to the idea of reconfigurable computing or reconfigurable systems (CPUs that reconfigure themselves to suit the task at hand).
Some of the trends that make FPGAs a better alternative than ASICs for a growing number of higher-volume applications are,
1. Increasing IC design costs.
2. Lack of R&D sources and VLSI design engineers
3. FPGA offers time-to-market advantage.
4. Weak economy asking for low-cost technologies
5. FPGA can be re-programmed in the field to fix bugs,
6. Reusability, and lower non-recurring engineering costs.
7. Some FPGAs have the capability of partial re-configuration that lets one portion of the device be re- programmed while other portions continue running.
However there are some disadvantages with FPGA too, they are,
1. Not a right device for high volume applications
2. Costlier than custom silicon
3. No on-chip analog functions
4. Higher power consumption compared to ASIC.
5. Large configuration time and compilation time in FPGAs compared with general-purpose processor.