FPGA (Field Programmable Gate Array) is a type of integrated circuit (IC) containing a matrix of logic cells that can be programmed by a user to act as an arbitrary integrated circuit.
For example, one can implement a processor, a digital filter or an interrupt controller on the basis of FPGA. Larger FPGAs even allows user to create complex system-on-chip (SoC) containing several interconnected components.
The process of FPGA engineering usually involves writing a description in a special language (hardware description language â€“ HDL). The FPGA configuration data (firmware) is then created by special software from this description.
Given the cost of an FPGA firmware development (which is relatively low) and the ability to reprogram FPGAs many times, it isn't surprising that FPGAs has conquered a noticeable part of the market.
The pros and cons of FPGAs (versus ASICs â€“ application-specific integrated circuits) are summarized in the following table:
Â· Low design costs, simplified design flow
Â· Shorter time-to-market
Â· Maximum performance for a given semiconductor technology
Â· Low production costs (for large volumes)
Â· Low power consumption
Consequently, FPGAs are used in low-volume products, where design costs comprise a significant part of the budget. On the contrary, ASIC design approach is often used for high-volume products, where high design costs (measured in millions of dollars) can be repaid with massive sales.
The FPGA tutorial has been created by 1-CORE Technologies, an FPGA design services provider.