Articulo de referencia

Dispositivo lógico programable

Un dispositivo lógico de matriz programable simplificado . Los elementos programables (representados como un fusible) conectan las entradas verdadera y complementada a las compu...

Un dispositivo lógico de matriz programable simplificado . Los elementos programables (representados como un fusible) conectan las entradas verdadera y complementada a las compuertas AND . Estas compuertas AND, también conocidas como términos de producto, se combinan mediante una operación OR 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 con compuertas lógicas discretas de funciones fijas, la función de un PLD no está definida en el momento de su fabricación. Antes de que el PLD pueda utilizarse 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 modifica las conexiones entre las compuertas del dispositivo.

Los PLD se pueden clasificar a grandes rasgos, en orden creciente de complejidad, en dispositivos lógicos programables simples (SPLD) , que comprenden 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 programable por 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 (ROAM) de IBM . Este dispositivo, el TMS2000, se programaba modificando la capa metálica durante su fabricación. El TMS2000 contaba con hasta 17 entradas y 18 salidas, con 8 biestables 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 de solo lectura programable (PROM). Este dispositivo experimental mejoró el ROAM de IBM al permitir 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 dispositivo lógico programable 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 el de TI, pero el costo de fabricación de la máscara metálica limitó su uso. El dispositivo es importante porque fue la base del arreglo lógico programable en campo (FPGA) producido por Signetics en 1975, el 82S100. ( Intersil llegó al mercado antes que Signetics, pero su bajo rendimiento condenó su participación). [ 8 ] [ 9 ]

En 1974, GE firmó un acuerdo con Monolithic Memories (MMI) para desarrollar un dispositivo lógico programable mediante 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 compuertas. El dispositivo contaba con el soporte de un entorno de diseño de GE donde las ecuaciones booleanas se convertían en patrones de máscara para su configuración. El componente nunca llegó a comercializarse. [ 10 ]

Tecnologías

PLA

En 1970, Texas Instruments desarrolló un circuito integrado programable por máscara basado en la memoria asociativa de solo lectura (ROAM) de IBM . Este dispositivo, el TMS2000, se programaba modificando la capa metálica durante su fabricación. El TMS2000 contaba con hasta 17 entradas y 18 salidas, con 8 biestables JK para la memoria. TI acuñó el término matriz lógica programable para este dispositivo. [ 4 ]

Una matriz lógica programable (PLA) consta de una matriz de puertas AND programables, que se conecta a una matriz de puertas OR programables, las cuales pueden complementarse condicionalmente para generar una salida. Una PLA es similar al concepto de una ROM; sin embargo, no proporciona la decodificación completa de una variable ni genera todos los minitérminos como una ROM.

El secuenciador lógico programable (PLS/FPLS) es similar a un PLA, pero con salidas registradas integrales que utilizan varios flip-flops para permitir la creación de algunas máquinas de estados . Signetics introdujo el primer FPLS en 1979. [ 11 ]

CAMARADA

Los dispositivos PAL cuentan con conjuntos de celdas de transistores dispuestas en un plano de "OR fijo, AND programable" que se utiliza para implementar ecuaciones lógicas binarias de "suma de productos" para cada una de las salidas en función de las entradas y la retroalimentación síncrona o asíncrona de las salidas.

MMI presentó en 1978 un dispositivo revolucionario: la lógica de matriz programable (PAL). Su arquitectura era más sencilla que la de la FPLA de Signetics, ya que prescindía de la matriz OR programable. Esto permitió fabricar componentes más rápidos, pequeños y económicos. Estaban disponibles en encapsulados DIP de 20 pines y 300 milésimas de pulgada, mientras que las FPLA venían en encapsulados de 28 pines y 600 milésimas de pulgada. El Manual PAL simplificó el proceso de diseño. El software de diseño PALASM (ensamblador PAL) convertía las ecuaciones booleanas de los ingenieros en el patrón de fusibles necesario para programar el componente. Los dispositivos PAL pronto fueron adoptados como proveedores secundarios por National Semiconductor, Texas Instruments y AMD.

Tras el éxito de MMI con los chips PAL de 20 pines, AMD presentó el chip PAL 22V10 de 24 pines con características adicionales. Después de adquirir MMI (1987), AMD escindió una operación consolidada llamada Vantis , y ese negocio fue adquirido por Lattice Semiconductor en 1999.

Gales

Lattice GAL 16V8 y 20V8. Se trata de dispositivos de 35 nanosegundos.

Una mejora del PAL fue el dispositivo lógico de matriz genérica (GAL), inventado por Lattice Semiconductor en 1985. Este dispositivo posee las mismas propiedades lógicas que el PAL, pero puede borrarse y reprogramarse. El GAL resulta muy útil en la fase de prototipado de un diseño, ya que permite corregir cualquier error lógico mediante la reprogramación. Los GAL se programan y reprograman utilizando un programador PAL o, en el caso de chips compatibles, mediante la técnica de programación en circuito .

Los GAL de celosía combinan la tecnología CMOS y la tecnología de compuerta flotante borrable eléctricamente (E2 ) para crear un dispositivo lógico de alta velocidad y bajo consumo. Un dispositivo similar, denominado PEEL (lógica programable borrable eléctricamente), fue presentado por la corporación International CMOS Technology (ICT).

En ocasiones, un chip GAL se denomina dispositivo lógico programable simple (SPLD), complementario a un dispositivo lógico programable complejo (CPLD) que se describe a continuación.

CPLD

Los PAL y GAL solo están disponibles en tamaños pequeños, equivalentes a unos pocos cientos de puertas lógicas. Para circuitos lógicos más grandes, se pueden usar PLD o CPLD complejos. Estos contienen el equivalente a varios PAL conectados 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 con un programador PAL, pero este método resulta poco práctico 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 alimentarlo con un flujo de datos serie desde un ordenador personal. El CPLD contiene un circuito que decodifica el flujo de datos y lo configura para realizar la 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 .

FPGAs

Mientras los PAL se desarrollaban en GAL y CPLD (todos mencionados anteriormente), se desarrollaba otra línea de desarrollo. Este tipo de dispositivo se basa en la tecnología de matrices 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, presentados a finales de la década de 1970. El 82S100 era una matriz de términos AND. El 82S105 también incluía funciones de biestable.

(Nota: Los circuitos integrados 82S100 y similares de Signetics tienen una estructura PLA, con un plano AND y un plano OR).

Los FPGA utilizan una cuadrícula de puertas lógicas y, una vez almacenados, los datos no cambian, de forma similar a un conjunto de puertas lógicas convencional. El término programable en campo significa que el dispositivo es programado por el cliente, no por el fabricante. Los FPGA y los conjuntos de puertas lógicas son similares, pero estos últimos solo pueden configurarse en fábrica durante su fabricación. [ 12 ] [ 13 ] [ 14 ]

Los FPGA se programan generalmente después de soldarlos a la placa de circuito impreso, de forma similar a como se hace con los CPLD de mayor tamaño. En la mayoría de los FPGA de mayor tamaño, la configuración es volátil y debe recargarse en el dispositivo cada vez que se aplica energía o cuando se requiere una funcionalidad diferente. La configuración se almacena normalmente en una PROM de configuración , una EEPROM o una memoria flash. [ 15 ] Las versiones de EEPROM pueden ser programables en el sistema (normalmente mediante JTAG ).

La diferencia entre las FPGA y las CPLD radica en que las FPGA se basan internamente en tablas de búsqueda (LUT), mientras que las CPLD implementan las funciones lógicas mediante conjuntos de compuertas lógicas (por ejemplo, suma de productos ). Las CPLD están diseñadas para diseños más sencillos, mientras que las FPGA lo están para diseños más complejos. En general, las CPLD son una buena opción para aplicaciones de lógica combinacional extensas , mientras que las FPGA son más adecuadas para máquinas de estados grandes , como los microprocesadores .

Otras variantes

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

Actualmente 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 añadir nuevas funcionalidades a los diseños sin tener que preocuparse por el funcionamiento del microprocesador. 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. Estos 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 forma opuesta a los fusibles normales, que permanecen conectados hasta que una corriente eléctrica los interrumpe.

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

Una celda de memoria EPROM es un MOSFET (transistor de efecto de campo de metal-óxido-semiconductor, o transistor MOS) que se activa al retener una carga eléctrica de forma permanente en su electrodo de puerta. Esto se logra mediante un programador PAL. La carga permanece durante muchos años y solo se puede eliminar exponiendo el chip a luz ultravioleta intensa en un dispositivo llamado borrador de EPROM.

La memoria flash es no volátil y conserva su contenido incluso cuando se interrumpe la alimentación. Se almacena en celdas de memoria MOSFET de puerta flotante y puede borrarse y reprogramarse según sea necesario. Esto la hace útil en PLD que se reprograman con frecuencia, como los 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. Por consiguiente, la memoria flash puede almacenar información durante años, aunque posiblemente no tantos como la EPROM.

En 2005, la mayoría de los CPLD eran programables y borrables eléctricamente, y no volátiles. Esto se debe a que su pequeño tamaño no justifica 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 ventana de cuarzo.

EPLD

Un EPLD de Cypress en un paquete PLCC

Un dispositivo lógico programable borrable ( EPLD ) es un circuito integrado que comprende una matriz de dispositivos lógicos programables (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 o EEPLD.

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

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

Lenguajes de programación PLD

Muchos dispositivos de programación PAL aceptan entrada en un formato de archivo estándar, comúnmente conocido como « 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 usa a menudo por razones históricas, pero para diseños nuevos, VHDL es más popular, incluso para diseños de baja complejidad.

Para obtener información sobre lenguajes de programación, flujos de diseño y herramientas modernas para PLD, 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 inicios 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. Posteriormente, 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 (principalmente equivalentes a PAL/GAL) de todos los fabricantes existentes. Los formatos de archivo comunes utilizados para almacenar el patrón lógico booleano (fusibles) son JEDEC, Altera POF (archivo de objeto programable) o Xilinx BITstream. [ 18 ]

Véase también

Referencias

  1. 1 2 Horowitz, Paul; Hill, Winfield (2015). Horowitz P., Hill W. - El arte de la electrónica . Nueva York. pág.  764. ISBN 978-0-521-80926-9.{{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  2. Holdsworth, B.; Woods, RC (2003). Diseño de lógica digital (4.ª ed.). Elsevier. ISBN  978-0-7506-4582-9.
  3. Manual de datos de semiconductores de Motorola, cuarta edición . Motorola Inc. 1969. pág. IC-73. 
  4. 1 2 Andres, Kent (octubre de 1970). Un informe de aplicación de Texas Instruments: matrices lógicas programables MOS . Texas Instruments. Boletín CA-158.Este informe presenta las series TMS2000 y TMS2200 de láseres de plasma programables mediante máscara.
  5. Greer, David L. Circuitos lógicos programables eléctricamente . Patente estadounidense 3,818,452 . Titular: General Electric. Fecha de presentación: 28 de abril de 1972. Fecha de concesión: 18 de junio de 1974.
  6. Greer, David L. Circuitos lógicos asociativos de múltiples niveles . Patente estadounidense 3,816,725 . Titular: 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 . Titular: General Electric. Fecha de presentación: 18 de julio de 1973. Fecha de concesión: 19 de noviembre de 1974.
  8. "Semiconductores y circuitos integrados : FPLA". EDN . 20 (13). Boston, MA: Cahners Publishing: 66. 20 de julio de 1975. Comunicado de prensa sobre el controlador lógico programable (PLC) Intersil IM5200. Catorce pines de entrada y 48 terminales de producto. Programación por migración inducida por avalancha. Precio unitario: $37.50.
  9. "FPLA proporciona lógica personalizada rápida". EDN . 20 (13). Boston, MA: Cahners Publishing: 61. 20 de julio de 1975.Comunicado de prensa sobre los microcontroladores lógicos programables (PLI) Signetics 82S100 y 82S101. Cuentan con catorce pines de entrada, ocho pines de salida y 48 terminales de producto. Programación mediante fusibles de níquel-cromo (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. Alford, Roger C. (1989). Guía del diseñador de lógica programable . Howard W. Sams. págs. 67–69 . ISBN  0-672-22575-1Los registros pueden configurarse de forma dinámica o permanente como biestables D, JK o T, gracias a la flexibilidad que ofrece la inclusión de los inversores "M" (M 0 -M 5 ) . Las salidas de los registros se realimentan a la matriz AND antes de llegar a los búferes de salida triestado, lo que permite el desarrollo de máquinas de estados de Mealy y Moore.
  12. 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.
  13. Vahid, Frank; Givargis, Tony D. (17 de octubre de 2001). Diseño de sistemas embebidos: una introducción unificada al hardware y al software . John Wiley & Sons. ISBN 978-0-471-38678-0.
  14. Chen, Wai-Kai (3 de octubre de 2018). The VLSI Handbook . CRC Press. ISBN 978-1-4200-0596-7.
  15. "Uso de memoria flash para configurar FPGAs" (PDF) . Altera . Consultado el 21 de agosto de 2024 .
  16. 1 2 Tertulien Ndjountche. "Electrónica digital 2: Circuitos lógicos secuenciales y aritméticos" . 2016. pág. 224.
  17. 1 2 Clive Maxfield. "Guía del guerrero del diseño para FPGAs" . 2004. pág. 20
  18. "Formatos de archivo PLD" . Archivado del original el 24/06/2022.
  • "Herramientas PLD para la creación de formatos SVF, JAM, STAPL y otros" . JTAG / boundary-scan . Corelis. 1 de diciembre de 2010. Archivado del original el 18 de marzo de 2012. Consultado el 18 de julio de 2011 .
  • "FPGA y CPLD" . Lattice Semiconductor.