Electrónica Digital II Arquitecturas de las Celdas Lógicas Octubre de 2014
Estructura General de los FPLDs Un FPLD típico contiene un número de celdas dispuestas en forma matricial, en las cuales se pueden implementar funciones lógicas. Los recursos de interconexión conectan a las celdas entre sí o con los bloques de entrada y salida.
Estructura General Una celda lógica puede ser tan simple como un transistor o tan compleja como un microprocesador. Con las celdas se va a implementar lógica combinacional o secuencial, de diferentes complejidades. Comercialmente, los FPLDs utilizan celdas lógicas que están basadas en uno o mas de los siguientes elementos: Un par de Transistores. Arreglos de compuertas básicas, como NANDs y XORs de dos entradas. Multiplexores. Tablas de búsqueda (LUTs, Look-up tables). Estructuras AND-OR con muchas entradas.
Granularidad de una Celda Lógica Una celda lógica puede tener: Granularidad fina: La celda contiene pocos transistores y puede implementar solamente simples compuertas. Granularidad gruesa: La celda contiene un número grande de transistores, suficiente para implementar funciones lógicas grandes.
Par de Transistores Los FPGAs de Crosspoint Solutions utilizan un par de transistores como una celda lógica. Dado que los transistores están conectados en renglones, las compuertas se pueden aislar apagando los transistores que las limitan.
Par de Transistores
La Celda Plessey Plessey ofrece un FPGA cuya celda básica consiste de una compuerta NAND de dos entradas Si el latch no es necesario, la configuración lo deja transparente.
La Celda Plessey Por ejemplo, la función f = ab + c se puede implementar con dos compuertas NAND. A B C U1 AND_2 U3 NOT U2 OR_2 f A B C U4 NAND_2 U5 NAND_2 f
Otras Celdas de Grano Fino Algotronix utiliza una celda en donde, con un bloque de dos entradas, con base en multiplexores configurables, se puede realizar cualquier función de dos entradas. Concurrent Logic utiliza una celda que contiene una compuerta AND de dos entradas y una compuerta XOR de dos entradas. Toshiba ofrece un FPGA donde la celda se basa en compuertas NAND de dos entradas.
Celdas de Grano Fino La principal ventaja en el uso de celdas de grano fino es que éstas son completamente utilizadas. Es más fácil usar celdas lógicas pequeñas eficientemente. La principal desventaja es que los FPGAs requieren un número relativamente grande de segmentos de alambre e interruptores programables. Tales recursos de ruteo pueden resultar costosos en área y en el tiempo de respuesta del dispositivo.
Celdas basadas en Mux La familia Act-1 de Actel usa una celda de 8 entradas y una salida la cual contiene tres multiplexores de 2 a 1 y una compuerta OR. En la celda se pueden implementar todas las funciones combinacionales de dos entradas, todas las funciones de tres entradas con, al menos, una entrada positiva, muchas funciones de cuatro entradas y algunas de 5 a 8 entradas. En total se pueden implementar 702 funciones diferentes en la celda Act-1.
Celdas basadas en Mux La función de la celda es: f = (s 3 + s 4 ) (s 1 w + s 1 x)+ (s 3 + s 4 )(s 2 y + s 2 z)
Celdas basadas en Mux Por ejemplo, la función f = ab + c se puede implementar como sigue:
Celdas basadas en Mux f = (s 3 + s 4 ) (s 1 w + s 1 x)+ (s 3 + s 4 )(s 2 y + s 2 z) = (c + 0) (0. 1 + 0. 1)+ (c + 0)(b. 0 + b. a) =c (1 + 0)+ c(0+ ba) = c + cab = c + (c + c) ab = c + 1(ab) = ab+ c
Celdas basadas en Mux La celda lógica de los FPGAs de Quick Logic es similar a la de Actel en que usa tres multiplexores de 2 a 1, pero organizados como un mux de 4 a 1.
Celdas basadas en tablas Las celdas de Xilinx están basadas en el uso de SRAM como tablas de búsqueda (LUT, look-up table). La tabla de verdad para una función lógica de K-entradas está almacenada en una SRAM de 2 K x 1. Las líneas de dirección funcionan como entradas y el dato almacenado en la SRAM proporciona el valor de la función.
XC2000 CLB
XC3000 CLB
XC4000 CLB
Altera Flex 10KE
Granularidad y densidad La función f = abd + bcd + a b c se puede implementar con LUTs de diferentes dimensiones, como sigue: 2-LUT 3-LUT 4-LUT
Granularidad y Bits de Configuración Dado que cada K-LUT requiere de 2 K bits de configuración, La implementación en 2-LUT requiere 2 2 x 7 = 28 bits. En 3-LUT se necesitan 2 3 x 3 = 24 bits. En 4-LUT se requieren sólo 2 4 x 1 = 16 bits. Considerando los bits de configuración como una medida de área (costo en área), la implementación en 4-LUT ocupa un área lógica mínima.
Granularidad y Número de Bloques Lógicos
Granularidad y Retardos de Propagación La función f = abd + abc + acd se puede implementar usando únicamente compuertas NAND de dos entradas, como sigue: La ruta más larga requiere 4 niveles lógicos. Asumiendo un proceso CMOS a 1.2, una NAND de 2-entradas tiene un retardo de 0.7ns. La ruta crítica tiene un retardo de 4 x 0.7 = 2.8ns
Granularidad y Retardos de Propagación La misma función f = abd + abc + acd también se puede implementar usando 3-LUTs como sigue: La ruta más larga requiere 2 niveles lógicos. Asumiendo un proceso CMOS a 1.2, una 3-LUT tiene un retardo de 1.4ns. La ruta crítica tiene un retardo de 2 x 1.4 = 2.8ns
Niveles lógicos y retardos de propagación
LUT 1 Lógica aleatoria en FPGAs Se considera el mapeo de un circuito cualquiera en LUTs de 3 y de 5 entradas. LUT 2 LUT 4 LUT 3 Al incrementar el tamaño de las LUTs (incrementando el número de entradas), el número de LUTs puede ser reducido. Las LUTs son muy convenientes para la realización de lógica aleatoria. LUT 1 LUT 2
Operaciones Aritmeticas en FPGAs LUT 4 Se considera el mapeo de un sumador completo de 2 bits en LUTs de 3 entradas. Son necesarias 4 LUTs. Si se utilizan LUTs con un mayor número de entradas no se reducirá el número de LUTs necesarias para implementar al sumador. Sin un cambio en el número de salidas, se desperdiciarían recursos al emplear LUTs con un mayor número de entradas. LUT 3 LUT 2 LUT 1