Most electrical and electronic engineers who are familiar with the micro-controllers and the micro-processors are curious about this mysterious other guy in the market, the FPGA or field programmable gate array. Thereafter, to eventually satisfy this overwhelming curiosity let's unveil this other guy.
In order to fully realize the working of FPGAs you will first need to know what are ASICs and PLDs.
For example consider a NOT gate IC 7404, which has a fixed hardwired circuit fabricated on a single chip.
Some of the key features of ASICs are as under:
Some of the key features of PLDs are as under:
Now our so called other guy, the FPGA comes as a trade-off between the ASICs and PLDs, incorporating good features of both of them into a single chip.
FPGA architecture consists of CLBs or combinational logic blocks in a 'sea' of programmable interconnects.
Any logic can be implemented with the help of look up tables in the CLBs and large logic functions may be built by connecting many logic blocks together with the help of a routing network (interconnects). Synchronous logics can also be implemented because of the presence of a clocked F/F in every CLB.
Once an FPGA is programmed it functions just like an ASIC for that function, the only difference being that:
- FPGAs may be programmed within minutes on your desk while ASICs take a long time for fabrication.
- FPGAs offer more wide opportunities for engineers in the sense that you may program 100 counters on an FPGA (limited by I/Os only) and on the other hand how many ASICs chips will you need to achieve the same functionality? this unmatched flexibility is a distinctive feature of FPGAs.
- Most complex functions and memory blocks can be programmed on FPGAs, something a PLD cannot achieve.