Qu'est-ce qu'une LUT dans FPGA?

24

J'ai parcouru diverses sources ... Mais je ne sais pas trop ce que c'est. Je veux une porte et et l'équivalent logique est deux entrées alimentant une porte et pour Y = AB 'l'équivalent logique alimente une porte pas et un et porte. Mais c'est la même LUT pour AND et Y = AB '. Je pense que nous stockons les valeurs comme souhaité dans la LUT. Quelqu'un élabore sur ce

Muthu Subramanian
la source
2
Une raison pour laquelle vous n'avez pas accepté de réponse?
Ellen Spertus

Réponses:

37

Une LUT , qui signifie LookUp Table , est en termes généraux une table qui détermine la sortie pour une ou plusieurs entrées données. Dans le contexte de la logique combinatoire, c'est la table de vérité . Cette table de vérité définit efficacement le comportement de votre logique combinatoire.

En d'autres termes, quel que soit le comportement que vous obtenez en interconnectant un nombre quelconque de portes (comme AND, NOR, etc.), sans chemins de rétroaction (pour vous assurer qu'il est sans état), peut être implémenté par une LUT.

La façon dont les FPGA implémentent généralement la logique combinatoire est avec les LUT, et lorsque le FPGA est configuré, il remplit simplement les valeurs de sortie de la table, qui sont appelées "LUT-Mask", et est physiquement composé de bits SRAM. Ainsi, la même LUT physique peut implémenter Y = AB et Y = AB ', mais le LUT-Mask est différent, car la table de vérité est différente.

Vous pouvez également créer vos propres tables de recherche. Par exemple, vous pouvez créer un tableau pour une fonction mathématique complexe, qui fonctionnerait beaucoup plus rapidement que le calcul réel de la valeur en suivant un algorithme. Cette table serait stockée dans la RAM ou la ROM.

Cela nous amène à visualiser les LUT simplement en tant que mémoire, où les entrées sont l'adresse et les sorties correspondantes sont les données stockées dans l'adresse donnée.

Voici un instantané de FPGA Architecture par Altera:

entrez la description de l'image ici

apalopohapa
la source
23

Une LUT à deux entrées (table de recherche) peut être représentée de manière générique comme ceci:

entrez la description de l'image ici

Une LUT est constituée d'un bloc de SRAM qui est indexé par les entrées de la LUT. La sortie de la LUT correspond à la valeur de l'emplacement indexé dans sa SRAM.

Bien que nous pensions que la RAM soit normalement organisée en mots de 8, 16, 32 ou 64 bits, la SRAM dans les FPGA a une profondeur de 1 bit. Ainsi, par exemple, une LUT à 3 entrées utilise une SRAM 8x1 (2³ = 8)

La RAM étant volatile, le contenu doit être initialisé lors de la mise sous tension de la puce. Cela se fait en transférant le contenu de la mémoire de configuration dans la SRAM.

La sortie d'une LUT est ce que vous voulez qu'elle soit. Pour une porte ET à deux entrées,

Address In ([1:0])      Output

     0  0                 0
     0  1                 0
     1  0                 0
     1  1                 1

Pour votre deuxième exemple, seule la table de vérité change:

Address In ([1:0])      Output

     0  0                 0
     0  1                 1
     1  0                 0
     1  1                 0

et enfin, A xor B:

Address In ([1:0])      Output

     0  0                 0
     0  1                 1
     1  0                 1
     1  1                 0

Ce n'est donc pas la même LUT dans chaque cas, car la LUT définit la sortie. Évidemment, le nombre d'entrées dans une LUT peut être bien plus de deux.

La LUT est en fait implémentée à l'aide d'une combinaison des bits SRAM et d'un MUX:

Ici, les bits situés en haut 0 1 0 0 0 1 1 1 représentent la sortie de la table de vérité pour cette LUT. Les trois entrées du MUX à gauche a, b et c sélectionnent la valeur de sortie appropriée.

entrez la description de l'image ici

tcrosley
la source
Merci pour cela ... Mais je reçois des questions très basiques ici. Bits SRAM? Je connais SRAM .. mais des bits SRAM? Mémoire de configuration? et pourriez-vous expliquer comment Y = AB, Y = AB 'et Y = A xor B seront mis en œuvre avec une LUT à 2 entrées? Il serait utile d'expliquer avec un diagramme de niveau MUX? Je suis très reconnaissant pour votre aide sur la structure de LUT. Quel est ce R dans le diagramme>
Muthu Subramanian
@MuthuSubramanian J'ai mis à jour ma réponse qui devrait répondre à toutes vos questions.
tcrosley