# What is LUT(Lookup Table) in FPGA?

FPGA has hardware resources which can be used to design any digital system on it. One of them is LUT which is called Lookup Table. LUT is the basic building block of FPGA which can give us the opportunity of reconfigurable computing. In this post, we'll see what is the logic behind LUT, and how we can use this to make any digital circuit we want which can be reconfigure or we can change the hardware configuration anytime we want or basically with the help of fabricated hardware resources, we can implement different hardware on it.

## Logic Gates With Different Paradigm

We know that logic gates are the building block of any digital circiut. We can implement any digital system using these gates. Is there any method by which we can make any logic gates using the same hardware? Let's see.

Multiplexer is the digital circuit which can implement any logic gates. 4X1 MUX has 2 select line and 4 inputs, for different conbination of select line, one input is selected at the output. Let's fix it's inputs as I0,I1,I2 to '0' and I3 to '1', and select line as 2-bit input. Now this is equvalent to an AND gate. The input of the MUX is basically output of AND gate truth table.

Try with something else. For any two input logic gate, if the truth table output is the input of the MUX, it is equivalent to that particulat logic gates. Is this reconfigurable? No. We have to fix the input for implement the logic gates.

## Lookup Table(LUT)

Instead of fixing MUX input, let's keep a 1 bit memory cell in each input of the MUX. We can write any bit into it and we can create any logic gates by simply writing the truth table output of any logic gates into this memory cell. This is call a 2 input LUT or LUT2.

LUT2 can implement any 2-input logic function. Similaylly, higher input MUX can be used to implement higher input logic function like LUT3,LUT4,LUT5 and LUT6. These LUTs can be used to implement any combinational circuit.

### Do we need to find out truth table all the time?

Answer is NO. Technically you can implement the combinational circuit directly with the help of truth table but what is the circuit is very big? This is where synthesis tool comes into picture. Synthesis tools converts the hardware discription language into netlist and this netlist is later used to generate LUT memory bits, and it will be mapped into the LUT which is call placements and routing.

Click like if you found this useful