¿Qué es un LUT en FPGA?


24

He pasado por varias fuentes ... Pero no estoy muy seguro de qué es. Quiero una puerta y el equivalente lógico es dos entradas que se alimentan a una puerta y para Y = AB 'el equivalente lógico es la alimentación a una puerta no y uno y puerta. Pero es la misma LUT para AND e Y = AB '. Creo que almacenamos los valores deseados en la LUT. Alguien elaborado sobre esto


2
¿Alguna razón por la que no has aceptado una respuesta?
Ellen Spertus

Respuestas:


37

Una LUT , que significa tabla de búsqueda , en términos generales es básicamente una tabla que determina cuál es la salida para cualquier entrada dada. En el contexto de la lógica combinacional, es la tabla de verdad . Esta tabla de verdad define efectivamente cómo se comporta su lógica combinatoria.

En otras palabras, cualquier comportamiento que obtenga al interconectar cualquier número de compuertas (como AND, NOR, etc.), sin rutas de retroalimentación (para garantizar que no tenga estado), puede implementarse mediante una LUT.

La forma en que los FPGA implementan típicamente la lógica combinatoria es con LUT, y cuando el FPGA se configura, simplemente completa los valores de salida de la tabla, que se denominan "Máscara LUT", y está compuesto físicamente por bits SRAM. Entonces, la misma LUT física puede implementar Y = AB e Y = AB ', pero la LUT-Mask es diferente, ya que la tabla de verdad es diferente.

También puede crear sus propias tablas de búsqueda. Por ejemplo, podría 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 las LUT simplemente como memoria, donde las entradas son la dirección, y las salidas correspondientes son los datos almacenados en la dirección dada.

Aquí hay una instantánea de FPGA Architecture de Altera:

ingrese la descripción de la imagen aquí


23

Una LUT de dos entradas (tabla de búsqueda) se puede representar genéricamente de esta manera:

ingrese la descripción de la imagen aquí

Una LUT consiste en un bloque de SRAM que está indexado por las entradas de la LUT. La salida de la LUT es cualquier valor que esté en la ubicación indexada en su SRAM.

Aunque pensamos que RAM normalmente se organiza en palabras de 8, 16, 32 o 64 bits, SRAM en FPGA tiene 1 bit de profundidad. Entonces, por ejemplo, una LUT de 3 entradas usa una SRAM 8x1 (2³ = 8)

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

La salida de un LUT es lo que quieras que sea. Para una puerta AND de dos entradas,

Address In ([1:0])      Output

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

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

Address In ([1:0])      Output

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

y finalmente, A xor B:

Address In ([1:0])      Output

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

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

La LUT se implementa realmente usando una combinación de los bits SRAM y un MUX:

Aquí los bits en 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, byc seleccionan el valor de salida apropiado.

ingrese la descripción de la imagen aquí


Gracias por eso ... Pero estoy recibiendo preguntas muy básicas aquí. Bits SRAM? Sé SRAM ... pero bits SRAM? Memoria de configuración? y ¿podría explicar cómo se implementarán Y = AB, Y = AB 'e Y = A xor B con una LUT de 2 entradas? ¿Sería útil explicarlo con un diagrama de nivel MUX? Estoy muy agradecido por su ayuda en la estructura de LUT. ¿Cuál es esa R en el diagrama?>
Muthu Subramanian

@MuthuSubramanian He actualizado mi respuesta que debe abordar todas sus preguntas.
tcrosley
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.