Articulo de referencia

Lógica de matriz programable

MMI 16R6 en encapsulado DIP de 20 pines AMD 22V10 en encapsulado DIP de 24 pines La lógica de matriz programable ( PAL ) es una familia de semiconductores de dispositivos lógico...

MMI 16R6 en encapsulado DIP de 20 pines
AMD 22V10 en encapsulado DIP de 24 pines

La lógica de matriz programable ( PAL ) es una familia de semiconductores de dispositivos lógicos programables que se utilizan para implementar funciones lógicas en circuitos digitales , introducida por Monolithic Memories , Inc. (MMI) en marzo de 1978. [ 1 ] MMI obtuvo una marca registrada del término PAL para su uso en "circuitos lógicos semiconductores programables". La marca registrada pertenece actualmente a Lattice Semiconductor . [ 2 ]

Los dispositivos PAL constaban de un pequeño núcleo PROM (memoria de solo lectura programable) y lógica de salida adicional utilizada para implementar funciones lógicas específicas con pocos componentes.

Mediante máquinas especializadas, los dispositivos PAL eran "programables en campo". Los PAL estaban disponibles en varias variantes:

  • Los dispositivos " programables una sola vez " (OTP) no podían actualizarse ni reutilizarse después de la programación inicial. (MMI también ofrecía una familia similar llamada HAL, o "lógica de matriz dura", que eran como los dispositivos PAL, excepto que se programaban mediante máscara en la fábrica).
  • Las versiones borrables con luz ultravioleta (por ejemplo, PALCxxxxx, por ejemplo, PALC22V10) tenían una ventana de cuarzo sobre el chip y podían borrarse para su reutilización con una fuente de luz ultravioleta, al igual que una EPROM .
  • Las versiones posteriores (PALCExxx, por ejemplo, PALCE22V10) eran dispositivos con memoria flash borrable.

En la mayoría de las aplicaciones, los GAL borrables eléctricamente se utilizan ahora como sustitutos directos compatibles con los pines de los PAL programables una sola vez.

Historia

Antes de la introducción de los PAL, los diseñadores de circuitos lógicos digitales utilizaban componentes de integración a pequeña escala (SSI), como los de la familia TTL ( lógica transistor-transistor ) de la serie 7400. Esta familia incluía diversos bloques lógicos, como puertas lógicas ( NOT , NAND , NOR , AND , OR ), multiplexores (MUX) y demultiplexores (DEMUX), biestables (tipo D, JK, etc.) y otros. Un dispositivo PAL solía reemplazar docenas de estos paquetes lógicos "discretos", por lo que el negocio de SSI decayó a medida que el de PAL despegaba. Los PAL se utilizaron con éxito en numerosos productos, como minicomputadoras , tal como se documenta en el libro superventas de Tracy Kidder , *The Soul of a New Machine *.

Los PAL no fueron los primeros dispositivos lógicos programables comerciales; Signetics ya vendía su matriz lógica programable en campo (FPLA) desde 1975. Estos dispositivos eran completamente desconocidos para la mayoría de los diseñadores de circuitos y se consideraban demasiado difíciles de usar. La FPLA tenía una velocidad máxima de operación relativamente lenta (debido a que incluía matrices AND y OR programables), era costosa y tenía mala reputación en cuanto a facilidad de prueba. Otro factor que limitaba la aceptación de la FPLA era su gran tamaño: un paquete DIP (Dual In-line Package ) de 28 pines y 600 milésimas de pulgada (0,6 pulgadas o 15,24  mm) de ancho .

El proyecto para crear el dispositivo PAL fue dirigido por John Birkner y el circuito PAL real fue diseñado por HT Chua . [ 3 ] En un trabajo anterior (en el fabricante de minicomputadoras Computer Automation ), Birkner había desarrollado un procesador de 16 bits utilizando 80 dispositivos lógicos estándar. Su experiencia con la lógica estándar lo llevó a creer que los dispositivos programables por el usuario serían más atractivos si los dispositivos se diseñaban para reemplazar la lógica estándar. Esto significaba que los tamaños de los paquetes tenían que ser más típicos de los dispositivos existentes, y las velocidades tenían que mejorarse. MMI pretendía que los PAL fueran una pieza de costo relativamente bajo (menos de $3). Sin embargo, la empresa inicialmente tuvo graves problemas de rendimiento de fabricación y tuvo que vender los dispositivos por más de $50. Esto amenazó la viabilidad del PAL como producto comercial, y MMI se vio obligada a licenciar la línea de productos a National Semiconductor. Los PAL fueron " segundo proveedor " por Texas Instruments y Advanced Micro Devices .

Tecnologías de proceso

Los primeros PAL eran componentes DIP de 20 pines fabricados en silicio utilizando tecnología de transistores bipolares con fusibles de programación de titanio-tungsteno programables una sola vez (OTP). [ 4 ] Los dispositivos posteriores fueron fabricados por Cypress , Lattice Semiconductor y Advanced Micro Devices utilizando tecnología CMOS .

Los PAL originales de 20 y 24 pines fueron denominados por MMI como dispositivos de integración a escala media (MSI).

Arquitectura PAL

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 .

La arquitectura PAL consta de dos componentes principales: un plano lógico y macroceldas lógicas de salida.

Plano lógico programable

El plano lógico programable es una matriz de memoria de solo lectura programable (PROM) que permite que las señales presentes en los pines del dispositivo, o los complementos lógicos de esas señales, se enruten a las macroceldas lógicas de salida.

Los dispositivos PAL tienen 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.

lógica de salida

Los primeros PAL de 20 pines tenían 10 entradas y 8 salidas. Las salidas eran activas en bajo y podían ser registradas o combinacionales. Los miembros de la familia PAL estaban disponibles con diversas estructuras de salida llamadas " macroceldas lógicas de salida " u OLMC. Antes de la introducción de la serie "V" (de "variable"), los tipos de OLMC disponibles en cada PAL eran fijos en el momento de la fabricación. (El PAL16L8 tenía 8 salidas combinacionales y el PAL16R8 tenía 8 salidas registradas. El PAL16R6 tenía 6 salidas registradas y 2 combinacionales, mientras que el PAL16R4 tenía 4 de cada una). Cada salida podía tener hasta 8 términos de producto (efectivamente, puertas AND); sin embargo, las salidas combinacionales usaban uno de los términos para controlar un búfer de salida bidireccional. Había otras combinaciones que tenían menos salidas con más términos de producto por salida y estaban disponibles con salidas activas en alto (serie "H"). [ 5 ] : 1–14 La serie de dispositivos "X" tenía una puerta XOR antes del registro. [ 5 ] : 1–9 También había versiones similares de 24 pines de estos PAL.

Esta estructura de salida fija a menudo frustraba a los diseñadores que intentaban optimizar la utilidad de los dispositivos PAL porque sus aplicaciones requerían estructuras de salida de diferentes tipos. (Por ejemplo, no se podían obtener 5 salidas registradas con 3 salidas combinacionales activas en alto). Así, en junio de 1983, AMD presentó el 22V10, un dispositivo de 24 pines con 10 macroceldas lógicas de salida. [ 6 ] Cada macrocelda podía ser configurada por el usuario como combinacional o registrada, activa en alto o activa en bajo. El número de términos de producto asignados a una salida variaba de 8 a 16. Este único dispositivo podía reemplazar a todos los dispositivos PAL de función fija de 24 pines. Los miembros de la serie PAL "V" ("variable") incluían el PAL16V8, el PAL20V8 y el PAL22V10.

Programación de PALs

Los PAL se programaban eléctricamente mediante patrones binarios (en formato ASCII / hexadecimal de JEDEC ) y un sistema de programación electrónica especial disponible tanto del fabricante como de un tercero, como DATA I/O . Además de los programadores de dispositivos individuales, se solían utilizar alimentadores de dispositivos y programadores en grupo cuando era necesario programar varios PAL. (Para grandes volúmenes, los costes de programación eléctrica podían eliminarse haciendo que el fabricante fabricara una máscara metálica personalizada para programar los patrones de los clientes durante la fabricación; MMI utilizaba el término " lógica de matriz dura " (HAL) para referirse a los dispositivos programados de esta manera).

Lenguajes de programación (por orden cronológico de aparición)

Diseño PALASM de un contador de 4 bits

Aunque algunos ingenieros programaban los dispositivos PAL editando manualmente archivos que contenían los datos del patrón de fusibles binarios, la mayoría optó por diseñar su lógica utilizando un lenguaje de descripción de hardware (HDL) como ABEL de Data I/O , CUPL de Logical Devices o PALASM de MMI . Estos eran programas de diseño asistido por computadora ( CAD ) (ahora denominados " automatización del diseño electrónico ") que traducían (o "compilaban") las ecuaciones lógicas de los diseñadores en archivos de mapa de fusibles binarios utilizados para programar (y a menudo probar) cada dispositivo.

PALASM

El lenguaje PALASM (del inglés "PAL assembler") fue desarrollado por John Birkner a principios de la década de 1980, y el compilador PALASM fue escrito por MMI en FORTRAN IV para una IBM 370/168. MMI puso el código fuente a disposición de los usuarios sin costo alguno. Para 1983, los clientes de MMI utilizaban versiones en DEC PDP-11 , Data General NOVA , Hewlett-Packard HP 2100 , MDS800 y otros equipos.

Se utilizaba para expresar ecuaciones booleanas para los pines de salida en un archivo de texto, que luego se convertía en el archivo de "mapa de fusibles" para el sistema de programación mediante un programa proporcionado por el proveedor; más tarde se hizo común la opción de traducción a partir de esquemas, y posteriormente, los "mapas de fusibles" podían "sintetizarse" a partir de un HDL (lenguaje de descripción de hardware) como Verilog .

CUPL

Assisted Technology lanzó CUPL ( Compilador para lógica programable universal ) en septiembre de 1983. [ 7 ] El software siempre se denominó CUPL y nunca se utilizó el acrónimo completo. Fue la primera herramienta de diseño comercial que admitía múltiples familias de PLD. La versión inicial fue para IBM PC y MS-DOS, pero se escribió en el lenguaje de programación C para poder portarlo a otras plataformas. [ 8 ] Assisted Technology fue adquirida por Personal CAD Systems (P-CAD) en julio de 1985. En 1986, el paquete de captura de esquemas de PCAD podía utilizarse como interfaz para CUPL. [ 9 ] Posteriormente, CUPL fue adquirido por Logical Devices y ahora pertenece a Altium . [ 10 ] Actualmente, CUPL está disponible como paquete de desarrollo integrado para Microsoft Windows. [ 11 ]

Atmel distribuye gratuitamente WinCUPL (su propio software de diseño para todos los SPLD y CPLD de Atmel). Atmel fue adquirida por Microchip en 2016.

ABEL

Data I/O Corporation lanzó ABEL en abril de 1984. El equipo de desarrollo estaba formado por Michael Holley, Mike Mraz, Gerrit Barrere, Walter Bright , Bjorn Freeman-Benson, Kyu Lee, David Pellerin, Mary Bailey, Daniel Burrier y Charles Olivier.

Data I/O escindió la línea de productos ABEL en Synario Design Systems, una empresa de automatización del diseño electrónico, y posteriormente vendió Synario a MINC Inc. en 1997. MINC se dedicaba al desarrollo de herramientas para el desarrollo de FPGA. La empresa cerró sus puertas en 1998 y Xilinx adquirió algunos de sus activos, incluyendo el lenguaje y el conjunto de herramientas ABEL. ABEL pasó a formar parte del paquete de herramientas Webpack de Xilinx. Actualmente, Xilinx es propietaria de ABEL.

Programadores de dispositivos

Entre los programadores de dispositivos más populares se encontraban el programador lógico Modelo 60A y el Modelo 2900 de Data I/O Corporation .

Uno de los primeros programadores PAL fue el Structured Design SD20/24. Incorporaba el software PALASM y solo requería un terminal CRT para introducir las ecuaciones y visualizar los diagramas de fusibles. Tras la fusión, las salidas del PAL podían verificarse introduciendo vectores de prueba en el archivo fuente.

Sucesores

Después de que MMI tuviera éxito con los componentes PAL de 20 pines introducidos alrededor de 1978, AMD introdujo el PAL 22V10 de 24 pines con características adicionales. Tras adquirir MMI (alrededor de 1987), AMD escindió una operación consolidada llamada Vantis, y ese negocio fue adquirido por Lattice Semiconductor en 1999. [ 12 ]

Altera presentó el EP300 (el primer PAL CMOS) en 1983 y posteriormente se adentró en el negocio de los FPGA.

Lattice Semiconductor introdujo la familia de lógica de matriz genérica ( GAL ) en 1985, con equivalentes funcionales de las PAL de la serie "V" que utilizaban planos lógicos reprogramables basados ​​en tecnología EEPROM (memoria de solo lectura programable y borrable eléctricamente). National Semiconductor fue un segundo proveedor de componentes GAL.

AMD PALCE 20V8H-15JC en PLCC de 28 pines

AMD introdujo una familia similar llamada PALCE. En general, un componente GAL puede funcionar como cualquiera de los dispositivos PAL de la misma familia. Por ejemplo, el GAL 16V8 puede reemplazar a los PAL 16L8, 16H8, 16H6, 16H4, 16H2 y 16R8 (y a muchos otros).

ICT (International CMOS Technology) presentó el PEEL 18CV8 en 1986. El componente EEPROM CMOS de 20 pines podía utilizarse en lugar de cualquiera de las memorias PAL bipolares de salida registrada y consumía mucha menos energía.

Atmel , Lattice Semiconductor y otras empresas introdujeron dispositivos lógicos programables de mayor escala . Estos dispositivos extendieron la arquitectura PAL al incluir múltiples planos lógicos y/o integrar macroceldas lógicas dentro de los planos lógicos. El término dispositivo lógico programable complejo (CPLD, por sus siglas en inglés) se introdujo para diferenciar estos dispositivos de sus predecesores PAL y GAL, que en aquel entonces a veces se denominaban dispositivos lógicos programables simples (SPLD, por sus siglas en inglés).

Otro dispositivo lógico programable de gran tamaño es la matriz de puertas programables en campo (FPGA). Estos dispositivos son fabricados actualmente por Intel (que adquirió Altera ) y Xilinx (que fue adquirida por AMD ), así como por otros fabricantes de semiconductores.

Véase también

Referencias

  1. «Monolithic Memories anuncia: una revolución en el diseño lógico». Electronic Design . 26 (6). Rochelle, NJ: Hayden Publishing: 148B, 148C. 18 de marzo de 1978.Anuncio introductorio sobre PAL (Lógica de Matriz Programable).
  2. Monolithic Memories, Inc. (MMI) solicitó el registro de la marca comercial "PAL" para su uso en "Circuitos Lógicos Semiconductores Programables" el 13 de abril de 1978. El registro de la marca comercial fue concedido el 29 de abril de 1980 con el número 1134025. MMI utilizó por primera vez el término PAL en el comercio el 21 de febrero de 1978. Actualmente, la marca comercial pertenece a Lattice Semiconductor Corporation de Hillsboro, Oregón. Fuente: Base de datos en línea de la Oficina de Patentes y Marcas de los Estados Unidos.
  3. Birkner, John (16 de agosto de 1978). "Reducir la complejidad de la lógica aleatoria". Electronic Design . 26 (17). Rochelle, NJ: Hayden Publishing: 98–105 .
  4. Hoja de datos TIBPAL 16R8-15C (PDF) . Dallas, TX: Texas Instruments. Abril de 2000 [febrero de 1984]."Estos circuitos IMPACT combinan la última tecnología Schottky de bajo consumo con fusibles de titanio-tungsteno de eficacia probada para ofrecer alternativas fiables y de alto rendimiento a la lógica TTL convencional." Texas Instruments fue un proveedor secundario para el MMI PALS.
  5. 1 2 Birkner, John M.; Coli, Vincent J. (1983). Manual de lógica de matriz programable PAL (3.ª ed.). Monolithic Memories, Inc. 
  6. Información avanzada del AmPAL 22V10 . Sunnyvale, CA: Advanced Micro Devices. Junio ​​de 1983. 04126A-PLP.Nota: Esta es la hoja de datos publicada por AMD cuando se presentó el AmPAL 22V10.
  7. Alford, Roger C. (1989). Guía del diseñador de lógica programable . Howard W. Sams. págs. 14–15 , 166–168 . ISBN  0-672-22575-1En 1981 , [Bob] Osann fundó Assisted Technology para desarrollar herramientas de soporte para PLD. En septiembre de 1983, Assisted Technology lanzó la versión 1.01a de su compilador PLD CUPL (Universal Compiler for Programmable Logic), compatible con 29 dispositivos.
  8. "CUPL - El lenguaje universal para la lógica programable" (PDF) (Comunicado de prensa). San José, CA: Assisted Technology, Inc. 1983. Archivado del original (PDF) el 29/10/2013 . Consultado el 10/08/2013 .Una hoja de datos preliminar de CUPL de principios de 1983.
  9. "Sistemas CAD personales" . Computer World . 19 (29). Framingham, MA: CW Communications: 97. 22 de julio de 1985. ISSN 0010-4841 . 
  10. Oficina de Patentes y Marcas de los Estados Unidos. «CUPL». Software informático, concretamente, software utilizado para desarrollar y compilar diseños para dispositivos lógicos programables, y manuales de usuario relacionados distribuidos con el mismo. Utilizado por primera vez en 1983, estado Activo. Número de serie 76357007. Número de registro 2909461. Propietario: Altium Limited, Australia, 3 Minna Close, Belrose NSW 2085, Australia.
  11. "CUBEL ChipDesigner 5.0" . Dispositivos lógicos. Agosto de 2013. Archivado del original el 29 de mayo de 2015.
  12. "Lattice Semiconductor adquiere Vantis Corp. de AMD" . EE Times . 26 de abril de 1999. Consultado el 13 de mayo de 2015 .

Lecturas adicionales

Libros
Libros de datos
Presupuesto
  • Formato estándar de transferencia de datos entre el sistema de preparación de datos y el programador de dispositivos lógicos programables ; Norma JEDEC JESD3-C; JEDEC ; junio de 1994.