APRENDA PLDs, PRINCIPIOS Y APLICACIONES
ELABORADO POR:
ING. LUIS GERARDO FLORES RODRIGUEZ
2 DERECHOS RESRVADOS 2002 Ing. Luis Gerardo Flores Rodrguez. Esta obra y sus caractersticas son propiedad del autor, cualquier reproduccin total o
parcial, queda estrictamente prohibida, de acuerdo a los derechos de autor que marca la ley.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
3
Resumen
En el captulo uno, se presenta un repaso de los principios de los sistemas digitales, como
es el lgebra booleana, los mapas de Karnaugh, las compuertas simples y compuestas.
En el captulo dos, se detalla que es la lgica programable, los tipos de PLDs, ventajas,
limitaciones, seleccin, nomenclatura, las Macroceldas de salida lgica (OLMC),
fabricantes de PLDs, y los pasos necesarios para la programacin.
En el captulo tres, se describe el software de desarrollo utilizado en este trabajo, el
WinCUPL (Compilador Universal de Lgica Programable bajo el sistema Windows), este
software de la compaa Logic Devices Co., es uno de los mas populares en el mercado.
En el captulo cuatro, se menciona los tres posibles mtodos de programacin en la lgica
combinacional, donde se incluyen un ejemplo en cada mtodo de implementacin, dando
explicacin paso a paso para su programacin.
Y por ultimo, el captulo cinco nos indica las dos maneras de programacin en la lgica
secuencial; por secuencia y por ecuaciones. En ambas formas mostramos un ejemplo
prctico, dando por conclusin el mismo resultado.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
4
Contenido
Derechos de autor
Resumen
Contenido
Figuras
Antecedentes
1. INTRODUCCIN.
1.1 Sistemas analgicos y digitales
1.2 Sistemas Numricos
1.3 Tabla de verdad
1.4 Compuertas simples y compuestas
1.4.1 Compuertas simples
1.4.2 Compuertas compuestas
1.5 lgebra Booleana
1.6 Minitrminos y Maxitrminos
1.6.1 Minitrminos.(Suma de Productos).(m).
1.6.2 Maxitrminos.(Productos de Suma).(M).
1.6.3 Minimizacin de funciones combinacionales
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
5
1.7 Mapas de Karnaugh
1.7.1 Definicin.
1.7.2 Redundancias.(d).
2. DISPOSITIVOS LGICOS PROGRAMABLES.
2.1 Qu es la lgica programable?.
2.1.1 ASIC
2.1.2 PROM
2.1.3 PAL.
2.1.4 GAL
2.1.5 PLA
2.1.6 PLDs complejos.
2.1.7 FPGA.
2.2 Ventajas del uso de PLDs.
2.3 Limitaciones de las PLDs.
2.4 Seleccin del modelo adecuado para cada aplicacin.
2.5 Nomenclatura generalizada de las PLDs.
2.6 PALs programables varias veces : serie PALCExxx y GALs.
2.7 Fabricantes de PALs y GALs.
2.8 Programacin de los PLDs.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
6 3. COMPILADOR UNIVERSAL PARA LOGICA PROGRAMABLE. (WinCUPL)
3.1 Flujo de Datos.
3.2 Ciclo de "desarrollo".
3.3 Medio ambiente del WinCUPL.
3.3.1 Comandos de la barra de herramienta.
3.3.2 Comandos del men File:.
3.3.3 Comandos del men Edit:.
3.3.4 Comandos del men View:.
3.3.5 Comandos del man Options:.
3.3.6 Comandos del men Run:.
3.3.7 Comandos del men Utilities:.
3.3.8 Comandos del men Window:.
3.3.9 Comandos del men Help:.
3.4 Elementos del lenguaje.
3.4.1 Variables.
3.4.2 Palabras y smbolos reservados.
3.4.2.1 Palabras reservadas.
3.4.2.2 Smbolos reservados.
3.4.3 Comentarios.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
7
3.4.4 Notacin de listas.
3.4.5 Archivo Plantilla.
3.4.6 Declaracin de Pines y Campos.
3.4.6.1 Declaracin de pines.
3.4.6.2 Declaracin de campos de bits.
3.4.7 Comandos de Preprocesamiento.
3.4.8 Operadores Lgicos.
3.4.9 Extensiones.
3.4.10 Expresiones.
3.4.11 Ecuaciones Lgicas.
4. LOGICA COMBINACIONAL.
4.1 Ejemplo usando tabla de verdad.
4.2 Ejemplo usando ecuaciones booleanas.
4.3 Ejemplo usando el programa esquemtico.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
8 5. LOGICA SECUENCIAL.
5.1 La macrocelda lgica de salida (OLMC) del GAL22V10.
5.2 La OLMC de la GAL16V8.
5.3 El modo combinacional.
5.4 El modo secuencial.
5.5 Tipos de mquinas de estados.
5.6 Ejemplo.
5.6.1 Implementacin utilizando la secuencia de estados.
5.6.2 Implementacin usando ecuaciones minimizadas.
Bibliografa.
Abreviaturas.
Glosario.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
9
Figuras Figura 1.1 Ejemplo de representaciones anlogas y digitales.
Figura 1.2 Mapas de Karnaugh.
Figura 1.3 Ejemplo de minimizacin.
Figura 2.1 Arquitectura elemental del PROM.
Figura 2.2 Arquitectura elemental del PAL.
Figura 2.3 Arquitectura elemental de un PLA.
Figura 2.4 Arquitectura elemental de un FPGA.
Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.
Figura 2.6 Constitucin de Macroceldas de salida lgica (OLMCs) de un GAL.
Figura 2.7 Sistema necesario para el desarrollo de un PLD.
Figura 3.1 Flujo de datos del WinCUPL.
Figura 3.2 Diagrama de flujo del ciclo de desarrollo de PLDs.
Figura 3.3 Pantalla general del WinCUPL.
Figura 4.1 Modo de programar el PLD.
Figura 4.2 Pantalla de creacin de un nuevo archivo.
Figura 4.3 Pantalla de edicin .
Figura 4.4 Pantalla de insercin de la tabla.
Figura 4.5 Acomodo de las variables y de la tabla de verdad.
Figura 4.6 Pantalla Output Files.
Figura 4.7 Pantalla de Minimization.
Figura 4.8 Pantalla Optimization.
Figura 4.9 Pantalla Devices.
Figura 4.10 Pantalla Library.
Figura 4.11 Pantalla General.
Figura 4.12 Pantalla de opciones del simulador.
Figura 4.13 Pantalla de los resultados de la compilacin .
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
10 Figura 4.14 Pantalla de cabecera del WinSim.
Figura 4.15 Pantalla de resultados de la simulacin.
Figura 4.16 Minimizacin de la ecuacin.
Figura 4.17 Pantalla de cabecera.
Figura 4.18 Pantalla de Edicin .
Figura 4.19 Pantalla de cabecera del WinSim.
Figura 4.20 Resultados simulados del WinSim.
Figura 4.21 Pantalla general del programa Schematic.
Figura 4.22 Botones de herramienta.
Figura 4.23 Implementacin lgica de la ecuacin de nmeros primos.
Figura 4.24 Programa fuente generado por el Schematic.
Figura 4.25 Pantalla de la cabecera del WinCUPL.
Figura 4.26 Programa fuente generado por Schematic, pegado en WinCUPL.
Figura 4.27 Programa fuente arreglado.
Figura 4.28 Pantalla de los resultados de simulacin del programa Numprim_sh.
Figura 5.1 OLMC del GAL22V10.
Figura 5.2 OLMC del GAL16V8.
Figura 5.3 Modo combinacional para salidas activas a nivel bajo y a nivel alto.
Figura 5.4 Modo secuencial para salidas activas a nivel bajo y a nivel alto.
Figura 5.5 Diagrama de bloques generales para los dos tipos de mquinas de estado.
Figura 5.6 Distribucin fsica del problema de control de semforos.
Figura 5.7 Comportamiento del circuito.
Figura 5.8 Tabla equivalente con valores bolanos.
Figura 5.9 Minimizacin por mapa de las salidas Z1 y Z2.
Figura 5.10 Programa fuente en WinCUPL, usando la secuencia de estados.
Figura 5.11 Resultado de la simulacin.
Figura 5.12 Minimizacin de las salidas de los flip-flops D.
Figura 5.13 Programa fuente, utilizando ecuaciones lgicas.
Figura 5.14 Resultado de la simulacin.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
11
Antecedentes
El incremento de popularidad y de utilizacin de los dispositivos lgicos programables o
PLDs est siguiendo un proceso solamente comparable al que hace algunos aos acompa
a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos
electrnicos de control, industriales, de consumo, de oficina, de comunicaciones, etc.
Desde finales de la dcada de los sesenta, los equipos electrnicos digitales se han
construido utilizando circuitos integrados de funcin lgica fija, realizados en pequea o
mediana escala de integracin. Para las realizaciones muy complejas que exigiran un
nmero elevado de circuitos integrados (CI) de funcin fija, se utilizan circuitos diseados
a medida que slo sirven para una aplicacin. Son los llamados CI especficos a una
aplicacin o ASIC (Application Specific Integrated Circuit). Por regla general, los ASICs
los producen los fabricantes de CI con las especificaciones proporcionadas por el usuario.
Los equipos realizados con ASICs ocupan menos espacio, son ms fiables, consumen
menos energa y en grandes series resultan ms baratos que los equipos equivalentes
realizados con CI de funcin fija. Por otro lado, estos circuitos son muy difciles de copiar.
Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices
de Puertas (Gate Arrays), las Clulas Normalizadas (Standard Cell) y los FPICs (Field
Programmable Integrated Circuits); estos ltimos son circuitos programables por el usuario
final.
Los PLDs (Programmable Logic Devices) son pequeas ASICs configurables por el
usuario capaces de realizar una determinada funcin lgica. La mayora de los PLD
consisten en una matriz de puertas AND seguida de otra matriz de puertas OR. Mediante
esta estructura, puede realizarse cualquier funcin como suma de trminos productos.
Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye
de esta denominacin debido a que su contenido se define utilizando elementos de
desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y
lenguajes de programacin de alto nivel. Otras veces, cuando estas memorias se usan para
realizar una funcin lgica y no para guardar un programa de un microprocesador, se las
incluye dentro del trmino PLD.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
12 Los PLDs estn situados en una zona intermedia entre los dispositivos a medida y la lgica
de catlogo formada por los CI de funcin fija. Tienen casi todas las ventajas de los ASICs
sin estar penalizados por un costo elevado para pequeas series. Adems el ciclo de diseo
con PLDs es mucho ms rpido que los de las matrices de puertas o las clulas
normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos
hasta unas decenas de CI de funcin fija, mientras que los grandes ASICs pueden sustituir a
cientos e incluso miles de CI. En ocasiones, los PLD se utilizan para realizar prototipos que
posteriormente se llevarn a un ASIC ms complejo.
El trabajo con PLDs proporciona: facilidad de diseo, prestaciones, fiabilidad, economa y
seguridad.
Las herramientas de soporte al diseo con PLDs facilitan enormemente este proceso. Las
hojas de codificacin que se utilizaban en 1975 han dejado paso a los ensambladores y
compiladores de lgica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD,
etc.). Estas nuevas herramientas permiten expresar la lgica de los circuitos utilizando
formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para
mquinas de estados, esquemas, etc. La simulacin digital posibilita la depuracin de los
diseos antes de la programacin de los dispositivos. Todo el equipo de diseo se reduce a
un software de bajo costo que corre en una PC, y a un programador.
Los PLDs TTL que hay en el mercado tienen tiempos de conmutacin tan rpidos como los
circuitos integrados de funcin fija ms veloces. Los PLDs ECL son todava ms rpidos.
Sin embargo, el incremento de velocidad obtenido con los dispositivos CMOS, que ya han
igualado o superado en prestaciones a los dispositivos TTL, est provocando el abandono
de la tecnologa bipolar por parte de los fabricantes. En cuanto al consumo de potencia, los
PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.
Cuanto ms complejo es un circuito, ms probabilidades hay de que alguna de sus partes
falle. Puesto que los PLDs reducen el nmero de chips en los sistemas, la probabilidad de
un fallo disminuye. Los circuitos impresos con menor densidad de CI son ms fciles de
construir y ms fiables. Las fuentes de ruido tambin se reducen.
En cuanto economa, hay aspectos que resultan difciles de cuantificar. Por ejemplo, los
costos de prdida de mercado por una introduccin tarda de un producto.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
13 Otros son ms claros, por ejemplo, la reduccin del rea de las placas de circuito impreso
obtenida gracias a que cada PLD sustituye a varios circuitos integrados de funcin fija.
Muchas veces se consigue reducir el nmero de placas de circuito impreso economizndose
en conectores. La reduccin de artculos en almacn tambin aporta ventajas econmicas.
De la misma manera que para altos volmenes de produccin las memorias ROM resultan
de menor costo que las EPROM, las HAL (Hard Array Logic) o PLDs programados por el
fabricante proporcionan ahorros adicionales en grandes cantidades.
Los PLDs tienen fusibles de seguridad que impiden la lectura de los dispositivos
programados, protegiendo los diseos frente a copias.
Adems de los puntos mencionados, podemos aadir que los PLDs facilitan el ruteado de
las placas de circuito impreso debido a la libertad de asignacin de patillas que
proporcionan. Permiten realizar modificaciones posteriores del diseo y en ocasiones hacen
posible la reutilizacin de circuitos impresos con algunos fallos, mediante una reasignacin
de los PLDs.
Existen en la actualidad infinidad de arquitecturas diferentes de PLDs y su nmero se
incrementa da a da. Aunque resulta casi imposible hacer una referencia completa de todos
los tipos de PLDs en el mercado, en este trabajo slo se presentarn algunas de las ms
comunes.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
14 1. INTRODUCCIN.
1.1 Sistemas analgicos y digitales. En la ciencia, la tecnologa, la administracin y, de hecho, muchos otros campos de la
actividad humana, constantemente se manejan cantidades. Estas se miden, monitorean,
registran, manipulan aritmticamente, observan o, en alguna otra forma, se utilizan en
muchos sistemas fsicos. Cuando se manejan diversas cantidades es importante que
podamos representar sus valores con eficiencia y exactitud. Existen bsicamente dos
maneras de representar el valor numrico de las cantidades: La analgica y la digital.
Representaciones analgicas.- en la representacin analgica, una cantidad se denota por medio de otra que es proporcional a la primera.
Las cantidades analgicas tienen una caracterstica importante: Pueden variar gradualmente sobre un intervalo continuo de valores.
Representaciones digitales.- las cantidades no se denotan por valores proporcionales, sino por smbolos denominados dgitos.
ANALGICA CONTINUO DIGITAL DISCRETO
Figura 1.1 Ejemplo de representaciones anlogas y digitales.
Sistema digital.- es una combinacin de dispositivos diseada para manipular cantidades fsicas o informacin que estn representadas en forma digital; esto es,
que solo pueden tomar valores discretos.
Sistemas analgicos.- contienen dispositivos que manipulan cantidades fsicas representadas en forma analgica. En un sistema de este tipo, las cantidades varan sobre un intervalo continuo de valores.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
15
Ventajas de las tcnicas digitales.
1. Los sistemas digitales son ms fciles de disear.
2. Facilidad para almacenar la informacin.
3. Mayor exactitud y precisin.
4. Programacin de la operacin.
5. El ruido afecta en forma mnima a los circuitos digitales.
Limitaciones de la tcnicas digitales.
Solo un problema: El mundo real es fundamentalmente ANALGICO
(velocidad, temperatura, distancia, sonido,... etc).
Cuando se tienen entradas y salidas analgicas, deben seguirse tres pasos para aprovechar
las tcnicas digitales:
1. Convertir las entradas analgicas del mundo real a la forma digital.
2. Procesar ( realizar operaciones) con la informacin digital.
3. Convertir de nuevo las salidas digitales a la forma analgica del mundo
real.
Cada vez es ms frecuente observar dentro de un mismo sistema el empleo de tcnicas
analgicas y digitales para obtener mayor beneficio de ambas. En estos sistemas hbridos,
uno de los aspectos ms importantes de la fase de diseo es determinar que partes del
sistema sern analgicos y cuales digitales.
1.2 Sistemas Numricos. El sistema numrico decimal fue inventado por matemticos hindes hace ms de dos mil
aos y los rabes lo introdujeron al mundo occidental en el siglo trece. Consta de diez smbolos que van del cero al nueve, introduce el concepto del valor posicional, en el que
cada posicin representa la base elevada a una potencia. En base 10 el dgito que se
encuentra en la posicin de unidades debe ser multiplicado por 100, el de decenas por 101,
el de centenas por 102, etc. Por ejemplo:
7865 = (7 * 103) + (8 * 102) + (6 * 101) + (5 * 100)
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
16 existen muchos otros sistemas numricos, los cuales comparten con el sistema decimal las
siguientes propiedades:
El nmero de smbolos diferentes (dgitos) usados por el sistema es igual a la base. El dgito mayor es siempre una unidad menor a la base. En cada posicin se multiplica el valor del dgito por la base elevada a la potencia
correspondiente. Para un nmero entero, el ltimo dgito (o sea el de la derecha)
est multiplicado por la base elevada a la potencia cero, el penltimo est
multiplicado por la base elevada a la potencia uno, el antepenltimo por la base
elevada a la potencia dos, y as sucesivamente.
Los acarreos en sumas y restas, se propagan hacia la siguiente posicin con mayor peso ponderal.
El sistema numrico binario solo encuentra aplicacin prctica hasta hace
aproximadamente 50 aos al iniciarse el desarrollo de automatismos a relevadores.
Actualmente se emplea profusamente en las computadoras e instrumentos digitales por
requerir solo de dos niveles de seal para representar cada dgito.
El sistema binario consta de dos dgitos 0 y 1. Al representar un nmero entero en
binario la posicin de la derecha est multiplicado por 20, la siguiente a 21, la siguiente
por 22, etc.
A cada dgito binario se le llama bit. Al bit de la extrema derecha se le conoce como
bit menos significativo y al de la extrema izquierda bit ms significativo.
Ejemplo.- determine el valor del nmero binario 1011.
(1011) = (1 * 23) + (0 * 22) + (1 * 21) + (1 * 20)
= (1 * 8) + (0 * 4) + (1 * 2) + (1 * 1)
= 8 + 2 + 1 = 11
El sistema binario no es muy conveniente para que nosotros representemos cantidades
grandes, pues se requieren demasiados ceros y unos. Por tal razn se emplean
frecuentemente otros sistemas que correspondan a una representacin abreviada del sistema
binario. Si se considera que existen 16 posibles combinaciones para un grupo de 4 bits (24 =
16) se tiene que un dgito hexadecimal (base 16) sustituye a cuatro dgitos binarios.
En el sistema hexadecimal trabajamos con 16 smbolos que son los nmeros 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, y las letras A, B, C, D, E, F.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
17 El procedimiento para convertir de binario a hexadecimal requiere solo separar al nmero
binario en grupos de 4 bits y sustituir cada grupo por el dgito hexadecimal
co el procedimiento.
Ej 1111001000
01
(7
1.A
lla
Va
A A,A, n 1. 1.
ANTa
Aprrespondiente. Para convertir de hexadecimal a binario se invierte
emplo.- Convertir de binario a hexadecimal el nmero binario 0111 1100 1000
) (C) (8)
3 Tabla de verdad. las posibles combinaciones de las
ma tabla de verdad.
riables lgicas:
0, 1 B 00,01, 10, 11 B, C 000, 001, 010, 011, 100, 1
2n
4 Compuertas simples y co
4.1 Compuertas simples.
D.- bla de verdad
B A F 0 0 0 0 1 0 1 0 0 1 1 1
renda PLDs Principios y Aplica variables de entrada, y la salida de un circuito lgico se
01, 110, 111
mpuestas.
Smbolo Funcin lgica
F =A*B A B
F
ciones. L. Gerardo Flores R.
18 OR.- Ta Funcin lgica INTa Funcin lgica A F F =A 0 1 1 0 1.4.2 Compuertas compuestas.
NAND.- Tabla de verdad Smbolo Funcin lgica NOR.- Tabla de verdad lg
B
A F
1 1 1
F =A
B A F 0 0 1 0 1 1 1 0 1 1 1 0
1 1 0
Aprenda PLDs Principios y Aplicaci
on
Smbolo Funcin
A B
FF = A B
A+Bica
A B
FB A F 0 0 1 0 1 0 1 0 0 es. L.F = GerarVERSOR.- bla de verdad Smbolo bla de verdad Smbolo
A F
B A F 0 0 0 0 1 1 1 0 1 + Bdo Flores R.
19 XOR.- OR exclusivo.- Tabla de verdad Smbolo Funcin lgica NOREX.- NOREX.- NOR Exclusivo Tabla de verdad Smbolo Funcin lgica F
FA B
F =A B + A B = AB
F =A B + A B A B
B A F 0 0 0 0 1 1 1 0 1 1 1 0
0 0 1 B A F
0 1 0 1 0 0 1 1 1
1.5 lgebra Booleana.
Mtodo matemtico para tratar de describir las propiedades de un sistema formal de
pensamiento que nicamente permite dos Posibilidades discursivas: Si-No, Arriba-Abajo,
Blanco-Negro, Cero-Uno. El creador de todo esto fue el matemtico ingls George Boole
(1815-1864).
Funciones, Leyes y Propiedades del lgebra Booleana:
Funcin AND. Funcin OR. Inversor.
0 * 0 = 0 0 + 0 = 0 0 = 1 0 * 1 = 0 0 + 1 = 1 1 * 0 = 0 1 + 0 = 1 1 = 0 1 * 1 = 1 1 + 1 = 1
Ley conmutativa. Ley distributiva. Ley asociativa. X * Y = Y * X X * (Y + Z) =X * Y + X * Z X*(Y * Z) = (X * Y)Z X + Y =Y + X X + Y * Z = (X + Y) * (X + Z) X + (Y + Z)=(X + Y) + Z
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
20 Absorcin. Identidad. Propiedad de la AND. X + X * Y =X X + X * Y = X + Y X * 0 = 0 X*(X + Y) =X X * (X + Y) = X *Y 0 * X = 0 X * 1 = X 1 * X = X Propiedades de la OR. Combinando. Doble complemento. X + 0 = X X * X = X 0 + X = X X * X = 0 X = X X + 1 = 1 X + X = X 1 + X = 1 X +X = 1 Leyes de Morgan de la complementacin. X + Y =X * Y X * Y = X + Y
1.6 Minitrminos y Maxitrminos. 1.6.1 Minitrminos.(Suma de Productos).(m) Una forma de sintetizar una funcin es a partir de la tabla de verdad.
Suma de productos.- Si en cada trmino de la funcin aparecen todas las variables, a esta
expresin se le llama funcin cannica externa (FCA) o suma de productos estndar.
Ejemplo.-
F (C, B, A) = A +AB + ABC suma de productos. F (C, B, A) = ABC + ABC + ABC FCA. A los trminos que tienen todas las variables se les llama minitrminos.
Para obtener la FCA partiendo de una tabla de verdad, se procede con lo siguiente:
Se toman los renglones donde la funcin es 1, si la variable es 1 se deja tal cual, si es cero
se niega, despus se suman lgicamente los productos lgicos correspondiente a dicho
rengln.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
21 Ejemplo:
1.6.2 Maxitrminos.(Productos de Suma).(M)
Cuando en cada trmino ( producto) aparecen todas las variables se llama maxitrmino y a
la expresin formada por maxitrminos se le llama funcin cannica conjunta o producto
de suma estndar (FCC).
F(C, B, A) = (A + B)( C + A) productos de suma F(C, B, A) = (A +B + C)(A + B +C) FCC
B A F 0 0 0 0 1 1 1 0 1 1 1 0
F = AB +AB
Una FCC se obtiene de una tabla de verdad de la forma siguiente:
Se toman de la columna de salida los ceros, si la variable es uno se niega, si es cero se deja
tal cual, despus se multiplican lgicamente los maxitrminos asociados a cada rengln.
1.6.3 Minimizacin de funciones combinacionales.
La tarea de un diseador lgico consiste en implementar una funcin lgica al mnimo
costo.
Mtodos de Minimizacin:
Veitch Karnaugh Quine McCluskey
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
22 1.7 Mapas de Karnaugh. As como una tabla de verdad representa una funcin lgica, en los mapas se asocia un rea
a la combinacin de las variables y la funcin se representa por un 1 o un 0 en dichas
reas. Mapas de Karnaugh.
F Mapas de Karnaugh
1.7.1 Definicin.
Dos trminos son lgicamente adyacentes cuando difieren en una variable
AB C ABC
DC B A DCBA
0 1
0 0 1
00 01 11 1000 01 11 10
00 01 11 10
0
1
No son lgicamente adyacentes.
Son lgicamente adyacentes
Cuatro variables.Tres variables.
Una variable.
Dos variables.
Aprenda PLDs Principios y Aplicaciones. L.igura 1.2 1 nicamente. Gerardo Flores R.
23 Una funcin ser mnima cuando contiene el mnimo nmero de trminos y cada trmino el
nmero mnimo de variables.
El proceso de Minimizacin es el siguiente:
Del mapa de Karnaug se asocia el mximo nmero de unos (ser en potencia de dos, o
sea, 1, 2, 4, 8, ) que
El proceso de Minimiz
El trmino minimizado
hayan sido asociados s
1.7.2 Redundancias.(En ciertas ocasiones l
entrada, ya que estas c
importa (dont care)
smbolos y se les llama
Redundancias
En el proceso de mini
convenga.
Aprenda PLDs Principhsean lgicamente adyacentes entre s.
acin se lleva a cabo por una aplicacin interactiva del teorema:
AB +AB = A. contendr las variables que no cambian, as mismo, los unos que
e pueden volver a asociar segn el teorema:
A +A = A.
00 01 11 10 00 1 0 0 0 01 1 1 1 0 11 1 1 1 0 10 1 0 0 0 F = WY +WX
Figura 1.3 Ejemplo de minimizacin.
d)
a funcin no depende de ciertas combinaciones de las variables de
ombinaciones no se presentan. Se dice que el valor de la funcin no
. En la columna de salida esto se representa por los siguientes
redundancias:
X
*
mizacin la redundancia se toma como uno como cero segn ms
ios y Aplicaciones. L. Gerardo Flores R.
24 Ejemplo.- Implementar la siguiente funcin:
F = m(0, 3, 4, 8, 12) + d(1, 2, 10)
00 01 11 10 00 1 X 1 X 01 1 0 0 0 11 1 0 0 0 10 1 0 0 X
F = AB + CD
D C B A
F
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
25 2. DISPOSITIVOS LGICOS PROGRAMABLES.
2.1 Qu es la lgica programable?. La lgica programable, como el nombre implica, es una familia de componentes que
contienen conjuntos de elementos lgicos (AND, OR, NOT, LATCH, FLIP-FLOP) que
pueden configurarse en cualquier funcin lgica que el usuario desee y que el componente
soporte.
Todas las entradas pueden conectarse a una misma compuerta AND, pero cada compuerta
AND est conectada a una determinada compuerta OR de salida. Los dispositivos PLDs
surgieron como un compromiso entre desempeo y flexibilidad-costo. Las PLA tienen
mayor flexibilidad debido a que tienen tanto la matriz AND como la OR programables,
pero eso implica un menor rendimiento. Con una sola matriz programable, las PALs ganan
velocidad a costa de la prdida de un poco de flexibilidad eso se compensa mediante la
oferta de varias configuraciones bsicas y la incorporacin de las GALs, sobre las cuales
trataremos unas lneas ms adelante.
Hay varias clases de dispositivos lgicos programables: ASICs, FPGAs, PLAs, PROMs,
PALs, GALs, y PLDs complejos.
2.1.1 ASIC.
ASIC significa Circuitos Integrados de Aplicacin Especfica y son dispositivos definibles
por el usuario. Los ASICs, al contrario que otros dispositivos, pueden contener funciones
analgicas, digitales, y combinaciones de ambas. En general, son programables mediante
mscara o sea, que los fabricantes configuran el dispositivo segn las especificaciones del
usuario, y no por el usuario. Se usan para combinar una gran cantidad de funciones lgicas
en un dispositivo. Sin embargo, estos dispositivos tienen un costo inicial alto, por lo tanto
se usan principalmente cuando se necesitan en una gran cantidad. Los encontramos por
ejemplo en los telfonos celulares, juegos de video,...,etc.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
26 2.1.2 PROM.
Las PROM son memorias programables de slo lectura. Aunque el nombre no implica la
lgica programable, las PROM, son de hecho lgicas. La arquitectura de la mayora de las
PROM consiste generalmente en un nmero fijo de trminos AND que alimenta una matriz
programable OR. Se usan principalmente para decodificar las combinaciones de entrada en
funciones de salida.
Aprenda
AND FIJA
OR PROGRAMABLE
Figura 2.1 Arquitectura elemental del PROM
PLDs Principios y Aplicaciones. L. Gerardo Flores R.
27 2.1.3 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.
AND PROGRAMABLE
OR FIJO
Figura 2.2 Arquitectura elemental del PAL.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
28 2.1.4 GAL.
Las GAL son dispositivos de matriz lgica genrica. Estn diseados para emular muchas
PAL pensadas para el uso de macroclulas. Si un usuario tiene un diseo que se
implementa usando varias PAL comunes, puede configurar varias de las mismas GAL para
emular cada de uno de los otros dispositivos. Esto reducir el nmero de dispositivos
diferentes en existencia y aumenta la cantidad comprada. Comnmente, una cantidad
grande del mismo dispositivo debera rebajar el costo individual del dispositivo. Estos
dispositivos tambin son elctricamente borrables, lo que los hace muy tiles para los
ingenieros de diseo.
2.1.5 PLA.
Las PLA son matrices lgicas programables. Estos dispositivos contienen ambos trminos
AND y OR programables lo que permite a cualquier trmino AND alimentar cualquier
trmino OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros
dispositivos con respecto a la lgica funcional. Normalmente poseen realimentacin desde
la matriz OR hacia la matriz AND que puede usarse para implementar mquinas de estado
asncronas. La mayora de las mquinas de estado, sin embargo, se implementan como
mquinas sncronas. Con esta perspectiva, los fabricantes crearon un tipo de PLA
denominado Secuencial (Sequencer) que posee registros de realimentacin desde la salida
de la matriz OR hacia la matriz AND.
Figura 2.3 Arquitectura elemental de un PLA.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
29 2.1.6 PLDs complejos.
Los PLDs complejos son lo que el nombre implica, Dispositivos Complejos de Lgica
Programable. Se consideran PAL muy grandes que tienen algunas caractersticas de las
PLA. La arquitectura bsica es muy parecida a la PAL con la capacidad para aumentar la
cantidad de trminos AND para cualquier trmino OR fijo. Esto se puede realizar quitando
trminos AND adyacentes o empleando trminos AND desde una matriz expandida. Esto
permite que cualquier diseo pueda ser implementado dentro de estos dispositivos.
2.1.7 FPGA.
Las FPGA son Campos de Matrices de Puertas Programables. Simplemente son matrices de
puertas elctricamente programables que contienen mltiples niveles de lgica. Las FPGA
se caracterizan por altas densidades de puerta, alto rendimiento, un nmero grande de
entradas y salidas definibles por el usuario, un esquema de interconexin flexible, y un
entorno de diseo similar al de matriz de puertas. No estn limitadas a la tpica matriz
AND-OR. Por contra, contienen una matriz interna configurable de relojes lgicos (CLBs)
y un anillo de circunvalacin de bloques de E/S (IOBs).
Cada CLB contiene lgica programable combinacional y registros de almacenamiento. La
seccin de lgica combinacional es capaz de implementar cualquier funcin booleana de
sus variables de entrada.
Cada IOB puede programarse independientemente para ser una entrada, y salida con
control tri-estado o un pin bidireccional. Tambin contiene flip-flops que pueden usarse
como buffers de entrada y salida. Los recursos de interconexin son una red de lneas que
corren horizontalmente y verticalmente las filas y columnas entre el CLBS.
Los interruptores programables conectan las entradas y salidas de IOBS y CLBS a lneas
cercanas. Las lneas largas recorren la anchura o longitud entera del dispositivo,
estableciendo intercambios para proporcionar una distribucin de seales crticas con la
mnima demora o distorsin.
Los diseadores que usan FPGAs pueden definir funciones lgicas en un circuito y revisar
estas funciones como sea necesario. As, las FPGAs pueden disearse y verificarse en unos
das, a diferencia de las varias semanas necesarias para las matrices de puerta
programables.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
30
Figura 2.4 Arquitectura elemental de un FPGA.
2.2 Ventajas del uso de PLDs.
Reduccin de retardos de propagacin de las lgicas. Reduccin del nmero de puntos de soldadura y de cables o pistas. Con
ello se logra aumentar la confiabilidad.
Facilidad para cambiar el diseo. Menor nmero de circuitos integrados, y por ende, disminucin del
consumo de energa y de las fuentes posibles de ruido y aumento de la
confiabilidad del circuito.
Menor superficie ocupada en la placa. Proteccin del diseo (fusible de seguridad). Su tiempo de propagacin ronda los 5 a 10 ns, equivalente al de las
Aprencompuertas que puede reemplazar; pero con una sola PLD se pueden
da PLDs Principios y Aplicaciones. L. Gerardo Flores R.
31
reemplazar varios niveles o retardos de compuertas.
Facilidad de diseo y montaje. Reduccin de la variedad de circuitos integrados usados en el circuito,
disminuyendo su costo de produccin seriada.
Optimizacin del diseo a bajo costo.
2.3 Limitaciones de las PLDs.
Las PAL son OTP, es decir, slo se pueden programar una vez. Su precio es un poco mayor a las compuertas simples o
compuestas.
No se encuentran comnmente en tiendas comerciales de electrnica.
Dado que el nmero de minitrminos es limitado, algunas lgicas necesitaran varios PLDs para ser implementadas y quizs resulta ms
simple y menos costoso implementarla con compuertas.
2.4 Seleccin del modelo adecuado para cada aplicacin. Caractersticas a evaluar:
Nmero de entradas. Nmero de salidas. Nmero de lneas de E/S. Polaridad de salida. Salidas combinacionales. Salidas XOR. Salidas de registro (R-S, J-K, D T ; en general D). Salidas TRI-STATE. Nmero de minitrminos. Realimentacin de salidas. Macroceldas.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
32 2.5 Nomenclatura generalizada de las PLDs. Tecnologa:
PAL = Programmable Array Logic (TTL) GAL = Generic Array Logic (E2CMOS) PL = Factory Programmed PAL Nmero de Entradas Tipo de Salida: L = Activa Baja H = Activa Alta C = Complementaria P = Polaridad Programada V = Variable (GAL solamente) Z = Reprogramable en el sistema (GAL) Nmero de Salidas Velocidad: Sin smbolo = 35 ns (TTL) A = 25 ns (TTL) B = 15 ns (TTL) D = 10 ns (TTL) A-10 = 10 ns (GAL) A-12 = 12 ns (GAL) A-20 = 20 ns (GAL) Tipo de Paquete: N = DIP de Plastico J = DIP de Cermica Rango de Temperatura: C = Comercial M = Militar I = Industrial (GAL solamente). GAL 16 V 8 D N I
2.6 PALs programables varias veces : serie PALCExxx y GALs. Las GALs tienen macroceldas programables. Son ms caras que las PALs pero pueden
implementar diseos hechos para varios tipos de PALs. No necesitan ser borradas
previamente a su programacin y permiten la reprogramacin en campo de pruebas. Los
circuitos PALCExxx son PLDs de la compaa Advance Micro Devices (AMD), son
equivalentes a los circuitos GALs de la compaa Lattice. Los PALxxVxx son
reprogramables, donde la compaa Altera tiene EEPLDs (Elctricamente borrables).
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
33 A continuacin se pueden ver tres figuras, que muestran las estructuras de las GAL16V8 y
GAL20V8 y la constitucin de sus macroceldas (OLMCs).
Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.
Figura 2.6 Constitucin de Macroceldas de salida lgica (OLMCs) de un GAL.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
34 2.7 Fabricantes de PALs y GALs.
AMD. Altera. Atmel. Lattice. Texas Instruments. Xilinx.
2.8 Programacin de los PLDs.
Se necesitan algunos equipos para disear y construir circuitos con el empleo de PLD:
Computadora personal (PC) Software para creacin y desarrollo de PLD (WinCUPL, ABEL,...,etc) Aparato o dispositivo programador (Programador de PLDs) Software para excitar el aparato programador (Software del programador de
PLDs).
Dispositivo de lgica programable (PAL, GAL,...,etc.)
En la figura 2.7 se muestra una disposicin tpica para programacin. La PC, en la cual se
corre el software para desarrollo, traduce el diseo de entrada a un archivo llamado
trazado de fusibles. Este archivo es como un mapa que muestra cules fusibles se deben
fundir para abrirlos en un dispositivo programable y cules deben permanecer intactos.
Luego, el trazado de fusibles se traduce a un formato de archivo de salida adecuado para
transmisin al aparato de programacin de dispositivos.
En seguida, se llama en la PC al software de programacin que se comunica con el aparato
de programacin. Esto permite al usuario informar al aparato de programacin el tipo de
dispositivo
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
35 que se va a programar. Despus se enva el archivo de salida por un cable al programador.
Este proceso se llama carga. Finalmente, se introduce el PLD en la base del aparato
programador y se enva la orden desde la computadora para programar la pieza.
Figura 2.7 Sistema necesario para el desarrollo de un PLD.
Los aparatos para programacin suelen tener una base especial que permite dejar caer el
microcircuito y, luego, sujetar los contactos con las terminales. Esta base se llama de fuerza
nula para insercin (ZIF). Muchos fabricantes disponen numerosos programadores
universales que pueden programar casi cualquier tipo de dispositivo, incluso PROM,
EPROM, microcomputadoras de un solo microcircuito y un buen nmero de PLD.
Afortunadamente, conforme hubieron ms piezas programables, los fabricantes sintieron la
necesidad de uniformizar (estandarizar) las asignaciones de terminales y los mtodos de
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
36 programacin. Como resultado, se constituy el Joint Elearonic Device Engineering
Council (JEDEC). Uno de los resultados fue la norma (estndar) JED, un formato normal
para transferir los datos de programacin para los PLD, independientes de cualquiera que
fuere el fabricante del dispositivo o el software de programacin. Tambin se normalizaron
las asignaciones de terminales, para diversos paquetes de Circuitos Integrados, a fin de
hacer los programadores universales menos complicados. En consecuencia, los aparatos
para programacin pueden programar numerosos tipos de PLD. El software que permite al
diseador especificar una configuracin para un PLD, slo necesita producir un archivo de
salida que cumpla con la norma JEDEC. Luego, este archivo JEDEC se puede cargar en
cualquier programador de PLD compatible con JEDEC, que tenga capacidad para
programar el tipo deseado de PLD.
El proceso de generar un archivo JEDEC para transferir un diseo al aparato programador
de PLD sera muy tedioso si se hiciera a mano. En los ltimos 10 aos se ha producido
software de desarrollo que permiten al usuario utilizar su diseo en alguna forma
conveniente y, luego, crear en forma automtica el archivo JEDEC para el dispositivo
especificado.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
37 3. COMPILADOR UNIVERSAL PARA LA LOGICA PROGRAMABLE
(WinCUPL).
Hay diferentes instrumentos de software para desarrollar los PLD. Todos tienen semejanzas
compartidas y sus diferencias distintivas. Para los ejemplos que presentaremos ms
adelante, utilizaremos uno de los compiladores disponibles de alto nivel de uso ms extenso
en la actualidad, se llama WinCUPL, se puede adquirir de la compaa Logical Devices. El
WinCUPL puede producir archivos de programacin para una gran variedad de dispositivos
programables.
Este software de desarrollo esta constituido de cuatro mdulos diferentes :
WinCUPL .- Es la comunicacin con el usuario y cuenta con todas las herramientas de la
compilacin.
WinSim.- Simula grficamente el diseo del usuario para su verificacin, antes de
programar el dispositivo programable.
Schematic.- Esta herramienta es usada para crear un diagrama esquemtico, muy til para
el anlisis inicial del diseo. Si el diagrama pasa la validacin del proceso,
crea un cdigo fuente, el cual deber ser compilado y simulado.
SMCupl.- Esta es una herramienta para crear diagramas de estado, (mquinas de
estado). Si el proceso de validacin es aceptado, se genera un archivo fuente,
que ser compilado y simulado despus.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
38 3.1 Flujo de Datos.
En la figura 3.1, se ilustra el flujo de datos para crear un diseo usando WinCUPL.
.PLD Archivo fuente
.SI Archivo simulacin
.DOC Archivo documento. Ecuaciones, matriz de fusibles
.LST Archivo con la lista de errores
.MX Archivo macro expansin
.SO Archivo salida del simulador
.ABS Archivo absoluto ( Diseo en forma binaria)
.JED(1) Archivo JEDEC sin vectores
.JED(2) Archivo JEDEC con vectores
.HL Archivo en formato para los PLDs Signetics
.HEX Archivo ASCII
.PLA Archivo en formato PALASM de Berkeley
WinSim SMCupl Schematic WinCUPL
Descripcin de las extensiones de los archivos
Figura 3.1 Flujo de datos del WinCUPL
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
39 3.2 Ciclo de "desarrollo".
El primer paso en cualquier diseo es la definicin minuciosa del problema y su alcance. El
resultado de este paso son las etiquetas para todas las entradas y salidas. Tambin se define
la relacin entre todas las entradas y salidas y se puede expresar en numerosas formas, tales
como tablas de verdad, tablas de estado, ecuaciones lgicas e incluso diagramas lgicos. El
segundo paso es crear el archivo de entrada o fuente en el formato requerido por el
compilador. En seguida, se llama al compilador y se le da el nombre del archivo de entrada.
Con el proceso de compilacin se produce un buen nmero de diferentes archivos de salida.
El archivo de documentacin (DOC para el CUPL) contiene cualquier mensaje de error
generado por el compilador. El archivo de trazado de fusibles muestra el patrn real de
fusibles que se fundirn para unirlos en el dispositivo programable. Este archivo tambin se
puede convenir al archivo JEDEC que utilizar el programa (es decir, el aparato de progra-
macin).
Si el compilador genera cualquier mensaje de error, hay que determinar la causa y
corregirla con el empleo del editor de textos para alterar el archivo de entrada. Este proceso
se repite hasta que ya no hay errores ni advertencias. En este punto, se puede probar el
diseo con el empleo de un simulador; ste es un programa de computadora que calcula los
estados lgicos de salida con base en la descripcin del circuito lgico y de las entradas en
curso. Se produce un grupo de entradas hipotticas que probarn que el dispositivo trabaja
como se espera. Se les llama vectores de prueba. Si estos vectores son lo suficientemente
minuciosos, se puede probar el diseo antes de programar el primer dispositivo. Cuando el
diseador est convencido que el diseo funcionar, se genera el archivo JEDEC y se llama
al software de programacin. El archivo JEDEC sirve como archivo de entrada para el
programador y el PLD se coloca en el aparato programador. Muchos aparatos
programadores tambin tienen capacidad no slo de programar la pieza, sino tambin de
corregir los vectores de prueba en la entrada, mientras que vigila la salida. Con esto se
comprueba que el PLD funcionar a la perfeccin. Despus se coloca el PLD en un circuito
y se prueba su funcionamiento con todos los componentes perifricos. En el diagrama de
flujo de la figura 3.2 se demuestra el proceso completo para el proceso de desarrollo.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
40
No
S
No
No
S Hay errores?
Solucin de errores
Determinar falla del diseo
Editar archivo fuente
Simular
Compilar
Crear archivo fuente
Diseo
Hproblemas?
Figura 3.2 Diagr
Aprenda PLDs Principios y Ap
Prueba e
Program
Crear arc
Func
ama de flujo d
licaciones. ay ar el PLD
hivo JEDECn el circuito S iona?
el ciclo de desarrollo de PLDs.
L. GerHECHO
ardo Flores R.
41 3.3 Medio ambiente del WinCUPL.
Al invocar el WinCUPL nos aparece la pantalla de la figura 3.3, explicaremos en que se
dividen y su funcionamiento.
Comandos de la barra de herramientas.
Seccin de notificacin de errores.
Seccin de archivos generados.
Seccin de edicin.
Figura 3.3 Pantalla general del WinCUPL.
Men de comandos de archivo.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
42
3.3.1 Comandos de la barra de herramientas.
Abrir un nuevo archivo.
sitivo.
Aprenda PLDs MS-DOS (opcional).
SMCupl (opcional). atic (opcional).
mador (opcional).
PSchem
Progra nal).
os (opcional).
c y WinSim (opcional). Invoca SMCupl, SchematiWinSim (opcio
Editor de macr Calculadora de Windows (opcional).
Windows explorer (opcional). Simular dependiendo del dispositivo.
Simular virtualmente. Compila dependiendo del dispo
Compila virtualmente. Copiar.
Pegar. Imprimir.
Cortar. Abrir un archivo existente.
Salvar archivo. rincipios y Aplicaciones. L. Gerardo Flores R.
43 3.3.2 Comandos del men File:
El me frece los siguientes comandos: n File o
ecto archivo texto.
.
vo nombre.
rtos.
istente.
oject
Import Importa archivo fuente escrito en un lenguaje diferente y lo convierte a
etup impresora seleccionada.
... s activos ms recientemente usados.
xit Salir del WinCupl.
New Crea un nuevo diseo, proy
Open Abre un archivo existente
Close Cierra la ventana activa.
Save Salva el archivo activo.
Save As Salva el archivo activo con un nue
Save All Salva todos los archivos abie
Open Project Abre un proyecto ex
Close Pr Cierra el proyecto.
cdigo fuente del CUPL.
Export Exporta cdigo fuente CUPL a otro lenguaje.
Print S Enva el documento activo a la
Print Imprime el documento activo.
MRU Contiene los archivo
E
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
44 3.3.3 Comandos del men Edit:
El men edit es desplegado cuando la ventana activa es un documento. El men ofrece los
tes com
comando o accin del comando.
do.
t
laza
Update Macro Symbol Table Actualiza el macro-smbolo de la tabla a macro-
aria.
entas.
ar
siguien andos:
Undo Invierte la ltima edicin del
Cut Borra el texto seleccionado.
Copy Copia el texto seleccionado.
Paste Pega el texto selecciona
Find Buscar texto.
Find Nex Sigue buscando texto.
Replace Encuentra y remp el texto por otro.
Insert CUPL Macro Reference Inserta un macro-referencia del CUPL.
Insert CUPL Macro Definition Inserta un macro-definicin del CUPL.
referencia.
Insert Table Inserta una tabla bin
3.3.4 Comandos del men View:
El men de comandos View ofrece las siguientes opciones:
Toolbar Presenta o esconde la barra de herrami
Status B Presenta o esconde la barra de status.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
45 Projec Presenta o esconde la vet ntana del proyecto al lado derecho del usuario.
formatos desplegados en el editor.
CUPL.
r
.
del medio ambiente del WinCUPL.
l dispositivo.
omp
el circuito
mente.
HDL Analysis Corre el anlisis de un archivo VHDL.
Font Cambia el tipo de letra.
Refresh Actualiza los colores y
3.3.5 Comandos del man Options:
El men de Options ofrece los siguientes comandos:
Compiler Activar las opciones del compilador
Simulato Activar las opciones del simulador.
VHDL Activar las opciones de anlisis y compilacin del VHDL
WinCUPL Activar las opciones
3.3.6 Comandos del men Run:
El men Run ofrece los siguientes comandos:
Device Dependent Compile Compila dependiendo de
Device Independent Compile C ila virtualmente.
Device Dependent Simulation Simula dependiendo d
Device Independent Simulation Simula virtual
VHDL Compile Compila un archivo VHDL.
V
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
46 3.3.7 Comandos del men Utilities:
El men U ies ofrece los siguientes cotilit mandos:
tition.
ramientas dwl Win CUPL.
ind w ofre
da.
.
nos de ventanas cerradas.
n .
bout WinCupl Despliega el nmero de versin para esta aplicacin.
BackPin Corre la utilera BackPin.
PlPartition Configura y corre la utilera PlPar
ISP Download Corre la utilera ISP Download.
CUPL Tools Despliega las cuatro her
3.3.8 Comandos del men Window:
El men W o ce los siguientes comandos:
Cascade Despliega las ventanas en forma de casca
Tile Horizontal Despliega las ventanas horizontalmente
Tile Vertical Despliega las ventanas verticalmente.
Arrange Icons Despliega co
3.3.9 Comandos del men Help:
El men Help ofrece los siguientes comandos:
Contents Ofrece un ndice de temas para obtener ayuda.
Search For Help O Despliega el dalogo de bsqueda para temas de ayuda
A
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
47
acteres alfanumricos (strings) que especifican los pines del elemento,
odos internos, constantes, seales de entrada, seales de salida, seales intermedias o
as variables pueden iniciar con un nmero, un carcter alfabtico o un subrayado (_), pero
o se aceptan espacios dentro de un nombre de variable. Use el subrayar para separar
as variables no pueden contener un smbolo reservado del CUPL. (Mas adelante estn
s introducidas en el archivo fuente deben ser escritas con sintaxis inglesa,
l CUPL no entiende las tildes, la ~, los apstrofes, la diresis, etc. No los permite an en
.4.2 Palabras y smbolos reservados.
3.4 Elementos del lenguaje. 3.4.1 Variables.
Son cadenas de car
n
estados de seales.
L
debe contener al menos un carcter alfabtico.
Las variables distinguen entre las maysculas y las minsculas.
N
palabras.
Las variables pueden contener hasta 31 caracteres.
L
listados).
No pueden usarse palabras reservadas del CUPL como nombres de variables.
Todas las palabra
e
los comentarios.
33.4.2.1 PALABRAS RESERVADAS
APPEND FORMAT PIN
ASSEMBLY FUNCTION PINNODE
ASSY IF PRESENT
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
48
SEQUENCET
FIELD OUT TABLE
-
( ^ =
'
.4.3 Comentarios.
mbolos /* y */.
a lista es comnmente usada en la declaracin de pines y nodos, campos de bits,
ecuaciones lgicas y operacio es como sigue:
le, variable, .., variable]
ables.
COMPANY JUMP REV
CONDITION LOC REVISION
DATE LOCATION SEQUENCE
DEFAULT MACRO SEQUENCED
DESIGNER MIN SEQUENCEJK
DEVICE NAME SEQUENCERS
ELSE NODE
FLD PARTNO
3.4.2.2 SMBOLOS RESERVADOS.
& + [ /*
* . ] */
: , /
; $ !
@
# )
3
Van encerrados entre los s
3.4.4 Notacin de listas.
L
nes de agrupamiento. El formato
[variab
donde:
[ ] denotan un conjunto de vari
Ejemplos:
[UP, DOWN, LEFT, RIGHT]
[A0,Al,A2,A3]
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
49
un conjunto de variables indicadas secuencialmente se colocan de menor a
eso, as:
del ndice sern removidos, es decir:
00..03] ser ledo como [A0, Al, A2, A3] no como [A00, A0l, A02, A03].
ribirse como:
ntilla. e asiste al usuario en la edicin del archivo fuente y que se muestra a
;
ion XXXXX;
************************************************************/
arget Device Types: */
******************************************************/
Cuando es
mayor p
[Variable m. .n]
Ejemplo:
[A0..3]
Los ceros a la izquierda
[A
La lista [A0. .7] puede esc
[A0..2, A3, A4, A5..7]
3.4.5 Archivo PlaEs un archivo quontinuacin: c
ame XXXXX; N
artno XXXXXP
ate XX/XX/XX; D
evision XX; R
esigner XXXXX; D
ompany XXXXX; C
ssembly XXXXX; A
ocatL
****/
* */ /
* */ /
****************************************************************/ /
* Allowable T/
**********/
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
50
* Inputs **/
in = ; /* */
in = ; /* */
in = ; /* */
in = ; /* */
in = ; /* */
* Declarations and Intermediate Variable Definitions **/
/** g
Este archivo contiene las siguientes secciones:
Informacin de cabecera : Palabras reservadas acompaadas de XXXs que se
La declaracin NAME es muy importante, pues el nombre que se escriba aqu ser
compilacin. (.LST,
Un ejem la informacin de cabecera es el siguiente:
/* P P P Pin = ; /* */ Pin = ; /* */ /** Outputs **/
P P Pin = ; /* */ Pin = ; /* */
/*
Lo ic Equations **/
reemplazan con los textos que identificarn el archivo para hacer revisiones
posteriores.
el mismo con el que se generarn todos los archivos durante la
.DOC, .JED, etc.).
plo del formato de
Name CODER
Partno P9000285;
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
51
s;
Location none;
Device P22V10;
Format j;
a compaa, (como el NIT).
chivo.
programada.
Location : cdigo de localidad estadounidense. Nosotros la declaramos "none".
l archivo plantilla provee todas las declaraciones excepto DEVICE y FORMAT. Estas son
i se deja alguna informacin sin declarar el CUPL emite un mensaje, pero contina con la
com l
en este
Revision 02;
Date 10/14/95;
Designer Gerardo Flore
Company U A de C;
Assembly none;
Partno : identifica el nmero de un Revisin : aumenta su nmero cada vez que se entra en el ar Date: se renueva cada vez que se entra en el archivo. Designer : nombre del diseador. Assembly : tarjeta PC donde trabajar la PLD Device : cdigo de la PLD a utilizar. Format: formato en el cul se va a compilar.
E
opcionales de ser declaradas, al fin y al cabo, en el momento de correr CUPL deben
declararse.
S
pi acin. No ocurre lo mismo si se utilizan smbolos que indican acento (como tildes),
caso se emite el mensaje y la compilacin se detiene.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
52
Declaracin de pines: Palabras reservadas y operadores propios del formato de
as lneas /*Input*/ y /*Output*/ son slo de lectura y no interfieren en la compilacin, as
que
utilizan no se debe caer en el error
e declararlos dos veces, pues se causara un error de compilacin.
e variables intermedias : Espacio para declarar campos de bits (registros) y para escribir ecuaciones intermedias.
cio para escribir las ecuaciones lgicas que describen el
3.4.6.1 Declaracin de pines.
Declarar los pines es definir los nom ue se asignan a los nmeros de pin
an a utilizar. Cada elemento en la librera tiene los pines ya numerados.
PIN pinn = [!]var;
donde:
inn es un nmero decimal, o una lista de nmeros agrupados usando la notacin de listas,
Bloque titular: Smbolos de comentarios que encierran un espacio para llenarlo con la descripcin del diseo que se va a implementar y las posibles PLDs que aceptan
tal diseo.
declaracin de pines de entrada y salida. Espacios de comentario para describir las
funciones de cada pin. Las lneas sobrantes de declaracin de pin deben ser
removidas, de otra forma se producir un error de sintaxis en la compilacin.
L
se pueden declarar los pines como se desee. Esta aclaracin se hace por que a veces se
pines que hacen la funcin de entrada y salida a la vez y
d
Declaraciones y definicin d
Ecuaciones lgicas: Espa
funcionamiento de la PLD.
3.4.6 Declaracin de Pines y Campos.
bres de variables q
que se v
El formato para declarar un pin es el siguiente:
p
que es:
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
53
[pinn1, pinn2, pinn3,, pinnn]
es el operador de asignacin
ar es un nombre de variable una lista de nombres de variables usando la notacin de
stas, as:
laracin.
pines son:
in 1 = clock; /*Reloj de registro*/
o) no se especifica en la
eclaracin de los pines. El compilador infiere la naturaleza del pin durante el proceso
siguiendo la e nombre de variable de dicho pin. Si la
ror denotando el uso impropio del pin.
3.4.6.2 Declar
laracin de campos de bits asigna un nombre de variable a un grupo de bits. El
LD var = [var, var, var,..., var];
! es un signo de admiracin opcional que define la polaridad de la seal de entrada salida.
=
v
li
[var1 ,var2,..,varn]
; es el punto y coma que marca el fin de la dec
Algunos ejemplos de declaraciones vlidas de
p
pin 2 = !enable; /*Habilita I/O de la puerta*/
pin[3,4] = ! [stop,go] /*Control de seales*/
pin[5..7] = [a0..2] I*Direcciona bits 0-2*/
La naturaleza del pin (entrada, salida bidireccionamient
d
specificacin lgica hecha para el
especificacin lgica y las caractersticas fsicas del integrado son incompatibles, CUPL
exhibe un mensaje de er
acin de campos de bits.
Una dec
formato es el siguiente
FIE
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
54
IELD es una palabra reservada.
ar es un nombre vlido de variable.
es el operador de asignacin.
a que marca el fin de la declaracin.
efinicin de variables intermedias" del archivo fuente y provista por el archivo plantilla.
.
pera sobre el archivo fuente antes de ser pasado
ciones del compilador. La siguiente es una lista de
cesamiento disponibles:
IF $UNDEF
$IFDEF
os es el primer carcter en todos los comandos de preprocesamiento y debe ser
$DEFINE.
ste comando reemplaza un string de caracteres por un nmero, smbolo u otro operador
o. El formato es como sigue:
donde:
F
v
=
; es el punto y com
La declaracin de campos de variables se coloca en la seccin de "declaraciones y
d
Despus de asignado un nombre de variable a un grupo de bits, puede usarse el nombre en
una expresin. La operacin especificada en la expresin es aplicada a cada bit en el grupo.
3.4.7 Comandos de Preprocesamiento
La parte de preprocesamiento de CUPL o
por el evaluador gramatical y otras sec
los comandos de prepro
$DEFINE $IFNDEF
$ELSE $INCLUDE
$END
El signo pes
usado en la columna uno de la lnea. Se puede escribir el comando en maysculas en
minsculas.
E
especificad
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
55
$DEFINE argumento1 argumento2
UNDEF.
cancela una instruccin $DEFINE. El formato es como sigue:
$UNDEF argumento
$INCLUDE.
ste comando incluye un archivo especificado en el archivo fuente para ser procesado por
formato es como sigue:
$INCLUDE archivo
$IFDEF.
ste comando compila condicionalmente secciones de un archivo fuente. El formato es
$IFDEF argumento
$IFNDEF.
ste comando condiciona la compilacin de secciones en el archivo fuente. El formato es
omo sigue:
$ENDIF.
ste comando finaliza una condicin de compilacin inicializada con los comandos
IFDEF $IFNDEF. El formato es como sigue:
$ENDIF
$
Este comando
E
CUPL. El
E
como sigue:
E
c
$IFNDEF argumento
E
$
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
56
ELSE.
Este comando invierte las condiciones de in definidas con los comandos $IFDEF
mo sigue:
radores Lgicos.
sadas para expresiones booleanas.
a sigu na li e os ope en su orden de mayor a menor prioridad en el
pl ipcin
& A&B AND
A#B OR
riables para indicar funciones especficas
sociadas con los nodos internos principales de las PLDs. La siguiente es una lista de las
r verifica el uso de la extensin para
rm
.
.
$
compilac
$IFNDEF. El formato es co
$ELSE
3.4.8 Ope
CUPL maneja las cuatro operaciones bsicas estndar u
L iente es u sta de s radores
paquete.
Operador Ejem o Descr
! !A NOT
#
$ A$B XOR
3.4.9 Extensiones.
Se pueden adicionar extensiones a nombres de va
a
extensiones soportadas por CUPL. El compilado
dete inar si es vlida para la PLD especificada.
Extensin Descripcin
.D Entrada D de un flip-flop tipo D.
.L Entrada D de un lazo transparente.
.J Entrada J de un flip-flop tipo JK.
.K Entrada K de un flip-flop tipo JK.
.S Entrada S de un flip-flop tipo SR
.R Entrada R de un flip-flop tipo SR.
.T Entrada T de un flip-flop tipo T
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
57
.
te.
flop.
flop.
).
tro D.
.
gistro T.
in.
KMUX Seleccionar como reloj de multiplexor.
solamente los flip-flops que fsicamente se encuentran internamente
os en ellas. Cuando los operadores en la expresin tienen el mismo nivel de
.DQ Salida Q de un flip-flop tipo D
.LQ Salida Q de un lazo transparen
.AP Preset asncrono de flip-flop.
.AR Reset asncrono de flip-flop.
.SP Preset sncrono de flip-flop.
.SR Reset sncrono de flip-
.CK Reloj programable de flip-
.OE Salida de habilitacin programable.
.CA Matriz complemento.
.PR Precargado programable.
.CE Entrada CE de un flip-flop tipo D-CE habilitado.
.LE Lazo habilitado programable.
.OBS Observabilidad programable de nodos internos.
.BYP Direccin de registro programable (register bypass
.DFB Seleccin de ruta de realimentacin de regis
.LFB Seleccin de ruta de realimentacin de lazo D
.TFB Seleccin de ruta de realimentacin de re
.IO Seleccin de ruta de realimentacin de p
.INT Seleccin de ruta de realimentacin interna.
.C
.OEMUX Seleccionar tri-estado del multiplexor.
.TEC Seleccin de fusible dependiendo de la tecnologa.
El compilador acepta
en la PLD especificada. Por ejemplo, el compilador no intentar emular un flip-flop tipo JK
en una PLD que solo acepta registros tipo D.
3.4.10 Expresiones.
Las expresiones son combinaciones de variables y operadores que producen un nico
resultado cuando son evaluadas. Una expresin puede estar compuesta de sub-expresiones.
Las expresiones son evaluadas de acuerdo al nivel de prioridad de los operadores
involucrad
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
58
pueden ser utilizados
ara cambiar el orden de la evaluacin; la expresin en el interior del parntesis se evala
rimero.
a siguiente lista muestra el orden de evaluacin de las expresiones:
prioridad la evaluacin se hace de izquierda a derecha. Los parntesis
p
p
L
Expresin tado
A#B&C
!(A&B)
A#B&(C#D)
!A&B
(A#B)&C
A#B&C#D
A&C
# B&C
!A&B
!A
A#
#!B
D#
Aprenda PLDs Principios y Aplicaciones. B&C Resul
A#
&C BA#
B&C # B&D
L. Gerardo Flores R.
59 3.4.11 Ecuaciones Lgicas.
ato para las ecuaciones lgicas es el siguiente:
:
ndo se usa una lista de variables la expresin es aplicada a cada variable de la
s.
es el operador de asignacin; este asigna el valor de una expresin a una variable grupo
l operador complemento puede ser usado para expresar la ecuacin en lgica negativa. El
lementada antes de ser asignada a la variable.
e nodo), pues
ueden ser escritas para un nombre de variable arbitrario. Una variable definida de esta
as variables intermedias se colocan en la seccin de "declaraciones y definicin de
provista por el archivo plantilla.
El form
[!]var[.ext] = exp;
donde
var es un nombre de variable una lista de nombres de variables usando la notacin de
listas. Cua
lista.
.ext es una extensin opcional para asignar una funcin a los nodos principales internos de
una PLD.
exp es una expresin, es decir, una combinacin de variables y operadore
=
de variables.
! es un signo de admiracin opcional que define la polaridad de la seal.
E
operador se antepone al nombre de variable (sin espacios) y denota que la expresin al lado
derecho de la ecuacin ser comp
Las ecuaciones lgicas se colocan en la seccin "Ecuaciones Lgicas" del archivo fuente y
provista por el archivo plantilla.
Las ecuaciones lgicas no estn limitadas solamente a variables de pin ( d
p
manera es una variable intermedia. Utilizando variables intermedias se producen,
generalmente, archivos fuente con mayor facilidad de lectura y comprensin.
L
variables intermedias" del archivo fuente y
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
Aprenda PLDs Principios y Aplicaciones. L. Gerardo Flores R.
60 4. LOGICA COMBINACIONAL Hay tres formas de programar el PLD en la lgica combinacional:
- Tabla de verdad.
-
Figura 4.1 Modo de programar el PLD.
- Ecuaciones Booleanas.
Diseo esquemtico.
61
im ir del men File
New> , como se m
de detectar el nmero primo de tres bits, donde A, B, y C
y salidas,
sin pinnodes, nos carga el WinCUPL el editor, como se muestra en la figura 4.3:
4.1 Ejemplo usand
El pr
o tabla de verdad.
er paso para crear un archivo PLD es abrir un nuevo diseo al oprim
uestra en la figura 4.2:
Top Related