Some of you may be familiar with the terms FPGA or Field Programmable Gate Array. And familiarity does not necessarily beget understanding. So what exactly is FPGA?In simple terms it is a logic chip which contains a two dimensional array of logic cells and programmable switches. They are ICs that contain an array of identical logic blocks with programmable interconnections.Just as on a blank canvas you can paint any picture you want, FPGA allows an engineer to design any digital circuit. They say: just generate the bit file, download it and you’re good to go! This is a big development over the traditional microcontrollers as the architecture of such controllers does not support larger designs. For example, microcontrollers like 8051 used Harvard architecture with CISC instruction set. FPGA does not have any inbuilt instruction sets which provide the designer with much greater flexibility. A controller has its own CPU which starts the controller, retains memory and performs several tasks. Unlike microcontrollers, a FPGA will not be able to start functioning on itsown due to lack of the traditional architecture.