
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

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
PALs and GALs are available only in small sizes, equivalent to a few hundred logic gates. For bigger logic circuits, complex PLDs or CPLDs can be used. These contain the equivalent of several PALs linked by programmable interconnections, all in one integrated circuit. CPLDs can replace thousands, or even hundreds of thousands, of logic gates.
Some CPLDs are programmed using a PAL programmer, but this method becomes inconvenient for devices with hundreds of pins. A second method of programming is to solder the device to its printed circuit board, then feed it with a serial data stream from a personal computer. The CPLD contains a circuit that decodes the data stream and configures the CPLD to perform its specified logic function. Some manufacturers, such as Altera and Atmel (now Microchip), use JTAG to program CPLDs in-circuit from .JAM files.
FPGAs
While PALs were being developed into GALs and CPLDs (all discussed above), a separate stream of development was happening. This type of device is based on gate array technology and is called the field-programmable gate array (FPGA). Early examples of FPGAs are the 82S100 array and 82S105 sequencer, by Signetics, introduced in the late 1970s. The 82S100 was an array of AND terms. The 82S105 also had flip-flop functions.
(Remark: 82S100 and similar ICs from Signetics have PLA structure, AND-plane + OR-plane.)
FPGAs use a grid of logic gates, and once stored, the data doesn't change, similar to that of an ordinary gate array. The term field-programmable means the device is programmed by the customer, not the manufacturer. FPGAs and gate arrays are similar but gate arrays can only be configured at the factory during fabrication.[12][13][14]
FPGAs are usually programmed after being soldered down to the circuit board, in a manner similar to that of larger CPLDs. In most larger FPGAs, the configuration is volatile and must be reloaded into the device whenever power is applied or when different functionality is required. Configuration is typically stored in a configuration PROM, EEPROM or flash memory.[15] EEPROM versions may be in-system programmable (typically via 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 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 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 ) - ↑ Holdsworth, B.; Woods, RC (2003). Diseño de lógica digital (4.ª ed.). Elsevier. ISBN 978-0-7506-4582-9.
- ↑ Manual de datos de semiconductores de Motorola, cuarta edición . Motorola Inc. 1969. pág. IC-73.
- 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ "Semiconductores y circuitos integrados : FPLA". EDN . 20 (13). Boston, MA: Cahners Publishing: 66. 20 de julio de 1975. Comunicado de prensa sobre el módulo lógico programable (PLI) Intersil IM5200. Catorce pines de entrada y 48 terminales de producto. Programación por migración inducida por avalancha. Precio unitario: $37.50.
- ↑ "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).
- ↑ Pellerin, David; Michael Holley (1991). Diseño práctico mediante lógica programable . Prentice-Hall. pág. 15. ISBN 0-13-723834-7.
- ↑ Alford, Roger C. (1989). Guía del diseñador de lógica programable . Howard W. Sams. págs. 67–69 . ISBN 0-672-22575-1
Los 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.
- ↑ 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.
- ↑ 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.
- ↑ Chen, Wai-Kai (3 de octubre de 2018). The VLSI Handbook . CRC Press. ISBN 978-1-4200-0596-7.
- ↑ "Uso de memoria flash para configurar FPGAs" (PDF) . Altera . Consultado el 21 de agosto de 2024 .
- 1 2 Tertulien Ndjountche. "Electrónica digital 2: Circuitos lógicos secuenciales y aritméticos" . 2016. pág. 224.
- 1 2 Clive Maxfield. "Guía del guerrero del diseño para FPGAs" . 2004. pág. 20
- ↑ "Formatos de archivo PLD" . Archivado del original el 24/06/2022.
Enlaces externos
- "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.
- matrices de puertas