Consultar ensayos de calidad


Las PAL (Arreglos Lógicos Programables)



Introducción

Las PAL (Arreglos Lógicos Programables), que como su nombre lo indica son arreglos matriciales de fusibles y diodos que mediante una cierta lógica pueden llegar a desempeñar cualquier función booleana. Su arquitectura interna consiste en términos AND programables que alimentan términos OR fijos. Todas las entradas a la matriz pueden ser combinadas mediante AND entre si, pero los términos AND específicos se dedican a términos OR específicos. Las PAL tienen una arquitectura muy popular y son probablemente el tipo de dispositivo programable por usuario mas empleado. Si un dispositivo contiene macrocélulas, comúnmente tendra una arquitectura PAL.

Las PAL son PLD que se han desarrollado para superar ciertas desventajas de la PLA, tales como los largos retardos debidos a los fusibles adicionales que resultan de la utilización de dos matrices programables y la mayor complejidad del circuito. Basicamente la PAL esta formada por una matriz AND programable y una matriz OR fija con la lógica de salida, esta estructura permite implementar cualquier suma de productos lógica con un número de variables definido, sabiendo que cualquier función lógica puede expresarse como suma de productos. La PAL es el dispositivo lógico programable mas común y se implementa con tecnología bipolar TTL o ECL.



Arreglos Lógicos Programables (PAL

Un dispositivo lógico programable es aquel cuyas características pueden ser modificadas y almacenadas mediante programación. Entre los dispositivos lógicos programables el PAL es el mas simple, son los mas populares y los mas utilizados.

El circuito interno de un PAL consiste de una matriz de conexiones, una matriz de compuertas AND programables y un arreglo de compuertas OR fijo [1]. La matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intersección, mediante la cual se seleccionan cualesentradas del dispositivo seran conectadas al arreglo OR y así obtener una función lógica en forma de suma de productos. Los circuitos PAL son no reprogramables; ya que la síntesis de las ecuaciones lógicas se realiza a través de la quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas.
Estructura de la PAL
En la Figura 1 se muestra la estructura interna de una PAL, en esta se observa que cada línea de salida es conectada a tres líneas producto y por consiguiente representa una suma de tres términos producto.
[pic]
Figura 1. Estructura interna de la PAL.

Debido al arreglo OR, la representación del PAL mostrada en la Figura 2 es mas usada que el de la Figura 1.

[pic]
Figura 2. Estructura interna de la PAL estandar.

Funcionamiento de la PAL.
Como se ha mencionado, las PAL estan formadas por una matriz de puertas AND programable conectada a una puerta OR fija. Esta estructura permite implementar cualquier suma de productos lógicos con un número de variables definidas y limitadas, entre otras, por el número de entradas y salidas que tenga el dispositivo.
En la Figura 3 se muestra la estructura basica de un PAL para tres variables de entrada y salida sin programar [2]. Cada punto de intersección entre una fila y una columna se denomina celda y es el elemento programable de la PAL. Cada fila se conecta a la entrada de una puerta AND y cada columna a la variable de entrada o su complemento. En función de la presencia o ausencia de las conexiones creadas por programación, se puede aplicar cualquier combinación de variables de entrada o sus complementos a una puerta AND para generar cualquier operación producto que se desee.
[pic]
Figura 3. PAL con matriz AND sin programar.

La implementación de una función lógica sobre un PAL, se muestra la figura 4, donde las señales que entran a la matriz son las variables de entrada y sus complementos.Cuando se requiere la conexión entre una fila y una columna, el fusible queda intacto, Cuando dicha conexión no se requiere, el fusible se abre en el proceso de programación. La salida de la puerta OR proporciona finalmente la suma de productos. Observe que si alguna entrada de una puerta AND queda sin conectar, esta adquiere el valor del elemento neutro del producto lógico, sin afectar el resultado de dicha puerta.
[pic]
Figura 4. PAL con matriz AND programada.
Símbolo simplificado de la PAL.
Puesto que las PAL son circuitos integrados muy complejos desde el punto de vista interno, los fabricantes han adoptado una notación simplificada para eliminar los diagramas lógicos complicados. En la Figura 5 se muestra la notación.
[pic]
Figura 5. Símbolo simplificado de una PAL.

Buffer de entrada: Para evitar cargar con la gran cantidad de entradas de puertas AND a las que se pueden conectar una variable o su complemento, se añade un buffer a las variables de entrada de la PAL. Un buffer inversor genera el complemento de una variable de entrada.
Puertas AND: una matriz AND de una puerta PAL típica tiene una gran cantidad de líneas de interconexión y cada puerta AND tiene entradas múltiples. El diagrama lógico de una PAL muestra cada puerta AND que realmente tienen varias entradas, utilizando una sola línea para representar a todas las líneas de entrada.
Conexiones de una PAL: Para obtener un diagrama lo mas sencillo posible, los fusibles de una matriz AND programable se indican mediante una X en el punto de intersección si el fusible queda intacto y no se indica nada sí el fusible esta fundido. Las conexiones fijas emplean el punto estandar.
Diagrama de bloque de una PAL.
Las salidas de la matriz AND son las entradas de la matriz OR y la salida de cada puerta OR se asocia a una variable lógica de salida. Una PAL típica tiene ocho o mas entradas en la matriz AND y hasta ocho bloqueslógicos de salida como se muestra en la Figura 6 [3].

[pic]
Figura 6. Diagrama de bloque de una PAL.

Algunas PAL disponen de pines de entrada/salida (E/S) combinados, que se pueden programar como salida o como entrada. La presencia de estos pines es muy útil cuando se desea, por ejemplo, realizar una realimentación entre variables de salida y entrada como es el caso del diseño de un biestable.
Fabricantes de la PAL.
Dispositivos PAL (o simplemente PALS) se introducen en 1978 por Monolithic Memories, Inc., (MMI), la arquitectura era mas sencilla que la FPLA porque omitía la matriz OR programable. Esto hizo los dispositivos mas rapidos, mas pequeños y mas baratos [4].
Los PAL de MMI pronto fueron distribuidos por AMD la cual empleo tecnología PROM de fusibles Titanio-Tungsteno programables una sola vez; Texas Instruments apoya las PALs con arquitectura variable programables una sola vez y National Semiconductor, quien fue el pionero en el desarrollo de Arreglos Lógicos Programables (Programmable Logic Arrays, PLA’s) en forma de un DIP grande de 24 pines o terminales (0.6 pulgadas de ancho) con 96 términos productos, 14 entradas, 8 salidas.
El primer circuito PAL fue el 16L8, de 20 terminales (pines), con soporte para 8 salidas y hasta 16 entradas con tecnología Bipolar, mostrada en la Figura 7, en cada macro celda se observa:
° Cada variable de entrada es distribuida negada y sin negar en la matriz de intersección mediante los literales (columnas).
° Todas las columnas cruzan líneas horizontales donde se puede realizar el AND cableado de las columnas que se elijan y con ello generar en cada fila la suma de productos que se desee.
° Siete filas son unidas mediante una compuerta OR para realizar la suma de productos.
° La señal de salida es negada por cuestiones de velocidad; ya que es mas rapida una compuerta NOR que una OR, aunque existe la PAL 16H8, donde la salida en lacompuerta OR sale sin negar.
° En algunas macroceldas el valor de salida se realimenta negado y sin negar a todo el circuito, lo cual permite la conexión en cascada de lógica, para la síntesis de funciones mas complejas. Esto ademas facilita el diseño de circuitos realimentados para la elaboración de celdas de emorias.
° Las salidas se pueden controlar individualmente a través de las compuertas Tri-State de cada una y con esto poder seleccionar la salida como entrada.

Figura 7. PAL16L8 en encapsulado DIP20.
Con este tipo de dispositivos pueden simularse arreglos del tipo de Productos Lógicos, o en su caso realizar decodificación de direcciones. Sin embargo, la mayor aportación de los dispositivos PAL fue generar aplicaciones específicas en muy corto tiempo. La operación de estos dispositivos inicio manejando velocidades de 4.7 Mhz para la IBM PC hasta 33 Mhz, para posteriormente alcanzar los 50 Mhz; hoy se pueden encontrar dispositivos que operan con un retraso de propagación de la señal del orden de 5ns.
Sin embargo, su estructura simple también es su principal desventaja, ya que solo se pueden implementar pequeños circuitos lógicos representados con un modesto número de términos producto, porque su estructura de interconexión esta fija en cuanto a que no se puede configurar la salida si se requiere que sea activo alto, activo bajo, con o sin registro. En la Figura 8 se observa el diseño de una PAL con puertas de distintos tipos.

Figura 8. Diseño de una PAL con puertas de distintos tipos.
En el mercado se manejan referencias de las PALs comerciales como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8.
Nomenclatura de la PAL.
Los líderes en fabricación de PLDs, Texas Instruments y AMD, tienen una notación para identificar los dispositivos [2]. Por ejemplo, la estructura en PLD según AMD es

Figura 9. Nomenclatura utilizada para identificar los PLD según AMD.

Dentro de laestructura de salida se tienen las posibilidades contenidas en la tabla 1.
Tabla 1 Tipos de Salidas de una PAL.
[pic]
PALs Comerciales
En el mercado se manejan referencias como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8.
Matriz Lógica Genérica (GAL, Generic Array Logic
La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida lógica programable. La figura 4.4.7. muestra el diagrama de bloques de una GAL. Esta estructura permite implementar cualquier expresión lógica suma de productos con un número de variables limitado.
[pic]
Figura 4.4.7. Diagrama de Bloques de una GAL (Generic Array Logic).
Las dos principales diferencias entre los dispositivos GAL y PAL son
a) la GAL es reprogramable y
b) la GAL tiene configuraciones de salida programables. La GAL se puede programar una y otra vez, ya que usa tecnología ECMOS (Electrically Erasable CMOS, CMOS borrable eléctricamente).
En la figura 4.4.8. se ilustra la estructura basica de una GAL con dos variables de entrada y una de salida. La matriz reprogramable es esencialmente una red de conductores ordenados en filas y columnas, con una celda CMOS eléctricamente borrable (E2CMOS) en cada punto de intersección, en lugar de un fusible como en el caso de las PAL. Estos PLDs son borrables y reprogramables. El transistor CMOS tiene 2 compuertas, una de ellas totalmente aislada, flotante. Para programar cada celda se aplica o no una tensión mayor a VDD (alta) en la compuerta no flotante. Al aplicar esta tensión el dieléctrico conduce y la compuerta flotante se carga negativamente, dejando en operación normal siempre abierto el transistor.
[pic]
Figura 4.4.8. Estructura Basica de una GAL (Generic Array Logic
En la figura 4.2.9. se muestra un ejemplo de una sencilla matriz GAL programada para obtener la suma de tres productos.
[pic]
Figura 4.4.9. Programación de una GAL (Generic Array Logic).
El borrado se puedehacer de dos formas
• Con luz ultravioleta (UV): exponiendo el transistor de 5 a 20 minutos a luz UV, el dieléctrico conduce y permite la descarga de la compuerta flotante. Para este borrado el chip lleva una ventana de cuarzo transparente.
• Borrado eléctrico: Es el mas usado hoy en día. La capa que aisla la compuerta flotante es mas delgada. Al aplicar una tensión alta con polaridad contraria , la compuerta flotante se descarga porque el dieléctrico conduce. Las ventajas mas importantes de esta técnica son una descarga rapida, no se requiere UV y no se requiere sacar el chip de su base.
GALs comerciales
Las diversas GAL tienen el mismo tipo de matriz programable. Se diferencian en el tamaño de la matriz, en el tipo de OLMC (Las macroceldas Lógicas de Salida que contienen circuitos lógicos programables que se pueden configurar como entrada o salida combinacional y secuencial) y en los parametros de funcionamiento, tales como velocidad y disipación de potencia.
|Referencia |Número de Pines |tPD |ICC (mA) |Características |
|GAL16V8A |20 |10, 15, 25 |55, 115 |E2CMOS PLD Genérica |
|GAL18V10 |20 |15, 20 |115 |E2CMOS PLD Universal |
|GAL22V8A |24 |10, 15, 25 |55, 115 |E2CMOS PLD Genérica |
|GAL22RA10 |24 |15, 20 |115 |E2CMOS PLD Universal |
|GAL22V10 |24 |10, 15, 25 |130 |E2CMOS PLD Universal |
|GAL26CV12 |28 |15, 20 |130 |E2CMOS PLD Universal|
|GAL6001 |24 |30, 35 |150 |E2CMOS FPLA |
|ispGAL16Z8 |24 |30, 35 |190 |E2CMOS PLD Programable en Circuito |

Ejemplo de Programación en CUPL
|Name Funciones lógicas; |
|Partno GAL16V8; |
|Revision 01; |
|Date 03/01/03; |
|Company UNEXPO; |
|Location X; |
|Assembly X; |
|Device G16V8; |
|/ ** ** ** ** ** ** ************/ |
|/* Archivo Fuente de ejemplo en CUPL para implementar funciones lógicas */ |
|/ ** ** ** ** ** ** ************/ |

|/* Definición de las entradas */ |
|Pin 1 = a;|
|Pin 2 = b; |
|/* Definición de las salidas */ |

|Pin 12 = inva; |
|Pin 13 = invb; |
|Pin 14 = and; |
|Pin 15 = nand; |
|Pin 16 = or; |
|Pin 17 = nor; |
|Pin 18 = xor; |
|Pin 19 = xnor; |
|/* Definición de Ecuaciones Lógicas*/ |
|inva = !a;               /* Inversión de las entradas a y b*/ |
|invb = !b; |
|and = a & b;          /* Función AND */ |
|nand = !(a & b);            /* Función NAND */ |
|or = a # b;             /* FunciónOR*/ |
|nor = !(a # b);       /* Función NOR */ |
|xor = a $ b;           /* Función XOR */ |
|xnor = !(a $ b);     /* Función XOR Negada*/ |

Archivo fuente de ejemplo en CUPL para implementación de funciones lógicas

Lenguajes de programación

ABEL
ABEL es la abreviatura de Advanced Boolean Expression Language. Es un lenguaje de descripción de hardware y un conjunto de herramientas de diseño para programar dispositivos lógicos programables (PLDs).
Verilog
Verilog es un lenguaje de descripción de hardware (HDL, del Inglés Hardware Description Language) usado para modelar sistemas electrónicos.
|¿|[|
|H|C|
|a|o|
|s|n|
|n|t|
|o|r|
|t|a|
|a|e|
|d|r|
|o|]|
|a
|l|[|
|g|A|
|o|y|
|d|ú|
|i|d|
|f|a|
|e|n|
|r|o|
|e|s|
|n|t|
|t|r|
|e|a|
|?|d|
|H|u|
|e|c|
|m|i|
|o|e|
|s|n|
|h|d|
|e|o|
|c|.|
|h|]|
|o
|a
|l
|g
|u
|n
|a
|s
|m
|e
|j
|o
|r
|a
|s
|e
|n
|W
|i
|k
|i
|p
|e
|d
|i
|a
|.
|V
|e
|r
|m
|a
|s
|.



Política de privacidad