Está en la página 1de 35

INDICE Introduccin .3 Definicin PAL4 Nomenclatura PAL...4 Diagrama de Bloques.5 Estructura PAL...5 Arquitectura PAL....

Tecnologa de Programacin Interruptores7 Tipos de PAL...7 CPLD Diagrama de Bloques..8 PALS Comerciales. ..9 Metodologa de Diseo.9 PLDS Vs Lgica Discreta. ..11 Anlisis de los Circuitos PLD. .14 Software para Programar. ...18 Asignacin de Pines.. ..20 Definicin de Variables Intermedias.. 22 Definicin de Ecuaciones Lgicas.. ...22 Extenciones de Variables.23 Ejemplos... 26 Conclusiones ..29 Bibliografa.. 30

INTRODUCCIN

La siguiente investigacin se basa especficamente en los arreglos lgicos programable, su concepto aplicaciones y usos en las diversas situaciones referidas al area digital que se pueden presentar. De igual manera se define lo que es un PLD (Programmable Logic Device) o Dispositico Lgico Programable, es un dispositivo cuyas caractersticas pueden ser modificadas y almacenadas mediante programacin. El dispositivo programable ms simple es el PAL (Programmable Array Logic). El circuito interno de un PAL consiste en una matriz de conexiones, un matriz de compuertas AND y un arreglo de compuertas OR. La mayora de los PLDs estn formados por una matriz de conexiones, una matriz de compuertas AND, y una matriz de compuertas OR y algunos, adems, con registros. Las matrices pueden ser fijas o programables. Con estos recursos se implementan las funciones lgicas deseadas mediante un software especial y un programador de dispositivos. El tipo ms sencillo de matriz programable, que data de los aos 60, era una matriz de diodos con un fusible en cada punto de interseccin de la misma. Con los PLDs se pueden programar ecuaciones lgicas Booleanas, tanto combinatorias como secuenciales. Existen actualmente una gran variedad de estos

chips, y algunos de ellos pueden contener hasta 10,000 compuertas lgicas.

DEFINICION DE PAL

Las PAL son dispositivos de matriz programable. La arquitectura interna consiste en trminos AND programables que alimentan trminos OR fijos. Todas las entradas a la matriz pueden ser combinadas mediante AND entre si, pero los trminos AND especficos se dedican a

trminos OR especficos. Las PAL tienen una arquitectura muy popular y son probablemente el tipo de dispositivo programable por usuario ms empleado. Si un dispositivo contiene macroclulas, comnmente tendr una arquitectura PAL. Las macroclulas tpicas pueden programarse como entradas, salidas, o entrada/salida (e/s) usando una habilitacin tri-estado. Normalmente tienen registros de salida que pueden usarse o no conjuntamente con el pin de e/s asociado. Otras macroclulas tiene ms de un registro, varios tipos de retroalimentacin en las matrices, y ocasionalmente realimentacin entre macroclulas. NOMENCLATURA DE UNA PAL Los lderes en fabricacin de PLDs, Texas Instruments y AMD, tienen una notacin para identificar los dispositivos. Por ejemplo, la estructura en PLD AMD es:

DIAGRAMA DE BLOQUES DE UNA PAL Dentro de la estructura de salida se tienen las posibilidades contenidas en la tabla Cdi Tipos de Salidas gos

L H R RA X V M

Combinatoria con nivel bajo activo. Combinatoria con nivel alto activo. Registro. Registro asncrono. Registro O exclusivo. Vestil. Macroclula.

ESTRUCTURA PAL

ESQUEMA SIMPLIFICADO DE PAL

ARQUITECTURA DE PAL

TECNOLOGIA DE PROGRAMACION INTERRUPTORES

TIPOS DE PAL SPLD:

CPLD ARQUITECTURA

CPLD DIAGRAMA DE BLOQUES

LB

PALS

COMERCIALES En el mercado se manejan referencias como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8.

METODOLOGA DE DISEO El proceso de diseo lgico con PLDs se resume en tres grandes etapas: 1. DISEO LGICO 2. IMPLEMENTACION DEL DISEO 3. VERIFICACIN DEL DISEO Dentro de la primera etapa, los pasos involucrados son los mismos que en cualquier diseo digital, combinatorio o secuencial, y se pueden subdividir en los Pasos siguientes:

DEFINIR EL PROBLEMA. GENERAR UN DIAGRAMA A BLOQUES. OBTENER TABLA DE VERDAD. DERIVAR ECUACIONES LGICAS QUE DESCRIBEN LAOPERACIN DEL DISEO.

La implementacin del diseo consiste en seleccionar y usar las herramientas, tanto de hardware y software, necesarias para la traduccin de los resultados a un mapa de fusibles para la programacin del chip. Esta fase consiste en:

SELECCIN DEL PLD. HACER ARCHIVO DE ECUACIONES CORRER SOFTWARE, COMO POR EJEMPLO EL OPAL (NATIONAL), PARA GENERAR ARCHIVO MAPA DE FUSIBLES. CONFIGURAR PROGRAMADOR UNIVERSAL. PROGRAMAR CHIP La etapa final consiste en la verificacin del diseo en la cual la correcta programacin del PLD es comprobada, por medio de tcnicas de simulacin. Los pasos de la verificacin son: GENERACIN DE VECTORES DE PRUEBA. SIMULACIN DEL FUNCIONAMIENTO DEL PLD EN LA COMPUTADORA, PRUEBA FUNCIONAL DEL DISPOSITIVO.

DOCUMENTACIN DEL DISEO.

PLDS VS LGICA DISCRETA. La forma tradicional de implementar un circuito digital consiste en llevar a cabo el diseo lgico, seleccionar la familia lgica que se va utilizar (TTL, CMOS, ECL, etc.) y finalmente seleccionar los chips individuales que formaran el Circuito final. Este mtodo presenta diversos problemas, que se agravan conforme aumenta el grado de complexidad del circuito. Para ejemplificar estos problemas supongamos que se requiere implementar el circuito siguiente utilizando lgica discreta o tradicional.

Figura 2. Circuito lgico de ejemplo.

En primer lugar, al analizar este circuito (de poca complejidad) observamos que para algunas variables de entrada (B y C) se tienen hasta 7 niveles de retardo, y en otras (I y J) tan slo 2 retardos. Esto ocasiona que unas seales lleguen primero que otras a la ltima compuerta del circuito, lo que causa errores en la operacin del mismo. La solucin tpica es retardar la seal que llega primero, para esperar a las otras. Sin embargo, esta solucin limita considerablemente la velocidad global del diseo. Un segundo problema es el nmero de circuitos integrados o chips que se requieren. Si contamos las compuertas, determinamos, para la familia TTL, que se necesitamos: 1 chip 7400 (4) compuertas NAND. 1 chip 7432 (4) compuertas OR. 1 chip 7404 (6) inversores. 1 chip 7408 (4) compuertas AND.

En total 4 circuitos integrados, en los cuales no todas las compuertas del paquete sern utilizadas. Esto da como desventajas mucho espacio requerido para los chips, consumo de potencia relativamente alto, diseo del circuito impreso complejo, etc. Como una solucin simple y efectiva a estos problemas, y a otros ms, se inventaron precisamente los PLDs, en los cuales se eliminan los retardos, se hace la implementacin en un solo chip, hay un menor Consumo y ocupan un menor espacio en el impreso.

A continuacin se muestra el diagrama de un PAL16L8, en donde fcilmente se podra programar el circuito digital del ejemplo, y todava sobra espacio. Este circuito presenta 16 mximo. entradas y 8 salidas como

Figura 3. Diagrama del PAL16L8. En resumen, los PLDs combinan muchos de los beneficios de la lgica discreta (Utilizacin de circuitos integrados comerciales TTL o CMOS) con la gran ventaja de implementar circuitos a la medida del cliente (custom). Entre otras ventajas de esta tecnologa son: DISEO SENCILLO ALTO RENDIMIENTO FIABILIDAD AHORRO EN COSTO REPROGRAMACION SEGURIDAD

Anlisis de los circuitos PLD El anlisis de un conjunto significativo de circuitos PLD reales da como resultado los siguientes conceptos asociados a los circuitos PLD: - Matriz de interconexin programable - Macrocelda o Nmero de biestables. - Nmero de realimentaciones. - Circuito de comparticin de productos lgicos entre macroceldas. - Nmero de matrices de interconexin programables. - Bloques lgicos complejos. - Recursos de interconexin distribuidos.

Cada uno de estos conceptos se analiza primero por separado para despus combinarlos a travs de un conjunto de cuarenta y tres figuras de complejidad creciente. El anlisis se inicia por los circuitos

PLD ms sencillos (denominados bsicos) que poseen una sola matriz de interconexin programable (Figura 1). Una vez analizadas las variantes ms importantes de los circuitos PLD bsicos se estudian las distintas formas de compartir productos lgicos entre macroceldas que dan lugar a circuitos PLD denominados avanzados. En la figura 2 se representa una de las formas de comparticin consistente en una matriz PLA adicional. A continuacin se analizan los circuitos PLD avanzados segmentados que poseen dos matrices de interconexin tal como se indica en la figura 3. Finalmente se estudian las formas de elevar la complejidad de los circuitos PLD avanzados que se indican en la tabla 1, las cuales dan lugar a los dispositivos lgicos programables complejos denominados CPLD.

SOFTWARE PARA PROGRAMAR CUPL

En el medio electrnico hay diferentes herramientas de software para programar PLDs. Uno de los compiladores disponibles de alto nivel de uso difundido actualmente es CUPL. Este compilador ofrece varias caractersticas que permiten desarrollos basados en la metodologa Top-Down y puede generar archivos de programacin para una gran variedad de dispositivos programables. La programacin en este Software se efecta mediante la creacin de un archivo de texto que contiene el cdigo para la programacin del dispositivo. Este archivo tiene tres partes bsicas: el encabezado, la declaracin de los pines de entrada y las definiciones lgicas. Generalmente se emplea un archivo como el que se muestra a continuacin para dar inicio al diseo lgico y tener una forma estndar para trabajar en CUPL.

Name XXXXX; Partno XXXXX; Date Revision Designer Company Assembly Location /***************************************************** **********/ /*Entradas*/ pin 1 = ; pin 1 = ; pin 1 = ; pin 1 = ; /*Salidas*/ pin 1 = ; pin 1 = ; pin 1 = ; pin 1 = ; /* /* /* /* /* /* /* /* */ */ */ */ */ */ */ */

/*Variables Intermedias (Opcionales)*/ pin 1 = ; /* */ pin 1 = ; /* */ pin 1 = ; /* */ pin 1 = ; /* */ /***************************************************** **********/ /* Ecuaciones Lgicas*/ /***************************************************** **********/ |Ejemplo de Entrada en CUPL En este archivo los comentarios los grupos de caracteres "/*" y "*/" son empleados para incluir comentarios por parte del usuario, los cuales permiten organizar el archivo de una forma comprensible y especificar la funcion de ciertos tipos de instrucciones.

Asignacin de Pines La asignacin de los pines corresponde al nombramiento de los pines del dispositivo con nombres descriptivos para las entradas y salidas. Los nombres se pueden asignar de forma libre y corresponden a las variables que se emplean para definir las ecuaciones lgicas. La asignacin de pines se puede hacer de forma individual o grupal cada asignacin finaliza con un punto y coma (;).

Sintaxis

Sintaxis Abreviada General Pin 1 = Pin [2,3] = [Nombre, Nombre; Nombre2]; Pin 2 = ! Pin [2,3] = ![Nombre, Nombre; Nombre2]; Pin 3 = ! Pin [2..3] = [Q0..3]; SET; El signo "!" en la asignacin de pines indica que la variable se complementa. Este signo se emplea generalmente para declarar variables activas en bajo. Definicin de Variables Intermedias Las variables intermedias corresponden a variables asignadas a una ecuacin lgica pero que no representan un pin en el dispositivo. Generalmente esta variables se utilizan cuando se requiere manejar varias variables de entra y salidas. El objetivo de declarar variables

intermedias, consiste bsicamente en reducir el tamao de las ecuaciones lgicas asignadas a los pines de salida y permitir organizar el archivo de entrada de una forma comprensible. Su uso no es obligatorio en el archivo de entrada para CUPL. Definicin de Ecuaciones Lgicas Las ecuaciones lgicas corresponden a las expresiones lgicas que relacionan los pines de entrada y salida. Y en el archivo fuente se ubican despus de la asignacin de pines y variables intermedias. Oper Func Formato de Formato ador & # ! $ in AND OR NOT XOR CUPL A&B A#B !A A$B Convencional AB A+B A' A

La sintaxis general de las ecuaciones lgicas en CUPL es la siguiente: [!] Var [.ext] = exp;

Extensiones de Variables Las extensiones son atributos que se agregan a las variables en las ecuaciones lgicas y la manera de emplearlas en el archivo fuentes es mediante la sintaxis: "V.E", donde V es la variable lgica y E es la extensin. Las extensiones para las variables son empleadas para definir funciones que dependen de la configuracin fsica de las salidas del PLD. En la figura se muestra un diagrama ilustrativo del tipo de salidas

que se pueden configurar en CUPL segn la extensin seleccionada, y un ejemplo sobre su utilizacin.

Circuito Ilustrativo del tipo de salidas configurables en un PLD (Tomado de ATMEL - WinCUPL User's Manual)

Teniendo en cuenta que las variables lgicas pueden incluir extensiones, la sintaxis que se debe emplear para las ecuaciones lgicas es la siguiente:

[!] Var [.ext] = exp; Donde var es la variable lgica, ext es la extensin y exp es la expresin lgica. Un sencillo ejemplo usando el software para creacin de CUPL servir para ilustrar el proceso. En CUPL existe otro tipo de sintaxis para simplificar un poco las ecuaciones lgicas. Una de ellas consiste en la utilizacin de los operadores de forma consecutiva a varias variables. En la tabla abreviada. En CUPL existen otras formas alternativas de definir las salidas. Entre ellas existen las Tablas de Verdad, Mquinas de Estado y Estamentos Condicionales. Tablas de Verdad Como su nombre lo indica este tipo de sintaxis agrupa la informacin sobre la asociacin de entradas y salidas en forma de tabla. Para declara una tabla de verdad inicialmente se declarar las entradas y salidas. Despus de ello se asignan los valores uno a uno de las entradas y salidas. se indica cmo se pueden representar las expresiones lgicas de forma

FIELD Entrada = [Ent3..0]; FIELD Salida = [Sal3..0]; TABLE Ent => Sal { 0=> 00; 1=>01; 2=>02; 3=>03; 4=>04; 5=>05; 6=>06; 7=>07; 8=>08; 9=>09; A=>10;

B=>11; C=>12; F=>15; }

D=>13;

E=>14;

Sintaxis en CUPL para crear Tablas de Verdad Decodificador de Hexadecimal a BCD. Mquinas de Estado Este tipo de definicin permite declarar la relacin entradas y salidas mediante la definicin de mquinas de estado. SEQUENCE lista_vars_estado { PRESENT estado_n0 IF (condicin1)NEXT estado_n1; IF (condicin2) NEXT estado_n2 OUT sal_n0; DEFAULT NEXT estado_n0; PRESENT estado_n1 NEXT estado_n2; ... ... ... PRESENT estado_nn estamentos; } Sintaxis en CUPL para crear Mquinas de Estado

EJEMPLO DE PROGRAMACIN EN CUPL Name Funciones lgicas; Partno GAL16V8; Revision 01; Date 03/01/03; Designer J.Beltran; Company Universidad Nacional; Location X; Assembly X; Device G16V8; / ******************************************************/ /* Archivo Fuente de ejemplo en CUPL para implementar funciones lgicas */ /****************************************************** / /* Definicin de las entradas */ Pin 1 = a; Pin 2 = b; /* Definicin de las salidas */ Pin Pin Pin Pin Pin Pin Pin Pin 12 13 14 15 16 17 18 19 = = = = = = = = inva; invb; and; nand; or; nor; xor; xnor;

/* Definicin de Ecuaciones Lgicas*/ inva = !a; y b*/ invb = !b; and = a & b; nand = !(a & b); or = a # b; /* Inversin de las entradas a /* Funcin AND */ /* Funcin NAND */ /* Funcin OR*/

nor = !(a # b); xor = a $ b; xnor = !(a $ b);

/* Funcin NOR */ /* Funcin XOR */ /* Funcin XOR Negada*/

Archivo fuente de ejemplo en CUPL para implementacin de funciones lgicas

Una vez se tiene el archivo fuente de un diseo lgico, el paso a seguir es compilar el archivo para generar el archivo de programacin JEDEC, el cual se emplea para programar el dispositivo. Durante el proceso de compilacin del archivo fuente CUPL verifica la sintaxis del archivo e indica los posibles errores que puedan existir. Si el programa no detecta errores se genera el archivo .JED. CUPL entre sus funciones tiene un simulador con el cual se pueden comprobar las salidas. Este proceso se efecta mediante la generacin de varias entradas que comprueban los estados de las salidas para verificar las ecuaciones lgicas. La simulacin se recomienda para verificar que el diseo es correcto y que no existe ningn error. Despus de ello se puede proceder a programar el dispositivo y finalmente verificar su funcionamiento.

Ejemplo de un 74138 con un Arreglo Lgico Programable.

CONCLUSIN

Posteriormente anterioridad conclusiones:

luego de haber realizado la investigacin se pueden establecer las

con

presentada

siguientes

Un dispositivo lgico programable, o Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de interseccin, mediante la cual se seleccionan cuales entradas del dispositivo sern conectadas al arreglo AND cuyas salidas son conectadas al arreglo OR y de esta manera obtener una funcin lgica en forma de suma de productos. La importancia de esta tecnologa radica en el hecho de que la mayora de los equipos electrnicos modernos incluyen en su diseo PLDs, por lo que todo profesional relacionado con el mantenimiento o fabricacin de equipo electrnico deber dominar dicha metodologa. Los circuitos PLD constituyen sistemas digitales complejos que se caracterizan por poseer un conjunto de conceptos bsicos no excluyentes entre s que a su vez se subdividen en un nmero mayor de subconceptos. Esto hace que su estudio, y en especial el del diseo de sistemas basados en ellos, sea una tarea difcil.

Bibliografa Diseo Digital. Principios y Prcticas. John F. Wakerly. Tercera Edicin. http://es.wikipedia.org http://lapham25.tripod.com/archivos/plds.pdf http://www.cps.unizar.es/~te/Docencia_archivos/ldh_archivos/T1.pdf http://ingridbasanta.blogspot.com/2007/12/dispositivos-lgicosprogramables.html http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/ 040401.htm