Was ist eine LUT im FPGA?

Ich habe verschiedene Quellen durchgesehen ... Aber ich bin mir nicht ganz sicher, was es ist. Ich möchte ein UND-Gatter und das logische Äquivalent sind zwei Eingänge, die zu einem Gatter führen, und für Y = AB 'speist das logische Äquivalent ein Nicht-Gatter und eins und Tor. Aber es ist die gleiche LUT für AND und Y=AB'. Ich denke, wir speichern die Werte wie gewünscht in der LUT. Jemand näher darauf eingehen

Gibt es einen Grund, warum Sie keine Antwort akzeptiert haben?

Antworten (2)

Eine LUT , die für LookUp Table steht , ist im Allgemeinen im Grunde eine Tabelle, die bestimmt, was die Ausgabe für eine oder mehrere gegebene Eingaben ist. Im Kontext der Kombinationslogik ist es die Wahrheitstabelle . Diese Wahrheitstabelle definiert effektiv, wie sich Ihre kombinatorische Logik verhält.

Mit anderen Worten, jedes Verhalten, das Sie erhalten, indem Sie eine beliebige Anzahl von Gattern (wie UND, NOR usw.) ohne Rückkopplungspfade (um sicherzustellen, dass es zustandslos ist) miteinander zu verbinden, kann durch eine LUT implementiert werden.

Die Art und Weise, wie FPGAs typischerweise kombinatorische Logik implementieren, ist mit LUTs, und wenn das FPGA konfiguriert wird, füllt es einfach die Tabellenausgangswerte aus, die als "LUT-Maske" bezeichnet werden und physikalisch aus SRAM-Bits bestehen. Die gleiche physische LUT kann also Y=AB und Y=AB' implementieren, aber die LUT-Maske ist unterschiedlich, da die Wahrheitstabelle unterschiedlich ist.

Sie können auch Ihre eigenen Nachschlagetabellen erstellen. Sie könnten beispielsweise eine Tabelle für eine komplexe mathematische Funktion erstellen, die viel schneller funktionieren würde, als den Wert tatsächlich zu berechnen, indem Sie einem Algorithmus folgen. Diese Tabelle würde im RAM oder ROM gespeichert.

Dies bringt uns dazu, die LUTs einfach als Speicher zu betrachten, wobei die Eingänge die Adresse sind und die entsprechenden Ausgänge die in der angegebenen Adresse gespeicherten Daten sind.

Hier ist ein Schnappschuss der FPGA-Architektur von Altera:

Geben Sie hier die Bildbeschreibung ein

Eine LUT (Nachschlagetabelle) mit zwei Eingängen kann allgemein wie folgt dargestellt werden:

Geben Sie hier die Bildbeschreibung ein

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 seinem SRAM befindet.

Obwohl wir denken, dass RAM normalerweise in 8-, 16-, 32- oder 64-Bit-Wörtern organisiert ist, ist SRAM in FPGAs 1 Bit tief. So verwendet zum Beispiel eine LUT mit 3 Eingängen einen 8x1 SRAM (2³=8)

Da RAM flüchtig ist, müssen die Inhalte beim Einschalten des Chips initialisiert werden. Dazu wird der Inhalt des Konfigurationsspeichers in das SRAM übertragen.

Die Ausgabe einer LUT ist, was Sie wollen. Für ein UND-Gatter mit zwei Eingängen gilt:

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 handelt sich also nicht in jedem Fall um dieselbe LUT, da die LUT die Ausgabe definiert. Offensichtlich kann die Anzahl der Eingänge in eine LUT weit mehr als zwei betragen.

Die LUT wird tatsächlich unter Verwendung einer Kombination der SRAM-Bits und eines MUX implementiert:

Hier repräsentieren die Bits über den oberen 0 1 0 0 0 1 1 1 die Ausgabe der Wahrheitstabelle für diese LUT. Die drei Eingänge zum MUX auf der linken Seite a, b und c wählen den entsprechenden Ausgangswert aus.

Geben Sie hier die Bildbeschreibung ein

Danke dafür ... Aber ich bekomme hier sehr grundlegende Fragen. SRAM-Bits? Ich kenne SRAM ... aber SRAM-Bits? Konfigurationsspeicher? und könnten Sie erklären, wie Y = AB, Y = AB' und Y = A xor B mit einer LUT mit 2 Eingängen implementiert werden? Es wäre hilfreich, wenn Sie mit einem MUX-Pegeldiagramm erklären? Ich bin sehr dankbar für Ihre Hilfe bei der Strukturierung von LUT. Was ist das R im Diagramm>
@MuthuSubramanian Ich habe meine Antwort aktualisiert, die alle Ihre Fragen beantworten sollte.