Dua input LUT (tabel pencarian) dapat direpresentasikan secara umum seperti ini:
LUT terdiri dari blok SRAM yang diindeks oleh input LUT. Output dari LUT adalah nilai apa pun di lokasi yang diindeks dalam SRAM itu.
Meskipun kita berpikir tentang RAM yang biasanya diorganisasikan menjadi 8, 16, 32 atau 64-bit kata-kata, SRAM di FPGA adalah 1 bit secara mendalam. Jadi misalnya input 3 LUT menggunakan SRAM 8x1 (2³ = 8)
Karena RAM volatile, isinya harus diinisialisasi ketika chip dinyalakan. Ini dilakukan dengan mentransfer isi memori konfigurasi ke SRAM.
Output dari LUT adalah apa pun yang Anda inginkan. Untuk gerbang AND dua input,
Address In ([1:0]) Output
0 0 0
0 1 0
1 0 0
1 1 1
Untuk contoh kedua Anda, hanya tabel kebenaran yang berubah:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 0
1 1 0
dan akhirnya, A xor B:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 1
1 1 0
Jadi itu bukan LUT yang sama dalam setiap kasus, karena LUT menentukan output. Jelas, jumlah input ke LUT bisa jauh lebih dari dua.
LUT sebenarnya diimplementasikan menggunakan kombinasi bit SRAM dan MUX:
Di sini bit di atas 0 1 0 0 0 1 1 1 mewakili output dari tabel kebenaran untuk LUT ini. Tiga input ke MUX di sebelah kiri a, b, dan c pilih nilai output yang sesuai.