Thursday, July 31, 2014

FPGAs: What makes them programmable?

It sounds crazy when you say there is a device called FPGA that might replace ASIC. Definitely it will be a great achievement for the electronics engineers if they can make a hardware which can be used for all the electronic devices. Field Programmable Gate Array (FPGA) specifies that  it can be configured by costumer or designer after manufacturing. Hardware description languages (HDLs), such as VHDL and Verilog are used to implement the logic.


FPGAs have mainly four elements viz. CLBs, Interconnects, BRAMs and IOBs which makes them programmable.  Configurable Logic Blocks (CLBs) are the main weapons to make device programmable. CLBs are made up of LUTs, flip-flop and a 2:1 mux. 


Look UP Tables (LUTs) are made up of small BRAMs that can implement any logic function. Each of inputs is essentially an address for the BRAM so that it can define the output logic to the block. 2 inputs LUT can become any logic gate. LUTs are then connected to the DFF which are the memory elements used to store the output from LUT. A 2:1 MUX is used in case you want to bypass the DFF (D-Flip-flop). Each logic block can connect through the Interconnects to their corresponding block to implement the desired logic. IOBs are used as an interface to the outer world. 

(Research Associate at Silicon Mentor)