Está en la página 1de 11

PLD PLD son las siglas de Programmable Logic Design o dispositivos de lgica programable.

Estos circuitos integrados permiten generar dentro del mismo funciones que no disponemos en los C.I. comerciales (decodificadores, comparadores, sumadores, etc). Podemos asimilarlo con un circuito en blanco dentro del cual podemos generar funciones adecuadas al problema que debemos resolver. La evolucin nos indica que las primeras necesidades de almacenar informacin se remontan a las primeras memorias ROM las cuales eran programadas mediante la destruccin de una matriz de diodos para realizar el almacenaje de datos, an ms las primeras memorias los datos de la misma deban ser grabados por el fabricante de la memoria con el consecuente costo y la poca seguridad d ebido a que alguien podra conocer mis datos. Debido a estos problemas surge la necesidad de poder almacenar los datos por el usuario y surge as la PROM, siglas de programmable ROM o sea memoria de solo lectura programable. Pasando los aos surgen las PAL (Progrmamble Array Logic) o Arreglo lgico programable que consiste en una matriz de compuertas que se puede interconectar a gusto. Finalmente surgen las GAL (Generic Array Logic) como la lgica de arreglo genrico aprovechando las ventajas de las PAL y PROM y integrando dentro del mismo C.I. la posibilidad de realizar lgica secuencial.

Aqu vemos como una PLD no programada (donde todos sus fusibles estn intactos), as para la salida O1 tenemos:
O1 = A.B + A.B + A.B + AB O1 = A. B + B + A. B + B O1 = A + A = 1

) (

De esta forma vemos como un PLD no programado permanece en un valor que puede ser 0 o 1. PROM La ROM programable consiste bsicamente en un arreglo de compuertas AND cableadas y un arreglo de compuertas OR. En estos dispositivos tenemos el arreglo de compuertas OR programable; as podemos generar cualquier funcin lgica posible de las variables de entrada, sin embargo se vuelven poco prcticas cuando se tiene que atender a un gran nmero de entradas, debido a que se duplica el numero de conexiones fusibles a medida que se agrega una entrada.

PAL Las PROM son ideales para convertidores de cdigo y para almacenar datos. Donde se pudiesen realizar las funciones necesarias sin utilizar todas las combinaciones de las entradas surgen las PAL con un arreglo AND programable y un arreglo OR fijo, esto nos limita el numero de productos trminos que podemos obtener a la salida.

GAL Las GAL aprovechan las ventajas de los dos dispositivos anteriores la posibilidad de tener todos los trminos de las entradas y la versatilidad de las PAL en cuanto a la generacin de funciones, adems tienen en sus salidas flip flops, para de esa forma poder generar circuitos secuenciales en sus salidas.

Bsicamente tiene dos arreglos programables uno AND y otro OR y en sus salidas posee algo llamado OLMC (Omni Logic Macro Cell) o Macro Celda de Logica Total.

En el grfico podemos la estructura interna de la GAL16V8 de la firma Lattice, notamos que tenemos entradas dedicadas(pines 2 a 8), negadas y no negadas, pines que pueden ser configurados como salida o entrada(12 a 19), ya que tienen una realimentacin hacia el arreglo de compuertas, adems las salidas pueden configurarse como secuenciales y combinacionales. Posee dos entradas con funciones especiales (pines 1 y 11) que son los pines de clock y de habilitacin de salida (OE), respectivamente. Podemos ver la estructura interna simplificada de una OLMC:

De la estructura interna de la OLMC surgen los tres modos de trabajo: Modo simple: Lgica combinacional de suma de productos sin salida de tres estados. Modo complejo: Lgica combinacional de suma de productos con salida de tres estados dependiente de las variables de entrada Modo registro: En un modo similar al modo complejo o como una salida con un registro tipo D. La forma de trabajo de la GAL es manejada por el software de programacin en funcin de cmo configuremos nuestras salidas y las funciones que realicemos. Nota: El mximo nmero de suma de productos es 8.

Nomenclatura

Por ejemplo: GAL16V8D 25LP GAL16V8D es el nombre del dispositivo 25 es la velocidad o sea 25 ns L es la potencia, o sea baja potencia. P es el encapsulado, en este caso plstico DIP (Dual in Line Package) Y como la ltima sigla no existe es de uso comercial, no apto para ambientes ruidosos como los industriales. Recomendaciones En general debemos tener las mismas recomendaciones que para un circuito TTL convencional. La GAL16V8 posee resistencia de pull-up en sus pines; soporta hasta 7 V, posee un retardo de 3.5 ns lo que le permite trabajar a frecuencias de hasta 250 MHz. Mtodos de programacin Estos dispositivos al igual que las computadoras permiten que se trabaje programando en alto nivel, luego valernos de un compilador que traduzca todas nuestras instrucciones en lenguaje mquina que pueda entender el dispositivo. Existen varios lenguajes, entre ellos: CUPL (utilizado por WinCUPL, Protel), PALASM (Siglas de assembler para PAL) y ABEL. Nos vamos a centrar en el lenguaje utilizado por AMD que es el PALASM ya disponemos de los medios para utilizarlo. En general vamos a disponer de un archivo de cdigo fuente de tipo .PDS que es el que podemos escribir en el editor del PALASM y luego compilar para poder obtener el lenguaje tipo cdigo mquina que en este caso es el diagrama de fusibles, este archivo contiene informacin de las conexiones que deben abrirse para que el dispositivo realice la funcin
6

deseada, el mismo es de tipo .JED y ese archivo debe ser entregado al grabador de GAL para la programacin del mismo, notemos que independientemente de con que programa se realice el cdigo fuente (PALASM o WinCUPL) el archivo .JED que le entregamos al programador debe ser idntico.

.PDS

.JED

Lenguaje El lenguaje de programacin se compone de operadores y palabras clave Entre los operadores encontramos algunos de ellos: / NOT + OR * AND :+: XOR :*: XNOR () Agrupa ecuaciones = Asigna la ecuacin de la derecha a la variable de la izquierda *= La variable a su izquierda es latcheada := La ecuacin es secuencial < Menor <= Menor o igual <> Distinto Ejemplos: D = /(A + B +/C) /E := E + /A + /B F *= B :+: C
7

Tenemos tambin palabras reservadas que solo pueden ser usadas por el lenguaje IF THEN ELSE Similar a C si, entices, sino. CASE OTHERWISE Similar a C. TRACE_ON Usado en simulacin, indica el comienzo de la actividad en las variables. TRACE_OFF En simulacin indica que no se modifican las variables. SETF Setea la variable al valor que se indique a su derecha, puede ir mas de una en la misma sentencia. CHECKF Indica al simulador el valor que debe tener la variable, de esta forma se comprueban errores. Ejemplos de If y Case:
IF (Condicion) THEN BEGIN Ecuaciones END ELSE BEGIN Ecuaciones END END END END OTHERWISE: BEGIN ACCION CASE (Variables) BEGIN VALOR: BEGIN ACCION

Con todos estas ecuaciones y operadores vamos a escribirlas en el editor del PALASM y compilarlas con el mismo. Para ello debemos instalar el PALASM y luego de descargarlo debemos tener cuidado ya que debemos agregar dos lneas a nuestro autoexec.bat: PATH C:\PALASM\EXE (o carpeta donde lo instalamos) SET PALASM = C:\PALASM (o carpeta donde lo instalamos) Una vez que lo instalamos y lo corrimos usando el archivo Palasm.exe desde la carpeta C:\PALASM\EXE vamos a obtener la siguiente pantalla de bienvenida:

Para comenzar le damos a la opcion FILE Bejn New Design se nos desplega un cuadro en el cual le damos el nombre: nombre.pds le decimos que es de tipo texto y e l damos F10, notemos que F10 funciona a modo de OK en este programa. A continuacin nos pide que le demos nombre a nuestro proyecto, nuestro nombre, la compaa, el dispositivo (en nuestro caso PALCE16V8). En la tabla inferior tenemos el listado de los pines del dispositivo, el nombre, si es combinatorial o secuencial, comentarios. Una vez que llenamos todo el formulario le damos con F10 hasta que llegamos al editor.

En el editor vemos:

En la cual podemos escribir nuestras ecuaciones y simulaciones, una vez que finalizamos le damos Esc para que aparezca el men superior

Donde podremos salvar nuestro trabajo y luego salir a la pantalla inicial. Nota: La forma de copiar y pegar es bastante rebuscada y es as: Debemos presionar Ctrl. + KB para indicar el comienzo del bloque, luego Ctrl. + KK para indicar el fin del bloque, en ese momento tenemos el texto seleccionado, nos posicionamos en el lugar donde lo queremos pegar y le damos Ctrl. + KC. Nuevamente en la pantalla inicial podemos ir al menu RUN Compilation para obtener de esa manera nuestro archivo .JED. En el caso de que todo est correcto veremos un mensaje de xito. En el menu View Pinout veremos que nombre le dimos a cada pin. Luego de efectuar la simulacin podemos ver la forma de onda en View Waveform display. El programa posee una completa ayuda en lnea del lenguaje tambin. Programador de GAL Con nuestro archivo .JED, estamos listos para programar nuestra GAL primeramente debemos encender el programador desde la tecla que tiene en su parte trasera, antes de encenderlo debemos insertarle el peine

10

(circuito impreso que corresponde con el dispositivo o familia de CI que queremos programar, en nuestro caso el 3b). Una vez encendido debemos iniciar el software del programador llamado emp20. Obtenemos la siguiente pantalla de bienvenida:

Lo primero que hacemos es seleccionar el dispositivo con la opcion 5, luego cargamos el archivo del disco, para ello con v lo seleccionamos presionando F1 y buscamos el archivo donde se encuentre (buscamos el .JED que realizamos con el PALASM). Paso posterior es cargar nuestro archivo al buffer del programador con la opcin 8, luego podemos con la primera opcin programar nuestra GAL. En este momento debemos tener insertada nuestra GAL en el programador teniendo en cuenta que debemos insertarla desde abajo en el zcalo ZIF de la misma. Si desean armar un programador de bajo coste para GAL pueden poner en google minimum effort GAL programming y con un zocalo 20x10, unas resistencias, un capacitor y un par de cables pueden realizar el programador.

11

También podría gustarte