APRENDA PLD’s, PRINCIPIOS Y APLICACIONES
ELABORADO POR:
ING. LUIS GERARDO FLORES RODRIGUEZ
2
DERECHOS RESRVADOS © 2002 Ing. Luis Gerardo Flores Rodríguez. Esta obra y sus características son propiedad del autor, cualquier reproducción total o parcial, queda estrictamente prohibida, pro hibida, de acuerdo a los derechos der echos de autor que marca la ley. ey.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
3
Resumen En el capítulo 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 capítulo dos, se detalla que es la lógica programable, los tipos de PLD’s, ventajas, limitaciones, selección, nomenclatura, las Macroceldas de salida lógica (OLMC), fabricantes de PLD’s, y los pasos necesarios para la programación. En el capítulo tres, se describe el software de desarrollo utilizado en este trabajo, el WinCUPL (Compilador Universal de Lógica Programable bajo el sistema Windows), este software de la compañía Logic Devices Co., es uno de los mas populares en el mercado. En el capítulo cuatro, se menciona los tres posibles métodos de programación en la lógica combinacional, donde se incluyen un ejemplo en cada método de implementación, dando explicación paso a paso para su programación. Y por ultimo, el capítulo cinco nos indica las dos maneras de programación en la lógica secuencial; por secuencia y por ecuaciones. En ambas formas mostramos un ejemplo práctico, dando por conclusión con clusión el mismo resultado.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
4
Contenido Derechos de autor Resumen Contenido Figuras Antecedentes
1.
INTRODUCCIÓN. 1.1 Sistemas analógicos y digitales 1.2 Sistemas Numéricos 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 Minitérminos y Maxitérminos 1.6.1 Minitérminos.(Suma de Productos).(Σm). 1.6.2 Maxitérminos.(Productos de Suma).(πM). 1.6.3 Minimización de funciones combinacionales
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
5 1.7 Mapas de Karnaugh 1.7.1 Definición. 1.7.2 Redundancias.(Σd). 2.
DISPOSITIVOS LÓGICOS PROGRAMABLES. 2.1 ¿Qué es la lógica 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 PLD’s. 2.3 Limitaciones de las PLD’s. 2.4 Selección del modelo adecuado para cada aplicación. 2.5 Nomenclatura generalizada de las PLD’s. 2.6 PALs programables varias veces : serie PALCExxx y GALs. 2.7 Fabricantes de PALs y GALs. 2.8 Programación de los PLD´s.
Aprenda PLD’s 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 símbolos reservados. 3.4.2.1 Palabras reservadas. 3.4.2.2 Símbolos reservados. 3.4.3 Comentarios. Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
7 3.4.4 Notación de listas. 3.4.5 Archivo Plantilla. 3.4.6 Declaración de Pines y Campos. 3.4.6.1 Declaración de pines. 3.4.6.2 Declaración de campos de bits. 3.4.7 Comandos de Preprocesamiento. 3.4.8 Operadores Lógicos. 3.4.9 Extensiones. 3.4.10 Expresiones. 3.4.11 Ecuaciones Lógicas.
4.
LOGICA COMBINACIONAL. 4.1 Ejemplo usando tabla de verdad. 4.2 Ejemplo usando ecuaciones booleanas. 4.3 Ejemplo usando el programa esquemático.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
8 5.
LOGICA SECUENCIAL. 5.1 La macrocelda lógica 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 máquinas de estados. 5.6 Ejemplo. 5.6.1 Implementación utilizando la secuencia de estados. 5.6.2 Implementación usando ecuaciones minimizadas.
Bibliografía. Abreviaturas. Glosario.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
9
Figuras Figura 1.1 Ejemplo de representaciones análogas y digitales. Figura 1.2 Mapas de Karnaugh. Figura 1.3 Ejemplo de minimización. 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 Constitución de Macroceldas de salida lógica (OLMC’s) 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 PLD’s. Figura 3.3 Pantalla general del WinCUPL. Figura 4.1 Modo de programar el PLD. Figura 4.2 Pantalla de creación de un nuevo archivo. Figura 4.3 Pantalla de edición . Figura 4.4 Pantalla de inserción 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 compilación . Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
10 Figura 4.14 Pantalla de cabecera del WinSim. Figura 4.15 Pantalla de resultados de la simulación. Figura 4.16 Minimización de la ecuación. Figura 4.17 Pantalla de cabecera. Figura 4.18 Pantalla de Edición . 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 Implementación lógica de la ecuación de números 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 simulación 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 máquinas de estado. Figura 5.6 Distribución física del problema de control de semáforos. Figura 5.7 Comportamiento del circuito. Figura 5.8 Tabla equivalente con valores boléanos. Figura 5.9 Minimización 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 simulación. Figura 5.12 Minimización de las salidas de los flip-flop’s “D”. Figura 5.13 Programa fuente, utilizando ecuaciones lógicas. Figura 5.14 Resultado de la simulación.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
11
Antecedentes El incremento de popularidad y de utilización de los dispositivos lógicos programables o PLDs está siguiendo un proceso solamente comparable al que hace algunos años acompañó a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos electrónicos de control, industriales, de consumo, de oficina, de comunicaciones, etc. Desde finales de la década de los sesenta, los equipos electrónicos digitales se han construido utilizando circuitos integrados de función lógica fija, realizados en pequeña o mediana escala de integración. Para las realizaciones muy complejas que exigirían un número elevado de circuitos integrados (CI) de función fija, se utilizan circuitos diseñados a medida que sólo sirven para una aplicación. Son los llamados CI específicos a una aplicación 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 más fiables, consumen menos energía y en grandes series resultan más baratos que los equipos equivalentes realizados con CI de función fija. Por otro lado, estos circuitos son muy difíciles de copiar. Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices de Puertas (Gate Arrays), las Células 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 pequeñas ASICs configurables por el usuario capaces de realizar una determinada función lógica. La mayoría de los PLD consisten en una matriz de puertas AND seguida de otra matriz de puertas OR. Mediante esta estructura, puede realizarse cualquier función como suma de términos productos. Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye de esta denominación debido a que su contenido se define utilizando elementos de desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y lenguajes de programación de alto nivel. Otras veces, cuando estas memorias se usan para realizar una función lógica y no para guardar un programa de un microprocesador, se las incluye dentro del término PLD.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
12 Los PLDs están situados en una zona intermedia entre los dispositivos a medida y la lógica de catálogo formada por los CI de función fija. Tienen casi todas las ventajas de los ASICs sin estar penalizados por un costo elevado para pequeñas series. Además el ciclo de diseño con PLDs es mucho más rápido que los de las matrices de puertas o las células normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos hasta unas decenas de CI de función 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 llevarán a un ASIC más complejo. El trabajo con PLDs proporciona: facilidad de diseño, prestaciones, fiabilidad, economía y seguridad. Las herramientas de soporte al diseño con PLDs facilitan enormemente este proceso. Las hojas de codificación que se utilizaban en 1975 han dejado paso a los ensambladores y compiladores de lógica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD, etc.). Estas nuevas herramientas permiten expresar la lógica de los circuitos utilizando formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para máquinas de estados, esquemas, etc. La simulación digital posibilita la depuración de los diseños antes de la programación de los dispositivos. Todo el equipo de diseño 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 conmutación tan rápidos como los circuitos integrados de función fija más veloces. Los PLDs ECL son todavía más rápidos. 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 tecnología 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 más complejo es un circuito, más probabilidades hay de que alguna de sus partes falle. Puesto que los PLDs reducen el número de chips en los sistemas, la probabilidad de un fallo disminuye. Los circuitos impresos con menor densidad de CI son más fáciles de construir y más fiables. Las fuentes de ruido también se reducen. En cuanto economía, hay aspectos que resultan difíciles de cuantificar. Por ejemplo, los costos de pérdida de mercado por una introducción tardía de un producto.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
13 Otros son más claros, por ejemplo, la reducción del área de las placas de circuito impreso obtenida gracias a que cada PLD sustituye a varios circuitos integrados de función fija. Muchas veces se consigue reducir el número de placas de circuito impreso economizándose en conectores. La reducción de artículos en almacén también aporta ventajas económicas. De la misma manera que para altos volúmenes de producción 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 diseños frente a copias. Además de los puntos mencionados, podemos añadir que los PLDs facilitan el ruteado de las placas de circuito impreso debido a la libertad de asignación de patillas que proporcionan. Permiten realizar modificaciones posteriores del diseño y en ocasiones hacen posible la reutilización de circuitos impresos con algunos fallos, mediante una reasignación de los PLDs.
Existen en la actualidad infinidad de arquitecturas diferentes de PLDs y su número se incrementa día a día. Aunque resulta casi imposible hacer una referencia completa de todos los tipos de PLDs en el mercado, en este trabajo sólo se presentarán algunas de las más comunes.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
14
1. INTRODUCCIÓN. 1.1 Sistemas analógicos y digitales. En la ciencia, la tecnología, la administración y, de hecho, muchos otros campos de la actividad humana, constantemente se manejan cantidades. Estas se miden, monitorean, registran, manipulan aritméticamente, observan o, en alguna otra forma, se utilizan en muchos sistemas físicos. Cuando se manejan diversas cantidades es importante que podamos representar sus valores con eficiencia y exactitud. Existen básicamente dos maneras de representar el valor numérico de las cantidades: La analógica y la digital. •
Representaciones analógicas.- en la representación analógica, una cantidad se denota por medio de otra que es proporcional a la primera.
•
Las cantidades analógicas tienen una característica importante: Pueden variar gradualmente sobre un intervalo continuo de valores.
•
Representaciones digitales.- las cantidades no se denotan por valores proporcionales, sino por símbolos denominados dígitos.
ANALÓGICA Figura 1.1 •
CONTINUO
DIGITAL
DISCRETO
Ejemplo de representaciones análogas y digitales.
Sistema digital.- es una combinación de dispositivos diseñada para manipular cantidades físicas o información que estén representadas en forma digital; esto es, que solo pueden tomar valores discretos.
•
Sistemas analógicos.- contienen dispositivos que manipulan cantidades físicas representadas en forma analógica. En un sistema de este tipo, las cantidades varían sobre un intervalo continuo de valores.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
15 “Ventajas de las técnicas digitales”. 1. Los sistemas digitales son más fáciles de diseñar. 2. Facilidad para almacenar la información. 3. Mayor exactitud y precisión. 4. Programación de la operación. 5. El ruido afecta en forma mínima a los circuitos digitales. “Limitaciones de la técnicas digitales”. Solo un problema: El mundo real es fundamentalmente ANALÓGICO (velocidad, temperatura, distancia, sonido,... etc). Cuando se tienen entradas y salidas analógicas, deben seguirse tres pasos para aprovechar las técnicas digitales: 1. Convertir las entradas analógicas del “mundo real” a la forma digital. 2. Procesar ( realizar operaciones) con la información digital. 3. Convertir de nuevo las salidas digitales a la forma analógica del mundo real. Cada vez es más frecuente observar dentro de un mismo sistema el empleo de técnicas analógicas y digitales para obtener mayor beneficio de ambas. En estos sistemas híbridos, uno de los aspectos más importantes de la fase de diseño es determinar que partes del sistema serán analógicos y cuales digitales.
1.2 Sistemas Numéricos. El sistema numérico decimal fue inventado por matemáticos hindúes hace más de dos mil años y los árabes lo introdujeron al mundo occidental en el siglo trece. Consta de diez símbolos que van del cero al nueve, introduce el concepto del valor posicional, en el que cada posición representa la base elevada a una potencia. En base 10 el dígito que se encuentra en la posición 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 PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
16 existen muchos otros sistemas numéricos, los cuales comparten con el sistema decimal las siguientes propiedades: •
El número de símbolos diferentes (dígitos) usados por el sistema es igual a la base.
•
El dígito mayor es siempre una unidad menor a la base.
•
En cada posición se multiplica el valor del dígito por la base elevada a la potencia correspondiente. Para un número entero, el último dígito (o sea el de la derecha) está multiplicado por la base elevada a la potencia cero, el penúltimo está multiplicado por la base elevada a la potencia uno, el antepenúltimo por la base elevada a la potencia dos, y así sucesivamente.
•
Los acarreos en sumas y restas, se propagan hacia la siguiente posición con mayor peso ponderal.
El sistema numérico binario solo encuentra aplicación práctica hasta hace aproximadamente 50 años 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 señal para representar cada dígito. El sistema binario consta de dos dígitos 0 y 1. Al representar un número entero en binario la posición de la derecha está multiplicado por 20, la siguiente a 21, la siguiente por 22, etc. A cada dígito 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 más significativo”. Ejemplo.- determine el valor del número 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 razón se emplean frecuentemente otros sistemas que correspondan a una representación abreviada del sistema binario. Si se considera que existen 16 posibles combinaciones para un grupo de 4 bits (24 = 16) se tiene que un dígito hexadecimal (base 16) sustituye a cuatro dígitos binarios. En el sistema hexadecimal trabajamos con 16 símbolos que son los números 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, y las letras A, B, C, D, E, F. Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
17 El procedimiento para convertir de binario a hexadecimal requiere solo separar al número binario en grupos de 4 bits y sustituir cada grupo por el dígito hexadecimal correspondiente. Para convertir de hexadecimal a binario se invierte el procedimiento.
Ejemplo.- Convertir de binario a hexadecimal el número binario 011111001000 0111 1100 1000 (7)
(C)
(8)
1.3 Tabla de verdad. A las posibles combinaciones de las variables de entrada, y la salida de un circuito lógico se llama tabla de verdad. Variables lógicas: A 0, 1 A, B 00,01, 10, 11 A, B, C 000, 001, 010, 011, 100, 101, 110, 111 2n
n
1.4 Compuertas simples y compuestas. 1.4.1 Compuertas simples. AND.Tabla de verdad B 0 0 1 1
A 0 1 0 1
F 0 0 0 1
Símbolo
A
Función lógica F
F =A*B
B
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
18 OR.Tabla de verdad B 0 0 1 1
A 0 1 0 1
F 0 1 1 1
Símbolo
Función lógica
F=A+B B
INVERSOR.Tabla de verdad
Símbolo
A F 0 1 1 0
Función lógica F = A
F
1.4.2 Compuertas compuestas. NAND.Tabla de verdad lógica B 0 0 1 1
A 0 1 0 1
F 1 1 1 0
Símbolo
F
A 0 1 0 1
F 1 0 0 0
F= AB
B
NOR.Tabla de verdad lógica B 0 0 1 1
Función
Símbolo F
Función F =A+B
B
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
19 XOR.- OR exclusivo.Tabla de verdad lógica
Símbolo
B A F 0 0 0 0 1 1 1 0 1 1 1 0 NOREX.-
A
Función
F =A B + A B = A⊕B
F
B
NOREX.- NOR Exclusivo Tabla de verdad B A F 0 0 1 0 1 0 1 0 0 1 1 1
Símbolo
Función lógica
A
F = A B + A B
F
B
1.5 Álgebra Booleana. Método matemático 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 matemático inglés George Boole (1815-1864). Funciones, Leyes y Propiedades del Álgebra Booleana:
Función AND. 0*0=0 0*1=0 1*0=0 1*1=1
Ley conmutativa. X*Y=Y*X X + Y =Y + X
Función OR. 0+0=0 0+1=1 1+0=1 1+1=1
Inversor. 0=1 1=0
Ley distributiva. X * (Y + Z) =X * Y + X * Z X + Y * Z = (X + Y) * (X + Z)
Aprenda PLD’s Principios y Aplicaciones.
Ley asociativa. X*(Y * Z) = (X * Y)Z X + (Y + Z)=(X + Y) + Z
L. Gerardo Flores R.
20 Absorción. X + X * Y =X X*(X + Y) =X
Propiedades de la OR. X+0=X 0+X=X X+1=1 1+X=1
Identidad. X + X * Y = X + Y X * ( X + Y) = X *Y
Propiedad de la AND. X* 0=0 0* X=0 X*1=X 1*X=X
Combinando. X*X=X X * X = 0 X+X=X X + X = 1
Doble complemento. X = X
Leyes de Morgan de la complementación. X + Y = X * Y X * Y = X + Y
1.6 Minitérminos y Maxitérminos. 1.6.1 Minitérminos.(Suma de Productos).( m) Una forma de sintetizar una función es a partir de la tabla de verdad. Suma de productos.- Si en cada término de la función aparecen todas las variables, a esta expresión se le llama función canónica externa (FCA) o suma de productos estándar. Ejemplo.F (C, B, A) = A +A B + ABC
suma de productos.
F (C, B, A) = ABC + AB C + AB C
FCA.
A los términos que tienen todas las variables se les llama minitérminos. Para obtener la FCA partiendo de una tabla de verdad, se procede con lo siguiente: Se toman los renglones donde la función es 1, si la variable es 1 se deja tal cual, si es cero se niega, después se suman lógicamente los productos lógicos correspondiente a dicho renglón.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
21 Ejemplo: B 0 0 1 1
A 0 1 0 1
F 0 1 1 0
F = A B + AB
1.6.2 Maxitérminos.(Productos de Suma).( M) Cuando en cada término ( producto) aparecen todas las variables se llama maxitérmino y a la expresión formada por maxitérminos se le llama función canónica conjunta o producto de suma estándar (FCC). F(C, B, A) = ( A + B)( C + A)
productos de suma
F(C, B, A) = ( A + B + C)( A + B + C)
FCC
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, después se multiplican lógicamente los maxitérminos asociados a cada renglón.
1.6.3 Minimización de funciones combinacionales. La tarea de un diseñador lógico consiste en implementar una función lógica al mínimo costo. Métodos de Minimización: •
Veitch
•
Karnaugh
• Quine McCluskey
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
22
1.7 Mapas de Karnaugh. Así como una tabla de verdad representa una función lógica, en los mapas se asocia un área a la combinación de las variables y la función se representa por un ”1” o un “0” en dichas áreas. Mapas de Karnaugh. 0
0
Una variable.
1
1
0
Dos variables.
1
00 01 11 10
00 01 11 10 0 Tres variables.
1
Figura 1.2
00 01 11 10
Cuatro variables.
Mapas de Karnaugh
1.7.1 Definición. Dos términos son lógicamente adyacentes cuando difieren en una variable únicamente.
A B C A B C
Son lógicamente adyacentes
D C B A D C B A
No son lógicamente adyacentes.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
23 Una función será mínima cuando contiene el mínimo número de términos y cada término el número mínimo de variables. El proceso de Minimización es el siguiente: Del mapa de Karnaugh se asocia el máximo número de unos (será en potencia de dos, o sea, 1, 2, 4, 8, …) que sean lógicamente adyacentes entre sí. El proceso de Minimización se lleva a cabo por una aplicación interactiva del teorema: AB +A B = A. El término minimizado contendrá las variables que no cambian, así mismo, los unos que hayan sido asociados se pueden volver a asociar según el teorema: A +A = A.
00 01 11 10
00 1 1 1 1
01 0 1 1 0
Figura 1.3
11 0 1 1 0
10 0 0 0 0
F = WY + W X
Ejemplo de minimización.
1.7.2 Redundancias.( d) En ciertas ocasiones la función no depende de ciertas combinaciones de las variables de entrada, ya que estas combinaciones no se presentan. Se dice que el valor de la función “ no importa” (don’t care). En la columna de salida esto se representa por los siguientes símbolos y se les llama redundancias: X Redundancias
∅
* En el proceso de minimización la redundancia se toma como uno ó como cero según más convenga.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
24 Ejemplo.- Implementar la siguiente función: F = Σm(0, 3, 4, 8, 12) + Σd(1, 2, 10) 00 01 11 10
00 1 1 1 1
01 X 0 0 0
11 1 0 0 0
10 X 0 0 X
D
C
B
A
F
F = A B + C D
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
25
2.
DISPOSITIVOS LÓGICOS PROGRAMABLES.
2.1 ¿Qué es la lógica programable?. La lógica programable, como el nombre implica, es una familia de componentes que contienen conjuntos de elementos lógicos (AND, OR, NOT, LATCH, FLIP-FLOP) que pueden configurarse en cualquier función lógica 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 PLD’s surgieron como un compromiso entre desempeño 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 pérdida de un poco de flexibilidad eso se compensa mediante la oferta de varias configuraciones básicas y la incorporación de las GALs, sobre las cuales trataremos unas líneas más adelante. Hay varias clases de dispositivos lógicos programables: ASICs, FPGAs, PLAs, PROMs, PALs, GALs, y PLDs complejos.
2.1.1 ASIC. ASIC significa Circuitos Integrados de Aplicación Específica y son dispositivos definibles por el usuario. Los ASICs, al contrario que otros dispositivos, pueden contener funciones analógicas, digitales, y combinaciones de ambas. En general, son programables mediante máscara o sea, que los fabricantes configuran el dispositivo según las especificaciones del usuario, y no por el usuario. Se usan para combinar una gran cantidad de funciones lógicas 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 teléfonos celulares, juegos de video,...,etc.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
26
2.1.2 PROM. Las PROM son memorias programables de sólo lectura. Aunque el nombre no implica la lógica programable, las PROM, son de hecho lógicas. La arquitectura de la mayoría de las PROM consiste generalmente en un número fijo de términos AND que alimenta una matriz programable OR. Se usan principalmente para decodificar las combinaciones de entrada en funciones de salida.
“AND” FIJA
“OR” PROGRAMABLE
Figura 2.1 Arquitectura elemental del PROM Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
27
2.1.3 PAL. Las PAL son dispositivos de matriz programable. La arquitectura interna consiste en términos AND programables que alimentan términos OR fijos. Todas las entradas a la matriz pueden ser combinadas mediante AND entre si, pero los términos AND específicos se dedican a términos OR específicos. Las PAL tienen una arquitectura muy popular y son probablemente el tipo de dispositivo programable por usuario más empleado. Si un dispositivo contiene macrocélulas, comúnmente tendrá una arquitectura PAL. Las macrocélulas típicas pueden programarse como entradas, salidas, o entrada / salida (E/S) usando una habilitación tri-estado. Normalmente tienen registros de salida que pueden usarse o no conjuntamente con el pin de E/S asociado. Otras macrocélulas tiene más de un registro, varios tipos de retroalimentación en las matrices, y ocasionalmente realimentación entre macrocélulas.
“AND” PROGRAMABLE
“OR” FIJO
Figura 2.2 Arquitectura elemental del PAL.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
28
2.1.4 GAL. Las GAL son dispositivos de matriz lógica genérica. Están diseñados para emular muchas PAL pensadas para el uso de macrocélulas. Si un usuario tiene un diseño 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 número de dispositivos diferentes en existencia y aumenta la cantidad comprada. Comúnmente, una cantidad grande del mismo dispositivo debería rebajar el costo individual del dispositivo. Estos dispositivos también son eléctricamente borrables, lo que los hace muy útiles para los ingenieros de diseño.
2.1.5 PLA. Las PLA son matrices lógicas programables. Estos dispositivos contienen ambos términos AND y OR programables lo que permite a cualquier término AND alimentar cualquier término OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros dispositivos con respecto a la lógica funcional. Normalmente poseen realimentación desde la matriz OR hacia la matriz AND que puede usarse para implementar máquinas de estado asíncronas. La mayoría de las máquinas de estado, sin embargo, se implementan como máquinas síncronas. Con esta perspectiva, los fabricantes crearon un tipo de PLA denominado Secuencial (Sequencer) que posee registros de realimentación desde la salida de la matriz OR hacia la matriz AND.
Figura 2.3 Arquitectura elemental de un PLA.
Aprenda PLD’s 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 Lógica Programable. Se consideran PAL muy grandes que tienen algunas características de las PLA. La arquitectura básica es muy parecida a la PAL con la capacidad para aumentar la cantidad de términos AND para cualquier término OR fijo. Esto se puede realizar quitando términos AND adyacentes o empleando términos AND desde una matriz expandida. Esto permite que cualquier diseño 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 eléctricamente programables que contienen múltiples niveles de lógica. Las FPGA se caracterizan por altas densidades de puerta, alto rendimiento, un número grande de entradas y salidas definibles por el usuario, un esquema de interconexión flexible, y un entorno de diseño similar al de matriz de puertas. No están limitadas a la típica matriz AND-OR. Por contra, contienen una matriz interna configurable de relojes lógicos (CLBs) y un anillo de circunvalación de bloques de E/S (IOBs). Cada CLB contiene lógica programable combinacional y registros de almacenamiento. La sección de lógica combinacional es capaz de implementar cualquier función 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. También contiene flip-flops que pueden usarse como buffers de entrada y salida. Los recursos de interconexión son una red de líneas 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 líneas cercanas. Las líneas largas recorren la anchura o longitud entera del dispositivo, estableciendo intercambios para proporcionar una distribución de señales críticas con la mínima demora o distorsión. Los diseñadores que usan FPGAs pueden definir funciones lógicas en un circuito y revisar estas funciones como sea necesario. Así, las FPGAs pueden diseñarse y verificarse en unos días, a diferencia de las varias semanas necesarias para las matrices de puerta programables. Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
30
Figura 2.4 Arquitectura elemental de un FPGA.
2.2 Ventajas del uso de PLD’s. •
Reducción de retardos de propagación de las lógicas.
•
Reducción del número de puntos de soldadura y de cables o pistas. Con ello se logra aumentar la confiabilidad.
•
Facilidad para cambiar el diseño.
•
Menor número de circuitos integrados, y por ende, disminución del consumo de energía y de las fuentes posibles de ruido y aumento de la confiabilidad del circuito.
•
Menor superficie ocupada en la placa.
•
Protección del diseño (fusible de seguridad).
•
Su tiempo de propagación ronda los 5 a 10 ns, equivalente al de las compuertas que puede reemplazar; pero con una sola PLD se pueden
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
31 reemplazar varios niveles o retardos de compuertas. •
Facilidad de diseño y montaje.
•
Reducción de la variedad de circuitos integrados usados en el circuito, disminuyendo su costo de producción seriada.
•
Optimización del diseño a bajo costo.
2.3 Limitaciones de las PLD’s. •
Las PAL son OTP, es decir, sólo se pueden programar una vez.
•
Su precio es un poco mayor a las compuertas simples o compuestas.
•
No se encuentran comúnmente en tiendas comerciales de electrónica.
•
Dado que el número de minitérminos es limitado, algunas lógicas necesitarían varios PLD’s para ser implementadas y quizás resulta más simple y menos costoso implementarla con compuertas.
2.4 Selección del modelo adecuado para cada aplicación. Características a evaluar: •
Número de entradas.
•
Número de salidas.
•
Número de líneas 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.
•
Número de minitérminos.
•
Realimentación de salidas.
•
Macroceldas.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
32
2.5 Nomenclatura generalizada de las PLD’s. Tecnología: PAL = Programmable Array Logic (TTL) GAL = Generic Array Logic (E2CMOS) PL = Factory Programmed PAL Número 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) Número de Salidas Velocidad: Sin símbolo = 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 Cerámica 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 más caras que las PALs pero pueden implementar diseños hechos para varios tipos de PALs. No necesitan ser borradas previamente a su programación y permiten la reprogramación en campo de pruebas. Los circuitos PALCExxx son PLDs de la compañía Advance Micro Devices (AMD), son equivalentes a los circuitos GALs de la compañía
Lattice. Los PALxxVxx son
reprogramables, donde la compañía Altera tiene EEPLDs (Eléctricamente borrables).
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
33 A continuación se pueden ver tres figuras, que muestran las estructuras de las GAL16V8 y GAL20V8 y la constitución de sus macroceldas (OLMCs).
Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.
Figura 2.6 Constitución de Macroceldas de salida lógica (OLMCs) de un GAL. Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
34
2.7 Fabricantes de PALs y GALs . •
AMD.
•
Altera.
•
Atmel.
•
Lattice.
•
Texas Instruments.
•
Xilinx.
2.8 Programación de los PLD´s. Se necesitan algunos equipos para diseñar y construir circuitos con el empleo de PLD: •
Computadora personal (PC)
•
Software para creación y desarrollo de PLD (WinCUPL, ABEL,...,etc)
•
Aparato o dispositivo programador (Programador de PLD’s)
•
Software para excitar el aparato programador (Software del programador de PLD’s).
•
Dispositivo de lógica programable (PAL, GAL,...,etc.)
En la figura 2.7 se muestra una disposición típica para programación. La PC, en la cual se corre el software para desarrollo, traduce el diseño de entrada a un archivo llamado “trazado de fusibles”. Este archivo es como un mapa que muestra cuáles fusibles se deben fundir para abrirlos en un dispositivo programable y cuáles deben permanecer intactos. Luego, el trazado de fusibles se traduce a un formato de archivo de salida adecuado para transmisión al aparato de programación de dispositivos. En seguida, se llama en la PC al software de programación que se comunica con el aparato de programación. Esto permite al usuario informar al aparato de programación el tipo de dispositivo
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
35 que se va a programar. Después se envía 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 envía env ía la orden desde la computadora para p ara programar la pieza.
Figura 2.7 Sistema necesario para el desarrollo de un PLD. Los aparatos para programación 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 inserción (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 número de PLD. Afortunadamente, conforme hubieron más piezas programables, los fabricantes sintieron la necesidad de uniformizar (“estandarizar”) las asignaciones de terminales y los métodos de
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
36 programación. Como resultado, se constituyó el Joint Elearonic Device Engineering Council (JEDEC). Uno de los resultados fue la norma (“estándar”) JED, un formato normal para transferir los datos de programación para los PLD, independientes de cualquiera que fuere el fabricante del dispositivo o el software de programación. También 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 programación pueden programar numerosos tipos de PLD. El software que permite p ermite al diseñador especificar una configuración para un PLD, sólo 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 diseño al aparato programador de PLD sería muy tedioso si se hiciera a mano. En los últimos 10 años se ha producido software de desarrollo que permiten al usuario utilizar su diseño en alguna forma conveniente y, luego, crear en forma automática el archivo JEDEC para el dispositivo especificado.
Aprenda PLD’s 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 más adelante, utilizaremos uno de los compiladores disponibles de alto nivel de uso más extenso en la actualidad, se llama WinCUPL, se puede adquirir de la compañía Logical Devices. El WinCUPL puede producir archivos de programación para una gran variedad de dispositivos programables. Este software de desarrollo esta constituido de cuatro módulos diferentes : WinCUPL .- Es la comunicación con el usuario y cuenta con todas las herramientas de la compilación. WinSim.-
Simula gráficamente el diseño del usuario para su verificación, antes de programar el dispositivo programable.
Schematic.-
Esta herramienta es usada para crear un diagrama esquemático, muy útil para el análisis inicial del diseño. Si el diagrama pasa la validación del proceso, crea un código fuente, el cual deberá ser compilado y simulado.
SMCupl.-
Esta es una herramienta para crear diagramas de estado, (máquinas de estado). Si el proceso de validación es aceptado, se genera un archivo fuente, que será compilado y simulado después.
Aprenda PLD’s 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 diseño usando WinCUPL. WinCUPL
Schematic
SMCupl
WinSim
Descripción de las extensiones de los archivos .PLD
Archivo fuente .SI Archivo simulación .DOC Archivo documento. Ecuaciones, matriz de fusibles .LST Archivo con la lista de errores .MX Archivo macro expansión .SO Archivo salida del simulador .ABS Archivo absoluto ( Diseño en forma binaria) .JED(1) Archivo JEDEC sin vectores .JED(2) Archivo JEDEC con vectores .HL Archivo en formato para los PLD’s Signetics .HEX Archivo ASCII .PLA Archivo en formato PALASM de Berkeley
Figura 3.1 Flujo de datos del WinCUPL
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
39
3.2 Ciclo de "desarrollo". El primer paso en cualquier diseño es la definición minuciosa del problema y su alcance. El resultado de este paso son las etiquetas para todas las entradas y salidas. También se define la relación entre todas las entradas y salidas y se puede expresar en numerosas formas, tales como tablas de verdad, tablas de estado, ecuaciones lógicas e incluso diagramas lógicos. 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 compilación se produce un buen número de diferentes archivos de salida. El archivo de documentación (DOC para el CUPL) contiene cualquier mensaje de error generado por el compilador. El archivo de trazado de fusibles muestra el patrón real de fusibles que se fundirán para unirlos en el dispositivo programable. Este archivo también se puede convenir al archivo JEDEC que utilizará el programa (es decir, el aparato de programación). 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 diseño con el empleo de un simulador; éste es un programa de computadora que calcula los estados lógicos de salida con base en la descripción del circuito lógico y de las entradas en curso. Se produce un grupo de entradas hipotéticas que probarán que el dispositivo trabaja como se espera. Se les llama vectores de prueba. Si estos vectores son lo suficientemente minuciosos, se puede probar el diseño antes de programar el primer dispositivo. Cuando el diseñador está convencido que el diseño funcionará, se genera el archivo JEDEC y se llama al software de programación. El archivo JEDEC sirve como archivo de entrada para el programador y el PLD se coloca en el aparato programador. Muchos aparatos programadores también tienen capacidad no sólo de programar la pieza, sino también de corregir los vectores de prueba en la entrada, mientras que vigila la salida. Con esto se comprueba que el PLD funcionará a la perfección. Después se coloca el PLD en un circuito y se prueba su funcionamiento con todos los componentes periféricos. En el diagrama de flujo de la figura 3.2 se demuestra el proceso completo para el proceso de desarrollo.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
40
Diseño
Crear archivo fuente
Compilar Editar archivo fuente Sí
¿Hay errores?
No Simular
Determinar falla del diseño Sí
¿Hay problemas?
No Crear archivo JEDEC Programar el PLD Solución de errores
Prueba en el circuito
No
Sí
HECHO
¿Funciona?
Figura 3.2 Diagrama de flujo del ciclo de desarrollo de PLD’s.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo 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.
Sección de edición.
Sección de notificación de errores.
Menú de comandos de archivo.
Sección de archivos generados.
Figura 3.3 Pantalla general del WinCUPL.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
3.3.1 Comandos de la barra de herramientas.
42
Abrir un nuevo archivo. Abrir un archivo existente. Salvar archivo. Imprimir. Cortar. Copiar. Pegar. Compila dependiendo del dispositivo. Compila virtualmente. Simular dependiendo del dispositivo. Simular virtualmente. Calculadora de Windows (opcional). Windows explorer (opcional). MS-DOS (opcional). SMCupl (opcional). Schematic (opcional). Programador (opcional). WinSim (opcional). Editor de macros (opcional). Invoca SMCupl, Schematic y WinSim (opcional).
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
43
3.3.2 Comandos del menú File: El menú File ofrece los siguientes comandos: New
Crea un nuevo diseño, proyecto ó archivo texto.
Open
Abre un archivo existente.
Close
Cierra la ventana activa.
Save
Salva el archivo activo.
Save As
Salva el archivo activo con un nuevo nombre.
Save All
Salva todos los archivos abiertos.
Open Project Abre un proyecto existente. Close Project Cierra el proyecto. Import
Importa archivo fuente escrito en un lenguaje diferente y lo convierte a código fuente del CUPL.
Export
Exporta código fuente CUPL a otro lenguaje.
Print Setup
Envía el documento activo a la impresora seleccionada.
Print
Imprime el documento activo.
MRU...
Contiene los archivos activos más recientemente usados.
Exit
Salir del WinCupl.
Aprenda PLD’s 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 siguientes comandos: U n do
Invierte la última edición del comando o acción del comando.
Cut
Borra el texto seleccionado.
Copy
Copia el texto seleccionado.
Paste
Pega el texto seleccionado.
Find
Buscar texto.
Find Ne Next
Sigue bu buscando te texto.
Repl Replac acee
Encu Encuen entr traa y remp remplaza el text textoo por por otro otro..
Insert CUPL Macro Reference
Inserta un macro-referencia del CUPL.
Inse Insert rt CUPL CUPL Macr Macroo Def Defin init itio ionn
Inse Insert rtaa un un mac macro ro-d -def efin inic ició iónn del del CUPL CUPL..
Update Macro Symbol Table
Actualiza el macro-símbolo de la tabla a macro-
referencia. Insert Table Inserta una tabla binaria.
3.3.4 Comandos del menú View: El menú de comandos View ofrece las siguientes opciones: Toolbar
Presenta o esconde la barra de herramientas.
Stat Status us Bar
Prese resennta o es escon conde la barra arra de sta status.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
45 Project
Presenta o esconde la ventana del proyecto al lado derecho del usuario.
Font
Cambia el tipo de letra.
Refresh
Actualiza los colores y formatos desplegados en el editor.
3.3.5 Comandos del manú Options: El menú de Options ofrece los siguientes comandos: Compiler
Activar las opciones del compilador CUPL.
Simu Simullato ator
Acti Ac tiva varr las opci opcion ones es del del sim simulad ulador or..
VHDL
Activar las opciones de análisis y compilación del VHDL.
WinCUPL
Activar las opciones del medio ambiente del WinCUPL.
3.3.6 Comandos del menú Run: El menú Run ofrece los siguientes comandos: Device Dependent Compile Compila dependiendo del dispositivo. Devi De vice ce Inde Indepe pend nden entt Co Comp mpil ilee Comp ila ila vir virtu tual alme ment nte. e. Device Dependent Simulation
Simula dependiendo del circuito
Device Independent Simulation
Simula virtualmente.
VHDL Compile
Compila un archivo VHDL.
VHDL Analysis
Corre el análisis de un archivo VHDL.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
46
3.3.7 Comandos del menú Utilities: El menú Utilities ofrece los siguientes comandos: BackPin
Corre la utilería BackPin.
PlPartition
Configura y corre la utilería PlPar tition.
ISP Download Corre la utilería ISP Download. CUPL Tools Despliega las cuatro her ramientas dwl Win CUPL.
3.3.8 Comandos del menú Window: El menú Window ofrece los siguientes comandos: Cascade
Despliega las ventanas en forma de cascada.
Tile Horizontal
Despliega las ventanas horizontalmente.
Tile Vertical
Despliega las ventanas verticalmente.
Arrange Icons
Despliega íconos de ventanas cerradas.
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 On Despliega el díalogo de búsqueda para temas de ayuda. A bout WinCupl
Despliega el número de versión para esta aplicación.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
47
3.4 Elementos del lenguaje. 3.4.1 Variables. Son cadenas de car acteres alfanuméricos (strings) que especifican los pines del elemento, nodos internos, constantes, señales de entrada, señales de salida, señales intermedias o estados de señales. Las variables pueden iniciar con un número, un carácter alfabético o un subrayado (_), pero debe contener al menos un carácter alfabético. Las variables distinguen entre las mayúsculas y las minúsculas. No se aceptan espacios dentro de un nombre de variable. Use el subrayar para separar palabras. Las variables pueden contener hasta 31 caracteres. Las variables no pueden contener un símbolo reservado del CUPL. (Mas adelante están listados). No pueden usarse palabras reservadas del CUPL como nombres de variables. Todas las palabras introducidas en el archivo fuente deben ser escritas con sintaxis inglesa, el CUPL no entiende las tildes, la ~, los apóstrofes, la diéresis, etc. No los permite aún en los comentarios.
3.4.2 Palabras y símbolos reservados. 3.4.2.1 PALABRAS RESERVADAS
APPEND
FORMAT
PIN
ASSEMBLY
FUNCTION
PINNODE
ASSY
IF
PRESENT
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
48 COMPANY
JUMP
REV
CONDITION
LOC
REVISION
DATE
LOCATION
SEQUENCE
DEFAULT
MACRO
SEQUENCED
DESIGNER
MIN
SEQUENCEJK
DEVICE
NAME
SEQUENCERS
ELSE
NODE
SEQUENCET
FIELD
OUT
TABLE
FLD
PARTNO
3.4.2.2 SÍMBOLOS RESERVADOS.
&
+
[
/*
*
.
]
*/
:
,
¨
/
;
$
!
-
@
(
^
=
#
)
'
3.4.3 Comentarios. Van encerrados entre los símbolos /* y */.
3.4.4 Notación de listas. La lista es comúnmente usada en la declaración de pines y nodos, campos de bits, ecuaciones lógicas y operaciones de agrupamiento. El formato es como sigue: [variable, variable, .., variable] donde: [ ] denotan un conjunto de variables. Ejemplos: [UP, DOWN, LEFT, RIGHT] [A0,Al,A2,A3]
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
49 Cuando es un conjunto de variables indicadas secuencialmente se colocan de menor a mayor peso, así: [Variable m. .n] Ejemplo: [A0..3] Los ceros a la izquierda del índice serán removidos, es decir: [A00..03] será leído como [A0, Al, A2, A3] no como [A00, A0l, A02, A03]. La lista [A0. .7] puede escribirse como: [A0..2, A3, A4, A5..7]
3.4.5 Archivo Plantilla. Es un archivo que asiste al usuario en la edición del archivo fuente y que se muestra a continuación: Name XXXXX; Partno XXXXX; Date XX/XX/XX; R evision XX; Designer XXXXX; Company XXXXX; Assembly XXXXX; Location XXXXX; /****************************************************************/ /* */ /* */ /****************************************************************/ /* Allowable Target Device Types: */ /****************************************************************/ Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
50 /** Inputs **/ Pin = ; /* */ Pin = ; /* */ Pin = ; /* */ Pin = ; /* */ Pin = ; /* */ /** Outputs **/ Pin = ; /* */ Pin = ; /* */ Pin = ; /* */ Pin = ; /* */ /** Declarations and Intermediate Variable Definitions **/ /** Logic Equations **/ Este archivo contiene las siguientes secciones: • Información de cabecera : Palabras reservadas acompañadas de XXXs que se
reemplazan con los textos que identificarán el archivo para hacer revisiones posteriores. La declaración NAME es muy importante, pues el nombre que se escriba aquí será el mismo con el que se generarán todos los archivos durante la compilación. (.LST, .DOC, .JED, etc.). Un ejem plo del formato de la información de cabecera es el siguiente: Name
CODER
Partno
P9000285;
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
51 Revision
02;
Date
10/14/95;
Designer
Gerardo Flores;
Company
U A de C;
Assembly
none;
Location
none;
Device
P22V10;
Format
j;
•
Partno : identifica el número de una compañía, (como el NIT).
•
Revisión : aumenta su número cada vez que se entra en el ar chivo.
•
Date: se renueva cada vez que se entra en el archivo.
•
Designer : nombre del diseñador.
•
Assembly : tarjeta PC donde trabajará la PLD programada.
•
Location : código de localidad estadounidense. Nosotros la declaramos "none".
•
Device : código de la PLD a utilizar.
•
Format: formato en el cuál se va a compilar.
El archivo plantilla provee todas las declaraciones excepto DEVICE y FORMAT. Estas son opcionales de ser declaradas, al fin y al cabo, en el momento de correr CUPL deben declararse. Si se deja alguna información sin declarar el CUPL emite un mensaje, pero continúa con la com pilación. No ocurre lo mismo si se utilizan símbolos que indican acento (como tildes), en este caso se emite el mensaje y la compilación se detiene.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
52 • Bloque titular: Símbolos de comentarios que encierran un espacio para llenarlo con
la descripción del diseño que se va a implementar y las posibles PLDs que aceptan tal diseño. • Declaración de pines: Palabras reservadas y operadores propios del formato de
declaración de pines de entrada y salida. Espacios de comentario para describir las funciones de cada pin. Las líneas sobrantes de declaración de pin deben ser removidas, de otra forma se producirá un error de sintaxis en la compilación. Las líneas /*Input*/ y /*Output*/ son sólo de lectura y no interfieren en la compilación, así que se pueden declarar los pines como se desee. Esta aclaración se hace por que a veces se utilizan pines que hacen la función de entrada y salida a la vez y no se debe caer en el error de declararlos dos veces, pues se causaría un error de compilación. • Declaraciones y definición d e variables intermedias : Espacio para declarar campos
de bits (registros) y para escribir ecuaciones intermedias. • Ecuaciones lógicas: Espacio para escribir las ecuaciones lógicas que describen el
funcionamiento de la PLD.
3.4.6 Declaración de Pines y Campos. 3.4.6.1 Declaración de pines.
Declarar los pines es definir los nom bres de variables q ue se asignan a los números de pin que se van a utilizar. Cada elemento en la librería tiene los pines ya numerados. El formato para declarar un pin es el siguiente: PIN pinn = [!]var; donde:
pinn es un número decimal, o una lista de números agrupados usando la notación de listas, que es:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
53 [pinn1, pinn2, pinn3,…, pinnn]
! es un signo de admiración opcional que define la polaridad de la señal de entrada ó salida. = es el operador de asignación var es un nombre de variable ó una lista de nombres de variables usando la notación de listas, así: [var 1 ,var 2,..,var n]
; es el punto y coma que marca el fin de la declaración. Algunos ejemplos de declaraciones válidas de pines son: pin 1 = clock; /*Reloj de registro*/ pin 2 = !enable; /*Habilita I/O de la puerta*/ pin[3,4] = ! [stop,go] /*Control de señales*/ pin[5..7] = [a0..2] I*Direcciona bits 0-2*/ La naturaleza del pin (entrada, salida ó bidireccionamiento) no se especifica en la declaración de los pines. El compilador infiere la naturaleza del pin durante el proceso siguiendo la especificación lógica hecha para el nombre de variable de dicho pin. Si la especificación lógica y las características físicas del integrado son incompatibles, CUPL exhibe un mensaje de er ror denotando el uso impropio del pin. 3.4.6.2 Declaración de campos de bits.
Una declaración de campos de bits asigna un nombre de variable a un grupo de bits. El formato es el siguiente FIELD var = [var, var, var,..., var];
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
54 donde:
FIELD es una palabra reservada. var es un nombre válido de variable. = es el operador de asignación. ; es el punto y coma que marca el fin de la declaración.
La declaración de campos de variables se coloca en la sección de "declaraciones y definición de variables intermedias" del archivo fuente y provista por el archivo plantilla. Después de asignado un nombre de variable a un grupo de bits, puede usarse el nombre en una expresión. La operación especificada en la expresión es aplicada a cada bit en el grupo.
3.4.7 Comandos de Preprocesamiento. La parte de preprocesamiento de CUPL o pera sobre el archivo fuente antes de ser pasado por el evaluador gramatical y otras secciones del compilador. La siguiente es una lista de los comandos de preprocesamiento disponibles: $DEFINE
$IFNDEF
$ELSE
$INCLUDE
$ENDIF
$UNDEF
$IFDEF El signo pesos es el primer carácter en todos los comandos de preprocesamiento y debe ser usado en la columna uno de la línea. Se puede escribir el comando en mayúsculas ó en minúsculas. $DEFINE. Este comando reemplaza un string de caracteres por un número, símbolo u otro operador especificado. El formato es como sigue:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
55 $DEFINE argumento1 argumento2 $UNDEF. Este comando cancela una instrucción $DEFINE. El formato es como sigue: $UNDEF argumento $INCLUDE. Este comando incluye un archivo especificado en el archivo fuente para ser procesado por CUPL. El formato es como sigue: $INCLUDE archivo $IFDEF. Este comando compila condicionalmente secciones de un archivo fuente. El formato es como sigue: $IFDEF argumento $IFNDEF. Este comando condiciona la compilación de secciones en el archivo fuente. El formato es como sigue: $IFNDEF argumento
$ENDIF. Este comando finaliza una condición de compilación inicializada con los comandos $IFDEF ó $IFNDEF. El formato es como sigue: $ENDIF Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
56
$ELSE. Este comando invierte las condiciones de compilac ión definidas con los comandos $IFDEF ó $IFNDEF. El formato es como sigue: $ELSE
3.4.8 Operadores Lógicos. CUPL maneja las cuatro operaciones básicas estándar usadas para expresiones booleanas. La siguiente es una lista de esos operadores en su orden de mayor a menor prioridad en el paquete. Operador
Ejem plo
Descr ipción
!
!A
NOT
&
A&B
AND
#
A#B
OR
$
A$B
XOR
3.4.9 Extensiones. Se pueden adicionar extensiones a nombres de variables para indicar funciones específicas asociadas con los nodos internos principales de las PLDs. La siguiente es una lista de las extensiones soportadas por CUPL. El compilador verifica el uso de la extensión para determinar si es válida para la PLD especificada. Extensión
Descripción
.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 PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
57
.DQ
Salida Q de un flip-flop tipo D.
.LQ
Salida Q de un lazo transparente.
.AP
Preset asíncrono de flip-flop.
.AR
Reset asíncrono de flip-flop.
.SP
Preset síncrono de flip-flop.
.SR
Reset síncrono de flip-flop.
.CK
Reloj programable de flip-flop.
.OE
Salida de habilitación 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
Dirección de registro programable (register bypass).
.DFB
Selección de ruta de realimentación de registro D.
.LFB
Selección de ruta de realimentación de lazo D.
.TFB
Selección de ruta de realimentación de registro T.
.IO
Selección de ruta de realimentación de pin.
.INT
Selección de ruta de realimentación interna.
.CKMUX
Seleccionar como reloj de multiplexor.
.OEMUX
Seleccionar tri-estado del multiplexor.
.TEC
Selección de fusible dependiendo de la tecnología.
El compilador acepta solamente los flip-flops que físicamente se encuentran internamente 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 expresión puede estar compuesta de sub-expresiones. Las expresiones son evaluadas de acuerdo al nivel de prioridad de los operadores involucrados en ellas. Cuando los operadores en la expresión tienen el mismo nivel de Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
58 prioridad la evaluación se hace de izquierda a derecha. Los paréntesis pueden ser utilizados para cambiar el orden de la evaluación; la expresión en el interior del paréntesis se evalúa primero. La siguiente lista muestra el orden de evaluación de las expresiones: Expresión
Resultado A#
A#B&C
B&C A&C
(A#B)&C
# B&C
!A&B
!A&B
!(A&B)
!A#!B A#
A#B&C#D
D# B&C A#
A#B&(C#D)
B&C # B&D
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
59
3.4.11 Ecuaciones Lógicas. El formato para las ecuaciones lógicas es el siguiente: [!]var[.ext] = exp; donde:
var es un nombre de variable ó una lista de nombres de variables usando la notación de listas. Cuando se usa una lista de variables la expresión es aplicada a cada variable de la lista.
.ext es una extensión opcional para asignar una función a los nodos principales internos de una PLD.
exp es una expresión, es decir, una combinación de variables y operadores. = es el operador de asignación; este asigna el valor de una expresión a una variable ó grupo de variables.
! es un signo de admiración opcional que define la polaridad de la señal. El operador complemento puede ser usado para expresar la ecuación en lógica negativa. El operador se antepone al nombre de variable (sin espacios) y denota que la expresión al lado derecho de la ecuación será complementada antes de ser asignada a la variable. Las ecuaciones lógicas se colocan en la sección "Ecuaciones Lógicas" del archivo fuente y provista por el archivo plantilla. Las ecuaciones lógicas no están limitadas solamente a variables de pin (ó de nodo), pues pueden ser escritas para un nombre de variable arbitrario. Una variable definida de esta manera es una variable intermedia. Utilizando variables intermedias se producen, generalmente, archivos fuente con mayor facilidad de lectura y comprensión. Las variables intermedias se colocan en la sección de "declaraciones y definición de variables intermedias" del archivo fuente y provista por el archivo plantilla.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
60
4. LOGICA COMBINACIONAL Hay tres formas de programar el PLD en la lógica combinacional: -
Tabla de verdad.
-
Ecuaciones Booleanas.
-
Diseño esquemático.
Figura 4.1 Modo de programar el PLD.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
61
4.1 Ejemplo usando tabla de verdad. El pr imer paso para crear un archivo PLD es abrir un nuevo diseño al oprimir del menú File < New> , como se muestra en la figura 4.2:
Figura 4.2 Pantalla de creación de un nuevo archivo. La práctica que haremos, es la de detectar el número primo de tres bits, donde A, B, y C son las entradas y X la salida. Después de llenar la cabecera de información, donde especificamos las entradas y salidas, sin pinnodes, nos carga el WinCUPL el editor, como se muestra en la figura 4.3:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
62
Figura 4.3 Pantalla de edición. Después en la pantalla de edición se declaran los valores de los pines: /* ********************** INPUT PINS **************************/ PIN 2 = C
; /*ENTRADA C */
PIN 3 = B
; /*ENTRADA B*/
PIN 4 = A
; /*ENTRADA A*/
/* ********************** OUTPUT PINS ************************/ PIN 12 = X
; /*SALIDA X*/
Para crear la tabla de verdad, seleccionaremos el
del menú Edit, donde asignaremos las entradas y la salida. El número de columnas van a ser de ocho, debido a que tenemos tres bits:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
63
Figura 4.4 Pantalla de inserción de la tabla. El seteo de la tabla de verdad es dada antes de darle a la pantalla. Después se inserta automáticamente a la sección de Edición del archivo fuente. Después de la inserción de la tabla, hay que definir los campos de entrada y salida usando el comando , como se muestra a continuación: FIELD ENTRADAS = [C,B,A]; FIELD SALIDA = [X]; Estos comandos van antes de la tabla de verdad, dándonos la pantalla de la figura 4.5:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
64
Figura 4.5 Acomodo de las variables y de la tabla de verdad. Ahora especificaremos las opciones del compilador que se encuentran en el menú , en donde se presentan seis opciones más.
Output Files. En esta opción seleccionamos:
Figura 4.6 Pantalla Output Files.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
65
Mnimization. En esta opción seleccionamos:
Figura 4.7 Pantalla Minimization. Optimization. En esta opción no hay ninguna selección:
Figura 4.8 Pantalla Optimization. Device. En esta opción seleccionamos el PLD que vamos ha utilizar. Para este ejemplo y los siguientes, utilizaremos el GAL16v8, de la compañía LATTICE. Hay que tomar en
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
66 cuenta, que en la cabecera del programa fuente, se define el dispositivo y, debe coincidir con el dispositivo seleccionado en la opción del compilador.
Figura 4.9 Pantalla Devices. Library. En esta opción, se da la dirección en donde se encuentra los archivos de la librería del WinCUPL. Por default, desde la instalación se respeta la misma trayectoria, a menos que el usuario haya dado otra dirección.
Figura 4.10 Pantalla Library.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
67
General. En esta opción seleccionamos lo siguiente:
Figura 4.11 Pantalla General. Después damos clic en y luego en . Ahora seleccionamos del menú de comandos de archivo la opción . Esta opción nos da tres alternativas, las tres deben estar seleccionadas:
Figura 4.12 Pantalla de Opciones del simulador. Ya que están las opciones y , corremos la compilación al dar clic en el menú de comandos de la barra de herramienta
dispositivo>. Si existe algún error se tendrá que volver al archivo fuente y encontrar el o los errores, hasta lograr que la compilación haya sido exitosa, dándonos la pantalla de la figura 4.13:
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
68
Figura 4.13 Pantalla de los resultados de la compilación. Una vez logrado la compilación con éxito, se invoca el WinSim, en donde se va ha simular el
programa
fuente. Aquí nos colocamos en el menu y tomamos
la
opción , la
cual
nos
presenta
la
pantalla
de la
figura 4.14:
Figura 4.14 Pantalla de cabecera del WinSim. En esta pantalla damos en , y buscamos el archivo fuente, en nuestro ejemplo será “NUM_PRIMOS.PLD”, después damos . Inmediatamente se nos presenta una pantalla cuadriculada. En esta pantalla hay que agregar las señales y la cantidad de vectores ha simular. Para agregar las señales damos en , y nos estará preguntando las señales que deseamos agregar, al terminar damos .
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
69 Para agregar los vectores damos en , aquí daremos los vectores necesarios para la combinación de las tres variables de entrada, en nuestro caso serán siete. Después damos la combinación de las variables de entrada con el botón derecho del mouse, o sea , damos la tabla de verdad. Y por ultimo damos en . La pantalla que nos aparece es de la figura 4.15:
Figura 4.15 Pantalla de resultados de la simulación. Una vez compilado y simulado, en la pantalla general del WinCUPL, en la sección de archivos generados, debe estar un archivo “NUM_PRIMOS.JED”. Este archivo .JED es el que se necesita para programar el PLD, en nuestro ejemplo es con un GAL 16v8. El siguiente paso es usar el software de programación, en donde se le especifica el dispositivo a utilizar, y por ultimo la carga del archivo .JED al circuito integrado. Finalmente probar el diseño.
Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
70
4.2 Ejemplo usando ecuaciones booleanas. Para este tipo de desarrollo de programas fuentes, en donde se utilizan ecuaciones booleanas, antes de iniciar, debemos tener la minimización de la ecuación. Siguiendo con el mismo ejemplo, el detectar el numero primo de 3 bits, debemos realizar la minimización, utilizando un mapa de Karnaugh de 3 variables, en donde vaciaremos la salida de la tabla de verdad, como se muestra en la figura 4.16: CBA X 0 0 0 0
C
00
01
11
10
0
0
1
1
1
1
0
1
1
0
0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1
X= A+BC
1 1 0 0 1 1 1 1
Figura 4.16 Minimización de la ecuación. Una vez teniendo la ecuación minimizada, procedemos abrir el programa WinCUPL, en donde crearemos un nuevo diseño y nuevamente nos va a aparecer la pantalla de cabecera como se muestra en la figura 4.17. Para este ejemplo el nombre del archivo .PLD, con ecuaciones es el de
Numprim_eq.
Figura 4.17 Pantalla de Cabecera. Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
71 Una vez llenada la cabecera, se le da los valores de entrada-salida. Nuevamente serán tres entradas y una salida, con cero Pinnodes. Al terminar de dar estos valores, nos presenta la pantalla de edición como se muestra en la figura 4.18:
Figura 4.18 Pantalla de Edición. En esta pantalla en las secciones de entrada y salida daremos las asignaciones de pines y variables. /************** INPUTS PINS ****************/ PIN 2 = C ; PIN 3 = B ; PIN 4 = A ; /************** OUTPUTS PINS ****************/ PIN 12 = X ; Aprenda PLD’s Principios y Aplicaciones.
L. Gerardo Flores R.
72 Después de asignar los valores en la sección de entrada y salida, abrimos un nuevo comentario de ecuaciones lógicas, en donde se escribe la función minimizada obtenida en el mapa de Karnaugh, como se muestra en seguida: /************** EQUATIONS LOGICS ****************/ X = A # B & !C ; Después de haber agregado la ecuación en la sección de edición, nos vamos a la sección menú de comandos de archivo y seleccionamos , nuevamente nos presenta las seis opciones donde: En la pantalla de