Programmable Array Logic ( PAL ) es una familia de semiconductores de dispositivos lógicos programables que se utilizan para implementar funciones lógicas en circuitos digitales que fue introducida por Monolithic Memories , Inc. (MMI) en marzo de 1978. [1] MMI obtuvo una marca registrada para el término PAL para su uso en "Circuitos lógicos semiconductores programables". La marca registrada actualmente pertenece a Lattice Semiconductor . [2]
Los dispositivos PAL constaban de un pequeño núcleo PROM (memoria de sólo lectura programable) y una lógica de salida adicional utilizada para implementar funciones lógicas específicas deseadas con pocos componentes.
Los dispositivos PAL se podían programar en campo mediante máquinas especializadas. Los PAL estaban disponibles en varias variantes:
En la mayoría de las aplicaciones, los GAL borrables eléctricamente ahora se implementan como reemplazos directos compatibles con PIN para los PAL programables de un solo uso.
Antes de que se introdujeran las 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 ; la familia 7400 incluía una variedad de bloques de construcción lógicos, como puertas ( NOT , NAND , NOR , AND , OR ), multiplexores (MUX) y demultiplexores (DEMUX), flip-flops (tipo D, JK, etc.) y otros. Un dispositivo PAL normalmente reemplazaba docenas de estos paquetes lógicos "discretos", por lo que el negocio de SSI decayó a medida que despegaba el negocio PAL. Las PAL se usaron ventajosamente en muchos productos, como minicomputadoras , como se documenta en el libro más vendido de Tracy Kidder The Soul of a New Machine .
Los PAL no fueron los primeros dispositivos lógicos programables comerciales; Signetics había estado vendiendo 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 percibían como demasiado difíciles de usar. El FPLA tenía una velocidad operativa máxima relativamente lenta (debido a que tenía matrices programables AND y OR), era caro y tenía una mala reputación en cuanto a capacidad de prueba. Otro factor que limitaba la aceptación del FPLA era el gran encapsulado, un encapsulado dual en línea (DIP) de 28 pines y 600 milésimas de pulgada (0,6", 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 estuvieran diseñados para reemplazar la lógica estándar. Esto significaba que los tamaños de paquete 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 compañía inicialmente tuvo graves problemas de rendimiento de fabricación [ cita requerida ] y tuvo que vender los dispositivos por más de $50. [ cita requerida ] Esto amenazó la viabilidad del PAL como producto comercial, y MMI se vio obligada a licenciar la línea de productos a National Semiconductor. [ cita requerida ] Los PAL fueron posteriormente " segunda fuente " de Texas Instruments y Advanced Micro Devices .
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 de escala media (MSI).
La arquitectura PAL consta de dos componentes principales: un plano lógico y macroceldas lógicas de salida.
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 macroceldas lógicas de salida.
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.
Los primeros PAL de 20 pines tenían 10 entradas y 8 salidas. Las salidas eran activas bajas y podían ser registradas o combinacionales. Los miembros de la familia PAL estaban disponibles con varias estructuras de salida llamadas "macroceldas lógicas de salida" u OLMC. Antes de la introducción de la serie "V" (por "variable"), los tipos de OLMC disponibles en cada PAL se fijaban 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 altas (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 a menudo requerían estructuras de salida de diferentes tipos. (Por ejemplo, no se podían obtener 5 salidas registradas con 3 salidas combinacionales activas altas). Por lo tanto, en junio de 1983, AMD presentó el 22V10, un dispositivo de 24 pines con 10 macroceldas lógicas de salida. [6] El usuario podía configurar cada macrocelda para que fuera combinacional o registrada, activa alta o activa baja. La cantidad de términos de producto asignados a una salida variaba de 8 a 16. Este dispositivo podía reemplazar todos los dispositivos PAL de función fija de 24 pines. Los miembros de la serie PAL "V" ("variable") incluían PAL16V8, PAL20V8 y PAL22V10.
Los PAL se programaban eléctricamente utilizando patrones binarios (como archivos JEDEC ASCII / hexadecimales ) y un sistema de programación electrónica especial disponible tanto por el fabricante como por un tercero, como DATA I/O . Además de los programadores de dispositivos de una sola unidad, a menudo se utilizaban alimentadores de dispositivos y programadores en grupo cuando era necesario programar más de unos pocos PAL. (Para grandes volúmenes, los costos de programación eléctrica se podían eliminar haciendo que el fabricante fabricara una máscara de metal personalizada que se utilizaba para programar los patrones de los clientes en el momento de la fabricación; MMI utilizó el término "lógica de matriz dura" (HAL) para referirse a los dispositivos programados de esta manera).
Aunque algunos ingenieros programaban dispositivos PAL editando manualmente archivos que contenían los datos del patrón binario de fusibles, la mayoría optaba 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 . Se trataba de programas de diseño asistido por ordenador ( 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 mapas binarios de fusibles utilizados para programar (y a menudo probar) cada dispositivo.
El lenguaje PALASM (de "ensamblador PAL") fue desarrollado por John Birkner a principios de los años 80 y el compilador PALASM fue escrito por MMI en FORTRAN IV en un IBM 370/168. MMI puso el código fuente a disposición de los usuarios sin costo alguno. En 1983, los clientes de MMI ejecutaban versiones en DEC PDP-11 , Data General NOVA , Hewlett-Packard HP 2100 , MDS800 y otros.
Se utilizó para expresar ecuaciones booleanas para los pines de salida en un archivo de texto, que luego se convertía al archivo 'mapa de fusibles' para el sistema de programación utilizando un programa proporcionado por el proveedor; más tarde, la opción de traducción a partir de esquemas se volvió común y, más tarde aún, los 'mapas de fusibles' se podían 'sintetizar' a partir de un HDL (lenguaje de descripción de hardware) como Verilog .
Assisted Technology lanzó CUPL ( Compiler for Universal Programmable Logic ) en septiembre de 1983. [ 7 ] El software siempre se denominó CUPL y nunca el acrónimo expandido. Fue la primera herramienta de diseño comercial que admitió múltiples familias PLD. La versión inicial fue para IBM PC y MS-DOS, pero se escribió en el lenguaje de programación C para que pudiera trasladarse a plataformas adicionales. [8] Assisted Technology fue adquirida por Personal CAD Systems (P-CAD) en julio de 1985. En 1986, el paquete de captura esquemática de PCAD se pudo utilizar como interfaz para CUPL. [9] CUPL fue adquirido más tarde por Logical Devices y ahora es propiedad de Altium . [10] CUPL está disponible actualmente como un paquete de desarrollo integrado para Microsoft Windows. [11]
Atmel lanza de forma gratuita WinCUPL (su propio software de diseño para todos los SPLD y CPLD de Atmel). Atmel fue adquirida por Microchip en 2016.
Data I/O Corporation lanzó ABEL en abril de 1984. El equipo de desarrollo estuvo 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 y la convirtió en una empresa de automatización de diseño electrónico llamada Synario Design Systems, que luego vendió a MINC Inc. en 1997. MINC se centraba en el desarrollo de herramientas de desarrollo de FPGA. La empresa cerró sus puertas en 1998 y Xilinx adquirió algunos de los activos de MINC, incluido el lenguaje y el conjunto de herramientas ABEL. ABEL pasó a formar parte del conjunto de herramientas Xilinx Webpack. Ahora Xilinx es propietaria de ABEL.
Los programadores de dispositivos más populares incluyeron 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. Tenían el software PALASM incorporado y solo necesitaban un terminal CRT para ingresar las ecuaciones y ver los gráficos de fusión. Después de la fusión, las salidas del PAL se podían verificar si se ingresaban vectores de prueba en el archivo fuente.
Después de que MMI triunfara con las piezas PAL de 20 pines introducidas alrededor de 1978, AMD introdujo la PAL 22V10 de 24 pines con funciones adicionales. Después de comprar MMI (alrededor de 1987), AMD escindió una operación consolidada como Vantis, y ese negocio fue adquirido por Lattice Semiconductor en 1999. [12]
Altera presentó el EP300 (el primer CMOS PAL) en 1983 y luego pasó al negocio 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 la tecnología EEPROM (memoria de solo lectura programable y borrable eléctricamente). National Semiconductor fue una segunda fuente de piezas GAL.
AMD presentó una familia similar llamada PALCE. En general, una parte GAL puede funcionar como cualquiera de los dispositivos PAL de la familia similar. Por ejemplo, la 16V8 GAL puede reemplazar a las PAL 16L8, 16H8, 16H6, 16H4, 16H2 y 16R8 (y muchas otras).
ICT (International CMOS Technology) introdujo el PEEL 18CV8 en 1986. La parte EEPROM CMOS de 20 pines podía usarse en lugar de cualquiera de los PAL bipolares con salida registrada y consumía mucha menos energía.
Atmel , Lattice Semiconductor y otros introdujeron dispositivos lógicos programables a mayor escala . Estos dispositivos ampliaron la arquitectura PAL al incluir múltiples planos lógicos y/o enterrar macroceldas lógicas dentro de los planos lógicos. El término dispositivo lógico programable complejo (CPLD) se introdujo para diferenciar estos dispositivos de sus predecesores PAL y GAL, que en ese entonces se denominaban dispositivos lógicos programables simples (SPLD).
Otro gran dispositivo lógico programable es la matriz de puertas programables en campo (FPGA). Estos son dispositivos que actualmente [ ¿cuándo? ] fabrican Intel (que adquirió Altera ) y Xilinx (que fue adquirida por AMD ) y otros fabricantes de semiconductores.
Otros tipos de dispositivos lógicos programables:
Fabricantes actuales y anteriores de dispositivos lógicos programables:
Fabricantes actuales y anteriores de programadores de dispositivos PAL:
1981, [Bob] Osann fundó Assisted Technology para desarrollar herramientas de soporte de PLD. En septiembre de 1983, Assisted Technology lanzó la versión 1.01a de su compilador de PLD CUPL (Universal Compiler for Programmable Logic), compatible con 29 dispositivos.