PLDs Principios Y Aplicaciones PDF

Title PLDs Principios Y Aplicaciones
Author Javierth Enrique Arauco
Course Sistemas Digitales
Institution Universidad Nacional de Ingeniería
Pages 120
File Size 3.8 MB
File Type PDF
Total Downloads 87
Total Views 137

Summary

Inicio al estudio de los sistemas embebidos...


Description

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, de acuerdo a los derechos de autor que marca la ley.

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 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 ≡ CONTINUO Figura 1.1 •

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 circu...


Similar Free PDFs