Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Aquí vemos como una PLD no programada (donde todos sus fusibles están
intactos), así para la salida O1 tenemos:
PROM
La ROM programable consiste básicamente 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 función lógica posible de las variables de
entrada, sin embargo se vuelven poco prácticas cuando se tiene que
atender a un gran número de entradas, debido a que se duplica el numero
de conexiones fusibles a medida que se agrega una entrada.
2
PAL
Las PROM son ideales para convertidores de código 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
términos que podemos obtener a la salida.
GAL
Las GAL aprovechan las ventajas de los dos dispositivos anteriores la
posibilidad de tener todos los términos de las entradas y la versatilidad de
las PAL en cuanto a la generación de funciones, además tienen en sus
salidas flip flops, para de esa forma poder generar circuitos secuenciales en
sus salidas.
3
Básicamente 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.
4
En el gráfico 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 realimentación hacia el arreglo de compuertas,
además 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 habilitación de salida (OE),
respectivamente.
Podemos ver la estructura interna simplificada de una OLMC:
5
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 plástico 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.
Métodos de programación
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 máquina 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 código fuente de tipo
.PDS que es el que podemos escribir en el editor del PALASM y luego
compilar para poder obtener el lenguaje tipo código máquina que en este
caso es el diagrama de fusibles, este archivo contiene información de las
conexiones que deben abrirse para que el dispositivo realice la función
6
deseada, el mismo es de tipo .JED y ese archivo debe ser entregado al
grabador de GAL para la programación del mismo, notemos que
independientemente de con que programa se realice el código fuente
(PALASM o WinCUPL) el archivo .JED que le entregamos al programador
debe ser idéntico.
.PDS
.JED
Lenguaje
El lenguaje de programación se compone de operadores y palabras
clave
Entre los operadores encontramos algunos de ellos:
/ NOT
+ OR
* AND
:+: XOR
:*: XNOR
() Agrupa ecuaciones
= Asigna la ecuación de la derecha a la
variable de la izquierda
*= La variable a su izquierda es
latcheada
:= La ecuación es secuencial
< Menor
<= Menor o igual
<> Distinto
Ejemplos:
D = /(A + B +/C)
/E := E + /A + /B
F *= B :+: C
7
Tenemos también 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 simulación, indica el
comienzo de la actividad en las
variables.
TRACE_OFF En simulación 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:
8
Para comenzar le damos a la opcion FILE à Bejín 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 continuación nos pide que le demos nombre a nuestro proyecto,
nuestro nombre, la compañía, 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.
9
En el editor vemos:
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:
11