36 votos

¿Qué es un LUT en FPGA?

He revisado varias fuentes ... Pero no estoy muy seguro de qué se trata. Quiero una compuerta AND y el equivalente lógico son dos entradas alimentando a la misma compuerta y para Y=AB' el equivalente lógico es alimentar a una compuerta NOT y una compuerta AND. Pero es la misma tabla de búsqueda para tanto AND como Y=AB'. Creo que almacenamos los valores como se desee en la tabla de búsqueda. Alguien amplíe esto

3 votos

¿Hay alguna razón por la que no has aceptado una respuesta?

49voto

Rob Lachlan Puntos 7880

Un LUT, que significa LookUp Table, en términos generales es básicamente una tabla que determina cuál es la salida para cualquier entrada dada(s). En el contexto de la lógica combinacional, es la tabla de verdad. Esta tabla de verdad define efectivamente cómo se comporta tu lógica combinatoria.

En otras palabras, cualquier comportamiento que obtengas al interconectar cualquier cantidad de compuertas (como AND, NOR, etc.), sin trayectorias de retroalimentación (para garantizar que sea sin estado), puede ser implementado por un LUT.

La forma en que los FPGAs implementan típicamente la lógica combinatoria es con LUTs, y cuando el FPGA se configura, simplemente completa los valores de salida de la tabla, que se llaman "Máscara LUT", y está compuesta físicamente por bits de SRAM. Por lo tanto, el mismo LUT físico puede implementar Y=AB y Y=AB', pero la Máscara LUT es diferente, ya que la tabla de verdad es diferente.

También puedes crear tus propias tablas de búsqueda. Por ejemplo, podrías construir una tabla para una función matemática compleja, que funcionaría mucho más rápido que calcular el valor siguiendo un algoritmo. Esta tabla se almacenaría en RAM o ROM.

Esto nos lleva a ver los LUTs simplemente como memoria, donde las entradas son la dirección y las salidas correspondientes son los datos almacenados en la dirección dada.

Aquí tienes una captura de Arquitectura de FPGA por Altera:

descripción de la imagen

30voto

Matt McMinn Puntos 6067

Un LUT de dos entradas (tabla de búsqueda) se puede representar genéricamente de la siguiente manera:

introducir descripción de la imagen aquí

Un LUT consta de un bloque de SRAM indexado por las entradas del LUT. La salida del LUT es el valor que se encuentra en la ubicación indexada en su SRAM.

Aunque normalmente pensamos en la RAM como organizada en palabras de 8, 16, 32 o 64 bits, la SRAM en los FPGA es de 1 bit de profundidad. Por ejemplo, un LUT de 3 entradas utiliza un SRAM de 8x1 (2³=8)

Debido a que la RAM es volátil, el contenido debe inicializarse cuando se enciende el chip. Esto se hace transfiriendo el contenido de la memoria de configuración a la SRAM.

La salida de un LUT puede ser la que tú quieras. Para una compuerta AND de dos entradas,

Dirección de Entrada ([1:0])      Salida

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

Para tu segundo ejemplo, solo cambia la tabla de verdad:

Dirección de Entrada ([1:0])      Salida

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

y finalmente, A xor B:

Dirección de Entrada ([1:0])      Salida

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

Por lo tanto, no es el mismo LUT en cada caso, ya que el LUT define la salida. Obviamente, el número de entradas a un LUT puede ser mucho más que dos.

El LUT en realidad se implementa utilizando una combinación de los bits de la SRAM y un MUX:

Aquí, los bits a lo largo de la parte superior 0 1 0 0 0 1 1 1 representan la salida de la tabla de verdad para este LUT. Las tres entradas al MUX a la izquierda a, b y c seleccionan el valor de salida adecuado.

introducir descripción de la imagen aquí

0 votos

Gracias por eso... Pero estoy recibiendo preguntas muy básicas aquí. ¿Bits de SRAM? Conozco SRAM.. pero ¿bits de SRAM? ¿Memoria de configuración? ¿y podrías explicar cómo se implementarán Y=AB, Y=AB' y Y= A xor B con una LUT de 2 entradas? Sería útil si explicaras con un diagrama a nivel de MUX. Estoy muy agradecido por tu ayuda en la estructura de LUT. ¿Qué es ese R en el diagrama?

0 votos

@MuthuSubramanian He actualizado mi respuesta que debería abordar todas tus preguntas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X