460 likes | 596 Views
UNIDAD I. Sistemas numéricos y dispositivos lógicos programables. TEMARIO Sistemas numéricos Dispositivos lógicos programables (PLD ) Ambiente de programación y simulación del PLD. Evaluación UNIDAD 1. Actividades 70% Resultado de aprendizaje (20%)
E N D
UNIDAD I Sistemas numéricos y dispositivos lógicos programables TEMARIO Sistemas numéricos Dispositivos lógicos programables (PLD) Ambiente de programación y simulación del PLD
Evaluación UNIDAD 1 Actividades 70% Resultado de aprendizaje (20%) Prácticas (40%) 1) Validación de prácticas 2) Reportes de prácticas Ejercicios (20%) 1) Ejercicios en clase Participación (20%) 1) Puntualidad y asistencia 2) Aportaciones de calidad en clase 3) Trabajo en equipo Instrumento de Evaluación Sumaria: 30%
Resultado de aprendizaje El alumno entregará un archivo electrónico que incluya: - Problemario con ejercicios resueltos de conversión de sistemas numéricos y operaciones aritméticas con números binarios. - Programa de la simulación de las compuertas lógicas mediante un GAL. - Resultado de la simulación de las compuertas básicas en PROTEUS. - Resultado de la prueba del circuito físico en protoboard.
Tema No. 1 • Sistemas numéricos UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Sistemas numéricos Un sistema de numeración es un conjunto de símbolos y reglas de generación de cantidades que permiten construir todos los números válidos. Cuales son los principales sistemas numéricos? Los mas utilizados son los sistemas de numeración decimal, binario, octal, hexadecimal y romano. Donde los cuatro primeros se caracterizan por tener una base especifica. Base: Número de dígitos diferentes que se usan en cada sistema de numeración: diez, dos, ocho, dieciséis, etc. Que marca la diferencia entre cada uno de los sistemas numéricos? Los diferentes sistemas de numeración poseen una base de referencia y tienen la característica de cumplir con la notación posicional, es decir, la posición de cada número le da un valor o peso, así el primer dígito de derecha a izquierda después del punto decimal, tiene un valor igual a ‘b’ veces el valor del dígito(donde ‘b’ es la base). Ejemplos de bases y sus respectivos dígitos: Base 2: [0,1] Base 10: [0, 1 , 2, 3, 4, 5, 6, 7, 8, 9] UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Sistemas numéricos • Cuales son los principales sistemas numéricos enfocados a los Sistemas Digitales? • En el mundo de la electrónica digital se utilizan principalmente los sistemas: • Decimal Base 10 • Binario Base 2 • Hexadecimal Base 16 • BCD (Decimal Codificado en Binario) • Gray (También llamado reflejado) UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Sistema Binario El sistema binarioes un sistema de numeración con base 2, en el cual los números se representan utilizando solamente los dígitos cero y uno (0 y 1). Este sistema es el que se utiliza en el procesamiento de datos de las computadoras, debido a que trabajan internamente con dos niveles de voltaje. Los números binarios se escriben a menudo con subíndices, prefijos o sufijos para indicar su base. Las notaciones siguientes son equivalentes: 100101 binario [declaración explícita de formato] 100101b [un sufijo que indica formato binario] 100101B [un sufijo que indica formato Binario] 1001012 [un subíndice que indica base 2 ] UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Sistema Octal • Es un sistema numérico en base 8 que utiliza los dígitos del 0 a 7. • En informática, a veces se utiliza la numeración octal en vez de la hexadecimal, ya que tiene la ventaja de que no requiere utilizar otros símbolos diferentes de los dígitos normales. • Los números octales se representan con un subíndice 8. • Por ejemplo: 2348 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Sistema Hexadecimal • Es un sistema numérico que emplea 16 símbolos. Su uso está muy vinculado a la informática y ciencias de la computación, pues las computadoras suelen utilizar el byte u octeto como unidad básica de memoria; de modo que dos dígitos hexadecimales corresponden exactamente a un byte. • Los símbolos utilizados son: [0, 1 , 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] • Los números en el sistema hexadecimal se representan con el subíndice 16 o HEX. • Por ejemplo: 32F16, A2DHEX UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Código Gray Que es el código Gray? El código binario reflejado o código Gray, nombrado así en honor del investigador Frank Gray, es un sistema de numeración binario en el que dos valores sucesivos difieren solamente en uno de sus dígitos. Como se origino el código Gray? Fue diseñado originalmente para prevenir errores producidos por señales espurias en interruptores electromecánicos (relays). Sin embargo ya existía desde el siglo XIX cuando el ingeniero francés Emile Baudot le dió una aplicación en telegrafía. Donde se usa actualmente? En la actualidad se utiliza en el diseño los mapas de Karnaugh, los cuales son, a su vez, utilizados en la implementación de circuitos combinacionales y circuitos secuenciales. Asimismo, es usado para facilitar la corrección de errores en los sistemas de telecomunicaciones, tales como algunos sistemas de televisión digital. Por que se mantiene vigente? Esto es debido a que el principio de diseño de buscar transiciones más simples y rápidas entre estados sigue siendo necesaria, a pesar de que los problemas de ruido y potencia se hayan reducido. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Código Gray De que manera nos ayuda el código Gray? El problema con el código binario normal es que con interruptores mecánicos, es realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición de dos estados con cuatro interruptores puede darse el caso de que todos los interruptores cambien de posición simultáneamente, de modo que en el lapso de dichos cambios se pueden presentar salidas de información espurias. Si las salidas mencionadas alimentan un circuito, probablemente el sistema presentará un error en entrada de datos. El código gray resuelve este problema cambiando solamente un dígito a la vez. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Código BCD Que significa BCD? El termino BCD viene de las siglas Binary-Coded Decimal (BCD) o Decimal codificado en binario. Que es el Código BCD? Es un estándar para representar números decimales en el sistema binario, en donde cada dígito decimal es codificado con una secuencia de 4 bits. Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden realizar operaciones aritméticas como suma, resta, multiplicación y división de números en representación decimal, sin perder en los cálculos la precisión ni tener las inexactitudes en que normalmente se incurre con las conversiones de decimal a binario puro y de binario puro a decimal. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Código BCD • Aplicaciones • El BCD es ampliamente utilizado para almacenar datos, en aritmética binaria o en electrónica. He aquí algunos ejemplos: • Los números se pueden mostrar fácilmente en visualizaciones de 7 segmentos enviando cada cuarteto BCD a un visualizador. • La BIOS de una computadora almacena generalmente la fecha y la hora en formato BCD. • No hay límite para el tamaño de un número, a diferencia del código binario normal. Los números que se representan en formato binario están generalmente limitados por el número mayor que se pueda representar con 8, 16, 32 o 64 bits. Por el contrario, utilizando BCD, añadir un nuevo dígito sólo implica añadir una nueva secuencia de 4 bits. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Código ASCII • ASCII • American Standard CodeforInformationInterchange o Código Estadounidense Estándar para el Intercambio de Información) • Es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés y en otras lenguas occidentales. • Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA,) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. En 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII. • El código ASCII utiliza 7 bits para representar los caracteres. • ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración. • Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado. • No deben confundirse los códigos ALT+número de teclado con los códigos ASCII. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión de decimal a base-N Un número decimal se puede convertir a cualquier otro sistema numérico mediante la división sucesiva del número decimal entre el número base del otro sistema Ejemplo 1: Conversión de 13110 a binario. Es decir, Base-N = 2. 131 dividido entre 2 da 65 y el residuo es igual a 1 65 dividido entre 2 da 32 y el residuo es igual a 1 32 dividido entre 2 da 16 y el residuo es igual a 0 16 dividido entre 2 da 8 y el residuo es igual a 0 8 dividido entre 2 da 4 y el residuo es igual a 0 4 dividido entre 2 da 2 y el residuo es igual a 0 2 dividido entre 2 da 1 y el residuo es igual a 0 1 dividido entre 2 da 0 y el residuo es igual a 1 -> Ordenamos los residuos, del último al primero y obtenemos: 13110 = 100000112 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión de decimal a base-N Ejemplo 2: Conversión de 13110 a octal. Es decir, Base-N = 8. 131 dividido entre 8 da 16 y el residuo es igual a 3 16 dividido entre 8 da 2 y el residuo es igual a 0 2 dividido entre 8 da 0 y el residuo es igual a 2 -> Ordenamos los residuos, del último al primero y obtenemos: 13110 = 2038 Ejemplo 3: Conversión de 13110 a Hexadecimal. Es decir, Base-N = 16. 131 dividido entre 16 da 8 y el residuo es igual a 3 8 dividido entre 16 da 0 y el residuo es igual a 8 -> Ordenamos los residuos, del último al primero y obtenemos: 13110 = 83 16 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos • Conversión de base-N a Decimal • Para realizar la conversión de una base-N a decimal se utiliza el principio de notación posicional, es decir, donde cada digito tiene un determinado valor dependiendo de la posición en la que se encuentra. A continuación se explican los pasos para hacer la conversión: • Iniciar por el lado derecho del número en base-N, donde dicho digito se va a multiplicar por la base N elevado a la potencia cero, si la base es 2 entonces tendremos 20=1. • Después se multiplica el siguiente digito a la izquierda por N elevado a la 1 y así sucesivamente se va a multiplicar cada digito por una potencia incrementada en 1 (N a la 2, N a la 3, N a la 4, etc.) • Se suman todos los productos así obtenidos y la suma total corresponderá a el • número equivalente en el sistema decimal. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión de base-N a Decimal Ejemplo 1, Convertir el numero 10100102 a decimal Se puede representar de la siguiente manera: 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 El número 10100102corresponde al 8210. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión de base-N a Decimal Ejemplo 2, Convertir el numero 1368 a decimal Se puede representar de la siguiente manera: 80 = 1 81 = 8 82 = 64 1X 82 + 3X 81 + 3X 80 = 1X64 + 3X8 + 6X1 = 64 + 24 + 6 = 94 El número 1368corresponde al 9410. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión de base-N a Decimal Ejemplo 3, Convertir el numero 1FE16 a decimal Se puede representar de la siguiente manera: 160 = 1 161 = 16 162 = 256 1X 162 + 15X 161 + 14X 160 = 1X256 + 15X16 + 14X1 = 256 + 240 + 14 = 510 El número 1FE16corresponde al 51010. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos • Conversión directa entre sistemas octal y binario • Es posible establecer un método de conversión directo entre los sistemas binario y octal, debido a que el sistema octal tiene como base el 8, el cual es la tercera potencia de 2, y que dos es la base del sistema binario. • A continuación se describen los pasos para la conversión entre binario y octal. • Se agrupa la cantidad binaria en grupos de 3 iniciando por el lado derecho. Si al terminar de agrupar no hay tres dígitos entonces se agregan ceros a la izquierda para completar. • 2) Se determina el valor de cada grupo de 3 (similar a como se determina el valor decimal) • 3) La cantidad correspondiente en octal se agrupa de izquierda a derecha. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Conversión entre sistemas numéricos Conversión directa entre sistemas Hexadecimal y binario Es posible establecer un método de conversión directo entre los sistemas binario y hexadecimal, debido a que el sistema hexadecimal tiene como base el 16, el cual es la cuarta potencia de 2, y que dos es la base del sistema binario. A continuación se describe el método para conversiones entre hexadecimal y binario: 1) Se agrupa la cantidad binaria en grupos de 4 iniciando por el lado derecho. Si al terminar de agrupar no hay 4 dígitos entonces se agregan ceros a la izquierda para completar. 2) Se determina el valor de cada grupo de 4 (utilizando los dígitos mostrados en la tabla de abajo. 3) La cantidad correspondiente en hexadecimal se agrupa de izquierda a derecha. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Operaciones con números binarios Suma de números binarios La tabla de sumas para números binarios es la siguiente: Ejemplo: Suma binariaSuma equivalente en decimal 1 1 0 0 1 1 0 0 0 152 + + 0 0 0 1 0 1 0 1 21 ——————————— 1 0 1 0 1 1 0 1 173 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Operaciones con números binarios Resta de números binarios La tabla de resta para números binarios es la siguiente: (se transforma en 10-1=1) La resta 0 – 1 se resuelve igual que el sistema decimal, tomando una unidad prestada de la posición siguiente: 0 – 1 = 1 Ejemplos: RestabinariaRestaequivalente en decimal • - • 10 • 7 217 - 171 46 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Operaciones con números binarios Multiplicación de números binarios La tabla de multiplicar para números binarios es la siguiente: El algoritmo del producto en binario es igual que en números decimales. Ejemplo: Multiplicación binaria Multiplicación equivalente en decimal 22 x 9 = 198 UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Operaciones con Hexadecimales • Suma entre cantidades Hexadecimales • Se hace la suma directa entre dígitos y si el resultado es menor de 16 se representa el resultado con el digito hexadecimal correspondiente. • Si el resultado de la suma de dígitos HEX es de 16 o mas, entonces se le resta 16 al resultado para obtener el digito menos significativo y se le agrega un 1 a la derecha. • Ejemplos: • 5 + 8 = 13D = D Hex • 2) 9 + 7 = 16 D (16 – 16 = 0 y nos llevamos 1) • En este caso la respuesta obtenida, 16, no está entre el 0 y el 15, por lo que tenemos que • restarle 16. Por lo tanto, la respuesta obtenida será 10 Hex • 3) F + E = 29D ( 29 – 16 = 13D = D Hex y nos llevamos 1) • La respuesta es 29 y no está entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida será 1D Hex UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Operaciones con Hexadecimales • Resta entre cantidades Hexadecimales • Una alternativa para la resta es el método del complemento C15. Este se describe a continuación: • Tenemos que hacer que el minuendo y el sustraendo tengan la misma cantidad de números. Para ello, añadiremos ceros al sustraendo hasta que sean suficientes. • Después, crearemos un nuevo número con la misma cantidad de números que el nuevo sustraendo. Como en el sistema hexadecimal el mayor número que tenemos es el 15, que corresponde a la letra F, tendremos que escribir la F tantas veces como números tiene el sustraendo. • Se resta el nuevo numero al sustraendo siguiendo las normas generales de la resta común. La diferencia obtenida se denomina el complemento a 15 (C15). • Ahora tendremos que sumar el minuendo y el complemento a 15 utilizando la suma en sistema hexadecimal descrita en la hoja anterior. • El complemento a 15 tiene más cifras que los números iniciales que teníamos que restar. De modo que quitamos el número de la izquierda (en este caso, el 1) y lo sumamos a la derecha. • Ejemplos: • A4FC9 – DE8 • Paso 1: A4FC9 – (minuendo) • 00DE8 (sustraendo) • Paso 2 y 3: FFFFF – • 00DE8 (sustraendo) • ———— • FF217 C15 Paso 4: A 4 F C 9 + (minuendo) F F 2 1 7 (C15) ———---— 1 A 4 1 E 0 Paso 5: A 4 1 E 0 + 1 ———---—— A 4 1 E 1 (Resultado) UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Tema No. 2 • Dispositivos lógicos programables (PLD) UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables Un dispositivo lógico programable, o PLD (ProgrammableLogicDevice), es un Circuito Integrado cuya estructura lógica final es directamente configurada por el usuario mediante programación, sin necesidad de llevar a cabo ningún proceso de fabricación. A diferencia de las compuertas lógicas, que tienen una función fija, un PLD tiene una función indefinida al momento de fabricarse. Antes de que un PLD pueda ser usado en un circuito, este puede ser programado, es decir, que puede ser reconfigurado. El principio de síntesis de cualquier PLD se fundamenta en el hecho de que cualquier función booleana puede ser expresada como una suma de productos. La mayoría de los PLDs están formados por una matriz de conexiones, una matriz de compuertas AND, y una matriz de compuertas OR y algunos, además, con registros. Con estos recursos se implementan las funciones lógicas deseadas mediante un software especial y un programador. Las matrices pueden ser fijas o programables. El PLD es un circuito integrado, formado por una matriz de puertas lógicas y flip-flops, que proporcionan una solución al diseño de forma análoga, a las soluciones de suma de productos, productos de sumas y multiplexores UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables • Historia de los PLD • Antes de que se inventaran los PLDs, se utilizaban las memorias ROM (Memorias de solo lectura, ReadOnlyMemory) para crear funciones de lógica combinacional arbitrarias con un número determinado de entradas. Considerando de esta manera a una ROM con m entradas (líneas de dirección); y con n salidas (líneas de datos). Cuando se utiliza como memoria, la ROM contiene palabras de n bits. • En 1969 fueron presentados los primeros PLD, por la compañía Motorola (el XC157). • En 1970 Texas Instrumentsfabricó el TMS2000, basado en las memorias ROM de solo lectura de IBM, el cual podía ser programado alterando la capa de metal durante la producción del circuito integrado. • La empresa IBM fue la primera en darles el nombre de "dispositivos lógicos programables" (ProgrammableLogicArray). • En 1973, National Semiconductor introdujo el DM7575, con 14 entradas y 8 salidas sin registros de memoria. • En 1974, La compañía General Electric fue la primera en crear un dispositivo PLD que podía ser borrado: lanzó, junto con MonolithicMemories, el PALA (ProgrammableAssociativeLogicArray). • En 1975, Signetics saca al mercado el 82S100, el cual se basaba en el DM7575 de Nationalsemiconductors. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Tipos de PLD • Se manejandiferentestipos de clasificacionespara los PLDs. • De acuerdo a la tecnología mediante la cual se fabrican • TTL o ECL (EmitterCoupledLogic) • Son fabricados con transistores bipolares. Son más rápidos y consumen más potencia que los CMOS. La velocidad de propagación es menor de los 7nSeg. y los consumos típicos oscilan alrededor de 100-200 mA, esto para un chip de 20-24 patillas. • 2) CMOS. • Son construidos con transistores MOSFET. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Tipos de PLD • De acuerdo a la forma en que pueden ser borrados, • PLDs no borrables. Estos solo pueden programarse una sola vez y son fabricados mediante tecnología TTL. (PROM) • PLDsreprogramables. Son reprogramables por el usuario y permiten una fácil verificación. Estos son fabricados mediante tecnología CMOS. A su vez se clasifican en: • a) EPLD (Eraseable PLD). Son borrables por radiación ultravioleta, por lo cual deben • tener ventanas de cuarzo y deben ir encapsulados en cerámica, haciéndolos más • costosos que los de la segunda clase, Por ejemplo las memorias EPROM. • b) EEPLD. (ElectricallyEraseable PLD) Son borrables eléctricamente y tienen encapsulado • de plástico. Por ejemplo las memorias EEPROM. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Familias de PLD • Existen diferentes familias de PLD, siendo las siguientes las mas populares: • PROM (Programmable Read Only Memory) • Se utiliza como una memoria direccionable y no como un dispositivo lógico, debido a las • limitaciones que imponen las puertas AND fijas. Fueron de los primeros PLD comerciales. • 2) PLA (ProgrammableLogicArrays) • También se conoce como FPLA (Field ProgrammableLogicArray), debido a que es el • usuario y no el fabricante el que los programa. Son los antecesores de los PAL. • 3) PAL (Programmable Array Logic) • Mejora las desventajas de las PLA en cuanto a los retardos en los fusibles. Es el • dispositivo programable, para una sola vez, más común, y se implementa con • tecnología TTL y ECL • 4) GAL (Generic Array Logic) • Tiene una estructura muy parecida a la PAL, pero con las siguientes diferencias: • - Es reprogramable. • - Tiene configuraciones de salida reprogramables UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Que es un PAL? Un PAL o Matriz Lógica Programable (ProgrammableArrayLogic ), es un término utilizado para describir una familia de dispositivos programables usados para implementar funciones lógicas en circuitos digitales. Fue introducida por la compañía MonolithicMemories, Inc. (MMI) en marzo 1978. - Los dispositivos PAL consisten de un núcleo pequeño PROM (memoria programable de solo lectura) y una lógica de salida adicional para implementar funciones lógicas deseadas con pocos componentes.- Los dispositivos PAL sólo pueden programarse una vez (OTP, one-time programmable) y no pueden ser actualizados ni ser reusados luego de su programación inicial.- La estructura de una PAL se basa en que cualquier función lógica puede ser descrita por sumas de productos lógicos (AND y OR). - La programación del PAL se realiza mediante la “quema” de fusibles ordenados matricialmente dentro del dispositivo. - El software de diseño PALASM (PAL Assembler o ensamblador PAL) convertía las ecuaciones Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Que es un PAL? Ejemplo: PAL16L8 8: # salidas 16: # entradas L: Logica de salida BAJA • La estructura de una PAL permite implementar cualquier suma de productos lógica con un número de variables definido. • Cada punto de intersección entre una fila y columna se llama celda, y es el elemento programable de la PAL. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Que es un GAL? GAL o Matriz Genérica Programable Una GAL o Matriz Genérica Programable (GenericArrayLogic) , en su forma básica, es un PLD con una matriz AND reprogramable, una matriz OR fija y una lógica de salida programable mediante una macrocelda. Esta estructura permite implementar cualquier función lógica como suma de productos con un numero de términos definido. En los PLDs no reprogramables la síntesis de las ecuaciones lógicas se realiza mediante quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas. En el caso de un GAL es básicamente la misma idea pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de intersección hay un fusible, el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS). Mediante la programación se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee. Una celda activada conecta su correspondiente intersección de fila y columna, y una celda desactivada desconecta la intersección. Las celdas se pueden borrar y reprogramar eléctricamente. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Que es un GAL? A continuación se muestran la estructura típica de un GAL y la macrocelda de salida del GAL22V10. Ejemplo: GAL22V10 10: # salidas 22: # entradas V: Configuracion de salida variable UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Tema No. 3 • Ambiente de programación y simulación del PLD UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Software de programación Existen diferentes tipos de software con los que se pueden programar PALs y GALs, sin embargo en este curso manejaremos el programa WINCUPL (de la compania ATMEL), el cual es de registro gratuito. • Descargar programa de la pagina: • http://www.atmel.com/tools/WINCUPL.aspx • Instalar software en PC. • Companyname: University of Tulsa Serial number: 60008009 • Como crear un programa. • Opción 1: Abrir un proyecto nuevo New Project y capturar los campos de datos de • usuario • Opción 2: Abrir un programa de muestra (sampleprograms) y reeditar el campo de datos • de usuario UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 1) Seleccionar un proyectonuevo UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 2) Capturar los datos de usuario en la pantalla “Design Properties” NOTA: Todosestosdatospuedenserllenadosconforme a criterio del usuario, excepto el de “Device”, yaqueeste campo se llenautilizando el nemonicosugeridopor el programa en la opcion: Option Devices. - Sugerencia de captura en “Design Properties” Name Compuertas; Partno PRACTICA 1; Revision01; Date 7/03/13; DesignerT.Delfin; Company UTSLRC; Location San Luis RC; Assembly Sistemas Digitales; Deviceg16v8a; UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 3) Seleccionar el nemonico (alias). Options Device Seleccione el tipo de empaque Seleccione el numero de parte Anoteestenemonico en la ventana de Design Properties UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 4) Hacer el cuerpo del programa • Los comentarios se escriben en medio de los caracteres /* y */ • Los comentarios son notas de referenciapara el programador y no tieneningerencia en el funcionamiento del programa /*********************************************************************************/ /* */ /* Este es un ejemploparademostrarcomocompilar con WINCUPL*/ /* Este programa va a simular todas las compuertas logicas */ /* */ /*********************************************************************************/ • Primeramente se definenlasentradas. Estoes, se asignan los pines de entrada y se les ponennombres /* * Inputs: define inputs to build simple gates from */ Pin 1 = a; Pin 2 = b; UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 5) Asignarlasterminales de salidas • Se definenlasterminales de salida con sucorrespondientesnombres /* * Outputs: define outputs as active HI levels * */ Pin 12 = inva; Pin 13 = invb; Pin 14 = and; Pin 15 = nand; Pin 16 = or; Pin 17 = nor; Pin 18 = xor; Pin 19 = xnor; UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 6) Desarrollarlasecuaciones de salida • Definir las operaciones logicas que va a realizar el dispositivo. /* * Logic: examples of simple gates expressed in CUPL */ inva = !a; /* inverters */ invb = !b; and = a & b; /* and gate */ nand = !(a & b); /* nand gate */ or = a # b; /* or gate */ nor = !(a # b); /* nor gate */ xor = a $ b; /* exclusive or gate */ xnor = !(a $ b); /* exclusive nor gate */ UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II
Dispositivos Lógicos Programables 6) Compilacion del programa • CUPL es un compilador, estoes, se trata de un programaquerealiza la conversion de un archivocreado en un procesador de texto con comandos e instruccionesescritos en un lenguaje de alto nivel y genera un archivo en un formato mas primitivo o basico (bajonivel). Este ultimo archivopuedeserutilizadopor un programador o por un simulador. UNIDAD I. Sistemas numéricos y dispositivos lógicos programables SISTEMAS DIGITALES II