What is FPGA (Field Programmable Gate Arrays)?
“It is a semiconductor IC where a large majority of the electrical functionality inside the device can be changed; changed by the design engineer, changed during the PCB assembly process, or even changed after the equipment has been shipped to customers out in the ‘field’.” – intel.in
In simple terms Field Programmable Gate Array (FPGA) is an Integrated Circuit (IC) which can be programmed by the customer as per its need. FPGA gives designers the privilege to design or program the circuit as they want, hence the name “Field Programmable”.
We can program FPGA to perform many tasks at the same time. We can create small circuits in FPGA and use these circuits for different tasks.
- FPGA was introduced to execute instruction in parallel mode.
- HDL ( Hardware Description Language ) or Verilog is used to program FPGA.
- FPGA does require RAM(Random Access Memory), ROM (Read Only Memory), Storage.
- It is more flexible and less complex.
- Unlike CUP processing FPGA implementation is based on hardware.
- FPAG is much faster than microcontrollers.
- FPGA can be used to perform Real-Time operations.
Although FPGA has some demerits as well.
- It is not good to perform operations like floating points, etc.
- Testing and Debugging is difficult in FPGA.
Basic structure of FPGA
Programmable Logical Block : It provides computation along with storage.
I/O ports : These can be assigned, which can define how signals will go out or come in.
Switch Matrix : These are nothing but the transistors use to control (On and Off) the connections between different lines.
Programmable Interconnect : “provide the routing paths used to connect the inputs and outputs of IOBs and CLBs into logic networks” – xilinx.com
We can program FPGA to perform different tasks at same time e.g. we can control LED and Motor at the same given time using FPGA.
This feature allows FPGA to run many tasks in parallel.
What are the advantages of FPGA?
Can run tasks in parallel mode which increases the performance.
FPGAs are reprogrammable and reusable makes it a perfect choice for prototyping.
It can be used in Real time applications.
FPGA can adapt and modify at the level of the customer even after the product has been finalised we can update it to suit the customer’s needs.
“Today’s FPGAs include on-die processors, transceiver I/O’s at 28 Gbps (or faster), RAM blocks, DSP engines, and more. More functions within the FPGA mean fewer devices on the circuit board, increasing reliability by reducing the number of device failures.” – intel.in
Applications of FPGA
High performance computing and data storage.
Video and image processing.
Wired and wireless communication.