stringtranslate.com

Dispositivo lógico programable

Un dispositivo PAL simplificado. Los elementos programables (mostrados como un fusible) conectan las entradas verdaderas y complementarias a las compuertas AND. Estas compuertas AND, también conocidas como términos de producto, se combinan para formar una matriz lógica de suma de productos.

Un dispositivo lógico programable ( PLD ) es un componente electrónico que se utiliza para construir circuitos digitales reconfigurables . A diferencia de la lógica digital construida utilizando puertas lógicas discretas con funciones fijas, la función de un PLD no está definida en el momento de la fabricación. Antes de que el PLD pueda usarse en un circuito, debe programarse para implementar la función deseada. [1] En comparación con los dispositivos lógicos fijos, los dispositivos lógicos programables simplifican el diseño de lógica compleja y pueden ofrecer un rendimiento superior. [2] A diferencia de los microprocesadores , la programación de un PLD cambia las conexiones realizadas entre las puertas del dispositivo.

Los PLD se pueden clasificar en términos generales, en orden creciente de complejidad, en dispositivos lógicos programables simples (SPLD) , que incluyen lógica de matriz programable , matriz lógica programable y lógica de matriz genérica ; dispositivos lógicos programables complejos (CPLD) ; y matrices de puertas programables en campo (FPGA) .

Historia

En 1969, Motorola ofreció el XC157, una matriz de puertas programadas con máscara con 12 puertas y 30 pines de entrada/salida no comprometidos. [3]

En 1970, Texas Instruments desarrolló un circuito integrado programable por máscara basado en la memoria asociativa de solo lectura o ROAM de IBM . Este dispositivo, el TMS2000, se programó alterando la capa de metal durante la producción del circuito integrado. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 flip-flops JK para la memoria. TI acuñó el término matriz lógica programable (PLA) para este dispositivo. [4]

En 1971, General Electric Company (GE) estaba desarrollando un dispositivo lógico programable basado en la nueva tecnología de memoria programable de solo lectura (PROM). Este dispositivo experimental mejoraba el ROAM de IBM al permitir la lógica multinivel. Intel acababa de presentar la EPROM UV de puerta flotante , por lo que el investigador de GE incorporó esa tecnología. El dispositivo de GE fue el primer PLD borrable jamás desarrollado, anterior al EPLD de Altera en más de una década. GE obtuvo varias patentes tempranas sobre dispositivos lógicos programables. [5] [6] [7]

En 1973, National Semiconductor presentó un dispositivo PLA programable por máscara (DM7575) con 14 entradas y 8 salidas sin registros de memoria. Este dispositivo fue más popular que la pieza TI, pero el costo de fabricación de la máscara de metal limitó su uso. El dispositivo es importante porque fue la base para la matriz lógica programable en campo producida por Signetics en 1975, la 82S100. ( De hecho, Intersil superó a Signetics en el mercado, pero el bajo rendimiento condenó a su pieza). [8] [9]

En 1974, GE firmó un acuerdo con Monolithic Memories (MMI) para desarrollar un dispositivo lógico programable por máscara que incorporara las innovaciones de GE. El dispositivo se denominó matriz lógica asociativa programable o PALA. El MMI 5760 se completó en 1976 y podía implementar circuitos multinivel o secuenciales de más de 100 puertas. El dispositivo contaba con el respaldo de un entorno de diseño de GE donde las ecuaciones booleanas se convertían en patrones de máscara para configurar el dispositivo. La pieza nunca se comercializó. [10]

EPL

En 1970, Texas Instruments desarrolló un circuito integrado programable por máscara basado en la memoria asociativa de solo lectura o ROAM de IBM . Este dispositivo, el TMS2000, se programó alterando la capa de metal durante la producción del circuito integrado. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 flip-flops JK para la memoria. TI acuñó el término matriz lógica programable para este dispositivo. [4]

Una matriz lógica programable (PLA) tiene una matriz de compuerta AND programable, que se vincula a una matriz de compuerta OR programable, que luego se puede complementar condicionalmente para producir una salida. Una PLA es similar al concepto de ROM, sin embargo, una PLA no proporciona una decodificación completa de una variable y no genera todos los minitérminos como en una ROM.

CAMARADA

Los dispositivos PAL tienen conjuntos de celdas de transistores dispuestos en un plano "OR fijo, AND programable" que se utiliza para implementar ecuaciones lógicas binarias de "suma de productos" para cada una de las salidas en términos de las entradas y retroalimentación sincrónica o asincrónica de las salidas.

En 1978, MMI introdujo un dispositivo revolucionario: la lógica de matriz programable o PAL. La arquitectura era más sencilla que la del FPLA de Signetics porque omitía la matriz OR programable. Esto hacía que las piezas fueran más rápidas, más pequeñas y más baratas. Estaban disponibles en encapsulados DIP de 20 pines y 300 milésimas de pulgada, mientras que los FPLA venían en encapsulados de 28 pines y 600 milésimas de pulgada. El manual PAL desmitificó el proceso de diseño. El software de diseño PALASM (ensamblador PAL) convirtió las ecuaciones booleanas de los ingenieros en el patrón de fusibles necesario para programar la pieza. Los dispositivos PAL pronto fueron adquiridos por National Semiconductor, Texas Instruments y AMD.

Después de que MMI tuviera éxito con las piezas PAL de 20 pines, AMD presentó la PAL 22V10 de 24 pines con funciones adicionales. Después de comprar MMI (1987), AMD escindió una operación consolidada como Vantis , y ese negocio fue adquirido por Lattice Semiconductor en 1999.

GAL

Lattice GAL 16V8 y 20V8. Son dispositivos de 35 nanosegundos.

Una mejora del PAL fue el dispositivo de lógica de matriz genérica, o GAL, inventado por Lattice Semiconductor en 1985. Este dispositivo tiene las mismas propiedades lógicas que el PAL, pero se puede borrar y reprogramar. El GAL es muy útil en la etapa de creación de prototipos de un diseño, cuando cualquier error en la lógica se puede corregir mediante la reprogramación. Los GAL se programan y reprograman utilizando un programador PAL o, en el caso de los chips que lo admiten, utilizando la técnica de programación en circuito .

Las GAL de red combinan tecnología CMOS y de compuerta flotante borrable eléctricamente (E2 ) para lograr un dispositivo lógico de alta velocidad y bajo consumo. La corporación International CMOS Technology (ICT) presentó un dispositivo similar llamado PEEL (lógica programable borrable eléctricamente).

A veces, los chips GAL se denominan dispositivos lógicos programables simples (SPLD), análogos al dispositivo lógico programable complejo (CPLD) que se detalla a continuación.

CPLD

Los PAL y GAL están disponibles solo en tamaños pequeños, equivalentes a unos pocos cientos de puertas lógicas. Para circuitos lógicos más grandes, se pueden utilizar PLD o CPLD complejos. Estos contienen el equivalente a varios PAL vinculados mediante interconexiones programables, todo en un circuito integrado . Los CPLD pueden reemplazar miles, o incluso cientos de miles, de puertas lógicas.

Algunos CPLD se programan utilizando un programador PAL, pero este método resulta incómodo para dispositivos con cientos de pines. Un segundo método de programación consiste en soldar el dispositivo a su placa de circuito impreso y luego alimentarlo con un flujo de datos en serie desde una computadora personal. El CPLD contiene un circuito que decodifica el flujo de datos y configura el CPLD para realizar su función lógica especificada. Algunos fabricantes, como Altera y Atmel (ahora Microchip) , utilizan JTAG para programar CPLD en circuito a partir de archivos .JAM .

FPGA

Mientras que los PAL se estaban desarrollando para convertirse en GAL y CPLD (todos ellos analizados anteriormente), se estaba produciendo una corriente de desarrollo independiente. Este tipo de dispositivo se basa en la tecnología de matriz de puertas y se denomina matriz de puertas programables en campo (FPGA). Los primeros ejemplos de FPGA son la matriz 82S100 y el secuenciador 82S105 de Signetics, presentado a finales de la década de 1970. El 82S100 era una matriz de términos AND. El 82S105 también tenía funciones flip-flop.

(Observación: los circuitos integrados 82S100 y similares de Signetics tienen estructura PLA, plano AND + plano OR).

Los FPGA utilizan una red de puertas lógicas y, una vez almacenados, los datos no cambian, de forma similar a lo que ocurre con una matriz de puertas normal. El término programable en campo significa que el dispositivo lo programa el cliente, no el fabricante. Los FPGA y las matrices de puertas son similares, pero las matrices de puertas solo se pueden configurar en la fábrica durante la fabricación. [11] [12] [13]

Los FPGAs se suelen programar después de soldarlos a la placa de circuitos, de forma similar a los CPLD más grandes. En la mayoría de los FPGAs más grandes, la configuración es volátil y debe volver a cargarse en el dispositivo cada vez que se aplica energía o se requiere una funcionalidad diferente. La configuración se almacena normalmente en una PROM de configuración , EEPROM o memoria flash. [14] Las versiones de EEPROM pueden programarse en el sistema (normalmente a través de JTAG ).

La diferencia entre los FPGA y los CPLD es que los FPGA se basan internamente en tablas de búsqueda (LUT), mientras que los CPLD forman las funciones lógicas con un mar de puertas (por ejemplo, suma de productos ). Los CPLD están pensados ​​para diseños más simples, mientras que los FPGA están pensados ​​para diseños más complejos. En general, los CPLD son una buena opción para aplicaciones de lógica combinacional amplias , mientras que los FPGA son más adecuados para máquinas de estados grandes, como los microprocesadores .

EPLD

Un EPLD de Cypress en un paquete PLCC

Utilizando la misma tecnología que las EPROM , las EPLD tienen una ventana de cuarzo en el paquete que permite borrarlas al exponerlas a la luz ultravioleta. [15] [16]

Utilizando la misma tecnología que las EEPROM , las EEPLD se pueden borrar eléctricamente. [15] [16]

Un dispositivo lógico programable borrable ( EPLD ) es un circuito integrado que comprende una matriz de PLD que no vienen preconectados; las conexiones son programadas eléctricamente por el usuario. La mayoría de los dispositivos GAL y FPGA son ejemplos de EPLD. [ cita requerida ]

Otras variantes

Se trata de circuitos de microprocesadores que contienen algunas funciones fijas y otras funciones que pueden modificarse mediante código que se ejecuta en el procesador. El diseño de sistemas que se modifican automáticamente requiere que los ingenieros aprendan nuevos métodos y que se desarrollen nuevas herramientas de software.

En la actualidad, se comercializan dispositivos PLD que contienen un microprocesador con una función fija (el llamado núcleo ) rodeado de lógica programable. Estos dispositivos permiten a los diseñadores concentrarse en agregar nuevas funciones a los diseños sin tener que preocuparse por hacer que el microprocesador funcione. Además, el microprocesador de función fija ocupa menos espacio en el chip que una parte de la matriz de puertas programables que implementa el mismo procesador, lo que deja más espacio para que la matriz de puertas programables contenga los circuitos especializados del diseñador.

Cómo los PLD conservan su configuración

Un PLD es una combinación de un dispositivo lógico y un dispositivo de memoria . La memoria se utiliza para almacenar el patrón que se le dio al chip durante la programación. La mayoría de los métodos para almacenar datos en un circuito integrado se han adaptado para su uso en PLD. Entre ellos se incluyen:

Los antifusibles de silicio son conexiones que se realizan aplicando un voltaje a través de un área modificada de silicio dentro del chip. Se denominan antifusibles porque funcionan de manera opuesta a los fusibles normales, que comienzan como conexiones hasta que se rompen por una corriente eléctrica.

La SRAM, o RAM estática, es un tipo de memoria volátil, lo que significa que su contenido se pierde cada vez que se apaga el sistema. Por lo tanto, los PLD basados ​​en SRAM deben programarse cada vez que se enciende el circuito. Esto normalmente lo hace automáticamente otra parte del circuito.

Una celda de memoria EPROM es un MOSFET (transistor de efecto de campo semiconductor de óxido metálico o transistor MOS) que se puede activar atrapando una carga eléctrica de forma permanente en su electrodo de compuerta. Esto lo hace un programador PAL. La carga permanece durante muchos años y solo se puede eliminar exponiendo el chip a una luz ultravioleta intensa en un dispositivo llamado borrador de EPROM.

La memoria flash no es volátil y conserva su contenido incluso cuando se apaga la alimentación. Se almacena en celdas de memoria MOSFET de compuerta flotante y se puede borrar y reprogramar según sea necesario. Esto la hace útil en los PLD que se pueden reprogramar con frecuencia, como los PLD utilizados en prototipos. La memoria flash es un tipo de EEPROM que almacena información mediante cargas eléctricas atrapadas de forma similar a la EPROM. En consecuencia, la memoria flash puede almacenar información durante años, pero posiblemente no tantos como la EPROM.

A partir de 2005, la mayoría de los CPLD son programables y borrables eléctricamente y no volátiles. Esto se debe a que son demasiado pequeños para justificar la incomodidad de programar las celdas SRAM internas cada vez que se inician, y las celdas EPROM son más caras debido a su encapsulado cerámico con una ventana de cuarzo.

Lenguajes de programación PLD

Muchos dispositivos de programación PAL aceptan entradas en un formato de archivo estándar, comúnmente denominado " archivos JEDEC ". Son análogos a los compiladores de software . Los lenguajes utilizados como código fuente para los compiladores lógicos se denominan lenguajes de descripción de hardware o HDL. [1]

PALASM , ABEL y CUPL se utilizan con frecuencia para dispositivos de baja complejidad, mientras que Verilog y VHDL son lenguajes de descripción de alto nivel populares para dispositivos más complejos. El lenguaje ABEL, más limitado, se utiliza con frecuencia por razones históricas, pero para los nuevos diseños, VHDL es más popular, incluso para los de baja complejidad.

Para conocer lenguajes de programación PLD modernos, flujos de diseño y herramientas, consulte FPGA y computación reconfigurable .

Dispositivos de programación PLD

Un programador de dispositivos se utiliza para transferir el patrón lógico booleano al dispositivo programable. En los primeros días de la lógica programable, cada fabricante de PLD también producía un programador de dispositivos especializado para su familia de dispositivos lógicos. Más tarde, aparecieron en el mercado programadores de dispositivos universales que admitían varias familias de dispositivos lógicos de diferentes fabricantes. Los programadores de dispositivos actuales suelen poder programar PLD comunes (en su mayoría equivalentes PAL/GAL) de todos los fabricantes existentes. Los formatos de archivo comunes utilizados para almacenar el patrón lógico booleano (fuses) son JEDEC, Altera POF (archivo de objeto programable) o Xilinx BITstream. [17]

Véase también

Referencias

  1. ^ ab Horowitz, Paul; Hill, Winfield (2015). Horowitz P., Hill W. - El arte de la electrónica . Nueva York. p. 764. ISBN 978-0-521-80926-9.{{cite book}}: CS1 maint: location missing publisher (link)
  2. ^ Holdsworth, B.; Woods, RC (2003). Diseño de lógica digital (4.ª edición). Elsevier. ISBN 978-0-7506-4582-9.
  3. ^ Motorola Semiconductor Data Book, cuarta edición . Motorola Inc. 1969. pág. IC-73.
  4. ^ ab Andres, Kent (octubre de 1970). Informe de aplicación de Texas Instruments: matrices lógicas programables MOS . Texas Instruments. Boletín CA-158.El informe presenta las series TMS2000 y TMS2200 de PLA programables con máscara.
  5. ^ Greer, David L. Circuitos lógicos programables eléctricamente Patente estadounidense 3.818.452. Cesionario: General Electric, presentada: 28 de abril de 1972, concedida: 18 de junio de 1974
  6. ^ Greer, David L. Circuitos lógicos asociativos de múltiples niveles Patente estadounidense 3.816.725. Cesionario: General Electric, presentada: 28 de abril de 1972, concedida: 11 de junio de 1974
  7. ^ Greer, David L. Circuitos lógicos asociativos segmentados Patente estadounidense 3.849.638. Cesionario: General Electric, presentada: 18 de julio de 1973, concedida: 19 de noviembre de 1974
  8. ^ "Semiconductores y circuitos integrados: FPLA". EDN . 20 (13). Boston, MA: Cahners Publishing: 66. 20 de julio de 1975.Nota de prensa sobre la matriz lógica programable en campo Intersil IM5200. Catorce pines de entrada y 48 términos de producto. Programación de migración inducida por avalancha. El precio unitario fue de $37,50
  9. ^ "FPLA ofrece una lógica personalizada rápida". EDN . 20 (13). Boston, MA: Cahners Publishing: 61. 20 de julio de 1975.Nota de prensa sobre las matrices lógicas programables en campo 82S100 y 82S101 de Signetics. Catorce pines de entrada, ocho pines de salida y cuarenta y ocho términos de producto. Programación de fusibles de NiCr.
  10. ^ Pellerin, David; Michael Holley (1991). Diseño práctico mediante lógica programable . Prentice-Hall. pág. 15. ISBN 0-13-723834-7.
  11. ^ Dorf, Richard C. (3 de octubre de 2018). Electrónica, electrónica de potencia, optoelectrónica, microondas, electromagnetismo y radar. CRC Press. ISBN 978-1-4200-0315-4.
  12. ^ Vahid, Frank; Givargis, Tony D. (17 de octubre de 2001). Diseño de sistemas integrados: una introducción unificada al hardware y al software. John Wiley & Sons. ISBN 978-0-471-38678-0.
  13. ^ Chen, Wai-Kai (3 de octubre de 2018). Manual de VLSI. CRC Press. ISBN 978-1-4200-0596-7.
  14. ^ "Uso de memoria flash para configurar FPGAs" (PDF) . Altera . Consultado el 21 de agosto de 2024 .
  15. ^ por Tertulien Ndjountche. "Electrónica digital 2: circuitos lógicos secuenciales y aritméticos". 2016. pág. 224.
  16. ^ de Clive Maxfield. "Guía del guerrero del diseño para FPGA". 2004. pág. 20
  17. ^ Formatos de archivos PLD

Enlaces externos