LUT с двумя входами (справочная таблица) может быть представлен в общем виде так:
LUT состоит из блока SRAM, который индексируется входами LUT. Выводом LUT является любое значение в индексированном месте в его SRAM.
Хотя мы думаем о том, что RAM обычно организована в 8, 16, 32 или 64-битные слова, SRAM в FPGA имеет глубину 1 бит. Так, например, 3 входных LUT использует 8x1 SRAM (2³ = 8)
Поскольку оперативная память является энергозависимой, содержимое должно быть инициализировано при включении чипа. Это делается путем переноса содержимого памяти конфигурации в SRAM.
Вывод LUT - это то, что вы хотите. Для ворот с двумя входами И,
Address In ([1:0]) Output
0 0 0
0 1 0
1 0 0
1 1 1
Для вашего второго примера изменяется только таблица истинности:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 0
1 1 0
и, наконец, A xor B:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 1
1 1 0
Таким образом, это не одно и то же LUT в каждом случае, так как LUT определяет вывод. Очевидно, что количество входов в LUT может быть намного больше, чем два.
LUT фактически реализован с использованием комбинации битов SRAM и MUX:
Здесь биты в верхней части 0 1 0 0 0 1 1 1 представляют выходные данные таблицы истинности для этого LUT. Три входа MUX слева a, b и c выбирают соответствующее выходное значение.