Eine LUT mit zwei Eingängen (Nachschlagetabelle) kann generisch wie folgt dargestellt werden:
Eine LUT besteht aus einem SRAM-Block, der durch die Eingänge der LUT indiziert wird. Die Ausgabe der LUT ist der Wert, der sich an der indizierten Stelle in ihrem SRAM befindet.
Obwohl wir davon ausgehen, dass RAM normalerweise in 8, 16, 32 oder 64-Bit-Wörtern organisiert ist, hat der SRAM in FPGAs eine Tiefe von 1 Bit. So verwendet beispielsweise eine LUT mit 3 Eingängen einen 8x1-SRAM (2³ = 8).
Da der RAM flüchtig ist, muss der Inhalt beim Einschalten des Chips initialisiert werden. Dies geschieht durch Übertragen des Inhalts des Konfigurationsspeichers in den SRAM.
Die Ausgabe einer LUT ist das, was Sie möchten. Für ein UND-Gatter mit zwei Eingängen
Address In ([1:0]) Output
0 0 0
0 1 0
1 0 0
1 1 1
Für Ihr zweites Beispiel ändert sich nur die Wahrheitstabelle:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 0
1 1 0
und schließlich A xor B:
Address In ([1:0]) Output
0 0 0
0 1 1
1 0 1
1 1 0
Es ist also nicht in jedem Fall die gleiche LUT, da die LUT die Ausgabe definiert. Offensichtlich kann die Anzahl der Eingänge zu einer LUT weit mehr als zwei betragen.
Die LUT wird tatsächlich unter Verwendung einer Kombination der SRAM-Bits und eines MUX implementiert:
Hier stellen die Bits über den oberen 0 1 0 0 0 1 1 1 die Ausgabe der Wahrheitstabelle für diese LUT dar. Die drei Eingänge des MUX links a, b und c wählen den entsprechenden Ausgangswert.