UNIVERSIDAD AUTONOMA METROPOLITANA Alumnos: Gabriel González Carranza. Erwin De Valdemar. Profesor: Joel Ricardo Jiménez Cruz. Practica # 2: Sumador/Restador de 4 bits. Objetivo. El objetivo principal de esta práctica es aplicar los conocimientos adquiridos en clase para construcción de un circuito electrónico que realice las operaciones básicas de suma y resta de dos números en su representación binaria, por lo cual cada número de estos consistirán de una longitud de 4 bits. El resultado de dichas operaciones estará dentro del rango de [-8,7] el cual se mostrara con la ayuda de un display de 7 segmentos y con la ayuda de un LED se indicara si dicho número es positivo o negativo. Introducción.La ALU. Como sabemos tanto la suma y la resta pertenecen al conjunto de operaciones básicas de la Unidad Aritmética Lógica (ALU, por si siglas en ingles). Así que para poder continuar daremos una definición: ALU : es una de las unidades que conforman la Unidad Central de Procesos (CPU) mediante la cual se pueden realizar un conjunto de operaciones aritméticas básicas las cuales son suma, resta, división y multiplicación y de operaciones lógicas las cuales son OR, NOT, AND, etc. Los circuitos mediante los que la ALU ejecuta dichas operaciones pueden ser desde muy simples a muy complejos. Y dichos circuitos se encuentran de diversos componentes que permiten que la ALU pueda efectuar las operaciones. Entre estos componentes se encuentra el dispositivo de adición, con el que realiza las operaciones aritméticas; los registros, que contiene a los operandos (proporcionados por la unidad de control y que son los que realizan la operación), a los resultados parciales, a los resultados finales y por último los dispositivos de control de cálculo, que dirige y controla las operaciones. La Unidad de Control es la que le envía a la ALU las órdenes que debe realizar y la que se encarga de transportar los resultados obtenidos. De esta manera, vemos como la Unidad de Control le envía las acciones a realizar, la ALU procesa los datos y sus resultados quedan en el registro de salida de la ALU, desde donde serán transportados por otros mecanismos. Circuito combinacionales y secuenciales. Como se menciono antes el objetivo es la creación de un circuito electrónico, existen tanto circuitos combinacionales como circuitos secuenciales. Circuito combinacional: es un circuito digital cuyas salidas en un instante concreto vienen dadas por las entradas del circuito en ese mismo momento. Como consecuencia de la definición anterior un circuito combinacional no puede tener bucles cerrados o realimentaciones, porque si hay bucles, la entrada se realimenta o cambia durante el circuito. Un circuito combinacional puede describirse utilizando una fórmula con Álgebra de Boole en la que las salidas sean dependientes solamente de las entradas. Circuito secuencial: es un circuito digital los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también dependen del estado anterior o estado interno. Los circuitos secuenciales tienen capacidad para recordar o memorizar los valores de las variables de entrada. Esta operación es imprescindible en los circuitos digitales, sobre todo en los programables. El almacenamiento o memorización de la información presente en la puerta del circuito se realiza gracias a la existencia de unas variables denominadas de estado interno, cuyo valor se verá afectado por los cambios producidos en la combinación binaria aplicada a la entrada. Tanto las salidas como el estado siguiente son función de las entradas y del estado presente. El análisis de los circuitos secuenciales consiste en obtener una tabla o un diagrama de las secuencias de tiempo de las entradas, salidas y estados internos. También es posible escribir expresiones booleanas que describen el comportamiento de los circuitos secuenciales. Por lo tanto para el desarrollo de la práctica utilizaremos circuitos secuenciales. Desarrollo Teórico.A continuación explicaremos el marco teórico en cual nos apoyamos para realizar la construcción de nuestro circuito. El Sistema numérico binario Es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, pues trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0). La conversión del sistema binario al sistema decimal la vemos en el siguiente ejemplo: 1010101 = 1 × 106 + 0 × 105 + 1 × 104 + 0 × 103 + 1 × 102 + 0 × 101 + 1 × 100 en general la si tenemos un numero de n bit, su conversión al sistema digital está dada por: 𝑛𝑢𝑚. 𝑑𝑒 𝑛 𝑏𝑖𝑡𝑠 = (0,1) × 10𝑛 + (0,1) × 10𝑛−1 + ⋯ + 0 × 101 + (0,1) × 100 Es momento de recordar que anteriormente se menciono que utilizaríamos números negativos, la forma de hacer esto va ser por el uso del bit más significativo de nuestro numero en binario, el cual es el bit que se encuentra al extremo derecho del numero, si dicho bit es un “0” nuestro numero será positivo, en caso contrario que es el “1” nuestro numero será negativo. La suma binaria.La suma en binario es muy fácil de comprender, ya que esta solo consta de posibles combinaciones que son: 0 +0 0 0 +1 1 1 +0 1 1 +1 10 (el “1” es bit de acarreo) como ocurre con los números en base 10 no hay dificultad para realizar la operación en ningún caso excepto en el cual se tiene 1+1, que en base diez sería 2 y que en base dos se escribe 10 (uno cero). Por lo tanto, en binario 1+1=0 y llevamos 1 a la posición mas significativa siguiente. Esto último lo llamamos acarreo. Sumador Medio.Llamaremos sumador medio a un circuito combinacional que realiza la suma de un bit con otro bit, para poder definir el sumador medio daremos su tabla de verdad: X Y S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 donde X,Y son las dos entradas, S es una salida y C otra salida el llamamos el acarreo. Las funciones que se obtiene de la tabla anterior son: S= (X’ * Y) + (X * Y’) C= Y * X con ayuda de las funciones anteriores podemos crear su diagrama lógico el cual es: Sumador Completo.Una vez comprendió la funcionalidad del sumador medio podremos crear lo que llamaremos el sumador completo. Una suma completa debe recibir el acarreo proveniente de la suma anterior de aquí es donde surge la necesidad de tener un acarreo inicial. El sumador completo consta de tres entradas que son Xi, Yi, Ci donde, Xi, Yi son los bits de entrada de nuestro numero en binario y Ci va ser el acarreo de la suma anterior si esta existe, en caso de de existir el Ci=C0, donde C0 es el acarreo inicial de cero en nuestra suma; por otro lado tendremos únicamente 2 salidas las cuales serán Si, Ci+1, donde Si es la salida y Ci+1 es el acarreo. Por lo tanto un sumador completo tiene la siguiente tabla de verdad: Xi 0 0 0 0 1 1 Yi 0 0 1 1 0 0 Ci 0 1 0 1 0 1 Si 0 1 1 0 1 0 Ci+1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 como en el caso del sumador medio, con la ayuda de la tabla de verdad obtendremos las funciones, para poder crear el diseño del circuito lógico, por tanto las funciones de la tabla anterior son: Si = (Xi’ * Yi’ * Ci) + (Xi’ * Yi * Ci’) + (Xi * Yi’ * Ci’) + (Xi * Yi * Ci) = [(Xi⊕Yi) ⊕ Ci] Ci+1= (Xi * Yi) + (Xi * Ci) + (Yi * Ci) = Ci*( Xi⊕Yi)+( Xi*Yi) y su diagrama lógico es el siguiente: Para construir un sumador que sume cifras de 4 bits hay que conectar 4 sumadores completos en cascada, a continuación mostramos su diagrama: El primer sumador (el de abajo) realiza la operación X0 + Y0 porque la suma comienza desde los bits menos significativos. Por lo tanto un sumador de 4 bits se ve de la siguiente forma: Resta (Complemento a 2). Una vez defina la forma de hacer la suma, procederemos a explicar cómo se realizara la resta de dos números en notación binaria. Para realizar la resta se usara el concepto llamado complemento a 2, esto se debe a lo siguiente: en X+Y+C0 = X+Y, donde C0 es el acarreo inicial y este es igual a cero, entonces para hacer la resta de X-Y necesitamos que nuestro sumador realice la siguiente operación X+Y’+1. El algoritmo a seguir es el siguiente: 1. El operador X se deja intacto. 2. El operador Y se le aplica el complemento a 1, el cual consiste en intercambiar “0” por “1” y viceversa a este nuevo numero lo llamamos Y’. 3. Tómanos el operador X y Y’ aplicamos la suma normal . 4. Por último tomamos el resultado del paso 3 y lo operamos con 1 bajo la suma. para logar que nuestro circuito haga el algoritmo pasado, utilizaremos una señal de control la cual llamaremos switch S/R. La forma de funcionar de dicho switch es la siguiente: Cuando el switch S/R tenga un valor de 0, se realizará la suma A+B. Cuando el switch S/R tenga un valor de 1, se realizará la resta A-B. en el siguente diagrama se muestra donde se coloca el switch S/R la construcción del de switch S/R se obtiene con compuertas de tipo XOR de dos entradas, pues estas compuertas permiten negar una señal de manera controlada, para que quede mas claro mostraremos 2 diagramas, uno con switch S/R apagado(suma) y otro con el switch S/R prendido (resta). Como vemos al estar apagado el switch S/R nuestro operando Y siempre será el mismo y nuestro acarreo inicial es 0. Ahora con el switch S/R encendido vemos que nuestro operando Y es ahora Y’ y nuestro acarreo inicial es 1. De esta manera con solo agregar un switch a nuestro sumador completo de 4 bit podremos hacer las 2 operaciones básicas que se nos piden. Display de 7 segmentos y Decodificador BCD.Para la visualización de resultados ocuparemos un display de 7 segmentos y un decodificador de código binario-decimal (BCD por sus siglas en ingles). El display de 7 segmentos, es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Este display esta compuesto por 7 luces de tipo LED a los cuales llamamos segmentos los cuales se activan o se desactivan. Para obtener la representación adecuada de cada número utilizaremos un decodificador BCD. En el BCD cada cifra representa un dígito decimal (0, 1,...8 y 9) que representa con su equivalente binario en cuatro bits, cabe mencionar que nuestro convertidor BCD tendrá como entradas el resultado de 4 bits de las suma o resta y esta a su vez tiene 7 salidas que irán conectadas a cada unos de los segmentos del display. Para que el display de 7 segmentos y el convertidor BCD desplieguen la forma correcta de representar cada número utilizamos la siguiente tabla de verdad: R1 0 0 0 0 R2 0 0 0 0 R3 0 0 1 1 R4 0 1 0 1 A 1 0 1 1 B 1 1 1 1 C 1 1 0 1 D 1 0 1 1 E 1 0 1 0 F 1 0 0 0 G 0 0 1 1 Numero a representar 0 1 2 3 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 * * * * * * 1 0 0 1 1 1 * * * * * * 1 1 1 1 1 1 * * * * * * 0 1 1 0 1 1 * * * * * * 0 0 1 0 1 0 * * * * * * 1 1 1 0 1 1 * * * * * * 1 1 1 0 1 1 * * * * * * 4 5 6 7 8 9 * * * * * * Para finalizar esta parte mostraremos la forma de conectar del decodificador BCD al display de 7 segmentos. Tecnología TTL. TTL es la sigla en inglés de transistor-transistor logic, es decir, "lógica transistor a transistor". Es una familia lógica o lo que es lo mismo, una tecnología de construcción de circuitos electrónicos digitales. En los componentes fabricados con tecnología TTL los elementos de entrada y salida del dispositivo son transistores bipolares. Características. Su tensión de alimentación característica se halla comprendida entre los 4,75v y los 5,25V (como se ve un rango muy estrecho). Los niveles lógicos vienen definidos por el rango de tensión comprendida entre 0,2V y 0,8V para el estado L (bajo) y los 2,4V y Vcc para el estado H (alto). La velocidad de transmisión entre los estados lógicos es su mejor base, si bien esta característica le hace aumentar su consumo siendo su mayor enemigo. Motivo por el cual han aparecido diferentes versiones de TTL como FAST, LS, S, etc y últimamente los CMOS: HC, HCT y HCTLS. En algunos casos puede alcanzar poco más de los 250 MHz. Las señales de salida TTL se degradan rápidamente si no se transmiten a través de circuitos adicionales de transmisión (no pueden viajar más de 2 m por cable sin graves pérdidas). Familias TTL. Los circuitos de tecnología TTL se prefijan normalmente con el número 74 (54 en las series militares e industriales). A continuación un código de una o varias cifras que representa la familia y posteriormente uno de 2 a 4 con el modelo del circuito. Con respecto a las familias cabe distinguir: TTL : Serie estándar TTL-L (low power) : Serie de bajo consumo TTL-S (schottky) : Serie rápida (usa diodos Schottky) TTL-AS (advanced schottky) : Versión mejorada de la serie anterior TTL-LS (low power schottky) : Combinación de las tecnologías L y S (es la familia más extendida) TTL-ALS (advanced low power schottky) : Versión mejorada de la serie AS TTL-F (FAST : fairchild advanced schottky) TTL-AF (advanced FAST) : Versión mejorada de la serie F TTL-HCT (high speed C-MOS) : Serie HC dotada de niveles lógicos compatibles con TTL TTL-G (GHz C-MOS) : GHz ( From PotatoSemi) Tecnología. La tecnología TTL se caracteriza por tener tres etapas, siendo la primera la que le nombra: Etapa de entrada por emisor. Se utiliza un transistor multiemisor en lugar de la matriz de diodos de DTL. Separador de fase. Es un transistor conectado en emisor común que produce en su colector y emisor señales en contrafase. Driver. Está formada por varios transistores, separados en dos grupos. El primero va conectado al emisor del separador de fase y drenan la corriente para producir el nivel bajo a la salida. El segundo grupo va conectado al colector del divisor de fase y produce el nivel alto. Esta configuración general varía ligeramente entre dispositivos de cada familia, principalmente la etapa de salida, que depende de si son búferes o no y si son de colector abierto, tres estados (ThreeState), etc. Mayores variaciones se encuentran entre las distintas familias: 74N, 74L y 74H difieren principalmente en el valor de las resistencias de polarización, pero la mayoría de los 74LS (y no 74S) carecen del transistor multiemisor característico de TTL. En su lugar llevan una matriz de diodos Schottky (como DTL). Esto les permite aceptar un margen más amplio de tensiones de entrada, hasta 15V en algunos dispositivos, para facilitar su interface con CMOS. También es bastante común, en circuitos conectados a buses, colocar un transistor pnp a la entrada de cada línea, para disminuir la corriente de entrada y así cargar menos el bus. Existen dispositivos de interface que integran impedancias de adaptación al bus para disminuir las reflexiones y aumentar la velocidad. Aplicaciones. Además de los circuitos LSI y MSI descritos aquí, las tecnologías LS y S también se han empleado en: Microprocesadores, como el 8X300, de Signetics, la familia 2900 de AMD y otros. Memorias RAM Memorias PROM PAL, Programmable Array Logic, consistente en una PROM que interconecta las entradas y cierto número de puertas lógicas. Desarrollo Práctico. Equipo y material.Para la construcción del sumador restador de 4 bits se requiere: 1 sumador 74LS283. 2 Flip-flop 74LS175. 1 Circuito integrado 74LS32*(OR). 2 Circuitos integrados 74LS86 (XOR). Varios LED’S (4 banderas). 1 Circuito integrado 74LS47 (Decodificador BCD). 1 Display de 7 segmentos ánodo comun. Protoboard (al menos 1). Varias resistencias Cable de cobre (telefónico o de red) Pinzas Exacto Multimetro Antes que nada se agregara una imagen de la simulación ya que también fue parte de la práctica y el desarrollo practico. A continuación lo que sigue es el desarrollo del sumador con todo el material que ya descrito anteriormente. Antes que nada lo primero que se realizo con todos los circuitos fue probarlos en el protoboard como se muestra en las siguientes imágenes: Pruebas del sumador (circuito integrado 74LS283). Es importante mencionar que todos nuestros circuitos se alimentaran con un voltaje de 5 volts, voltaje recomendado para la familia TTL de circuitos con nuestra fuente de poder la cual se muestra en la foto y la cual fue elaborada en la primera practica. Pruebas del decodificador de siete segmentos (circuito integrado 74LS47) junto con el display de siete segmentos. Y así se fueron probando todos y cada uno de los circuitos para probar su buen funcionamiento, para ya después proceder con el armado de todo el circuito completo en la protoboard. A continuación se muestran algunas de las fotos ya con el circuito armado, pero en las imágenes todavía no estaban las banderas porque primero se deseaba tener el circuito funcionando para en caso de existir errores (como paso), poderlos encontrar y solucionar más rápido. En esta imagen como se muestra ya estaba funcionando el circuito y se puede observar cómo está conectado el circuito como se menciono anteriormente todavía sin banderas para verificar que el sumador funcionara sin problemas alguno, se observa cómo está hecha la conexión primero está conectado el primer flip-flop (circuito integrado 74175) que será el que recibe la alimentación para después para después guardarlo en el segundo flip-flop, después están nuestras cuatro compuertas lógicas XOR (circuito integrado 74LS86), después viene lo que es el sumador que hara la función de la suma o resta dependiendo de un switch que estará a tierra es decir no recibirá voltaje para la suma, y en caso de recibir 5 volts hará la resta (este switch esta en la protoboard en la fila 16 de la protoboard en la parte de arriba de los circuitos), después viene el otro flip-flop que será el que guarde nuestro primer numero mandado a través del primer flip-flop, después viene el decodificador de siete segmentos que es el que mandara la salida del sumador para decodificar la señal al display de siete segmentos que mostrara la salida. Imagen donde se observa el sumador aun sin ninguna alimentación en las entradas. En la imagen anterior solo se muestran los circuitos más de cerca junto con el cableado. A continuación vienen imágenes ya del circuito completo con sus respectivas banderas de overflow, la del cero, la del signo y la del acarreo. En la imagen se observa el circuito con sus respectivas banderas, como se puede observar se utilizaron 2 protoboard para realizar las conexiones, aquí ya se utilizaron switch para alimentar el primer registro (flip-flop), y otro switch para controlar el reset y el clear del de ambos registros. A continuación en las siguientes imágenes se mostrara una suma mandando el 8 y el 1 para ver como se prenden las respectivas banderas. En la imagen se muestra como está encendida la bandera del overflow ya que hay un ocho y ya nos indica desbordamiento, después de esto lo que sigue es proceder a guardar el ocho en el siguiente registro y sumar el uno, pero antes al momento de hacer limpiar el primer registro hace una suma de los dos ochos que en ese momento se encuentran en los registros (esto es porque todavía no se limpia el primero). En esta imagen como ya se mencionaba se hacia la suma de los dos ochos porque aun no está limpio el registro que alimenta, por eso tenemos ese resultado en el display, pero se muestra como está encendida la bandera del acarreo porque lo hay en esa suma. Y por ultimo ya limpio el primer registro se observa la suma del ocho con el uno, y se observa cómo hay un desbordamiento indicado por el primer led, después también observamos que esta encendido el tercer led que indica el signo, porque ya tenemos un numero negativo en nuestro sumador. Aquí termina todo el desarrollo práctico. Resultados. Con esta práctica pudimos conocer el funcionamiento de algunos circuitos con compuertas lógicas, asi como otros circuitos como el sumador, el decodificador BCD y el display de siete segmentos asi como de hacer las conexiones correctamente a través del protoboard para hacer nuestro sumador y cuando estas fallaban revisar toda la conexión como se hizo en este caso porque a la primera no se dieron los resultados que esperábamos. Otra herramienta importante para la realización del sumador fue la simulación en el programa de Hades, a través de esta herramienta se facilito la realización del sumador asi se podían revisar más fácilmente que podía estar fallando y como debe funcionar el sumador. Conclusiones. Al finalizar la practica quedo más claro el funcionamiento de circuitos combinacionales, y el funcionamiento de una ALU, aunque muy primitiva pero así comprendemos mas el funcionamiento de lo que hace una computadora por dentro por medio de esta ALU primitiva que solo consta de 2 operaciones que es la suma y la resta. También el uso de nuestra fuente de poder fue importante para la alimentación de nuestro circuito. Otra herramienta importante fue usar un multimetro para detectar posibles errores en la alimentación de los circuitos. Resulto ser una buena experiencia en nuestro caso ya que nunca habíamos trabajado con este tipos de material para entender cómo puede estar armada una computadora por dentro y entender mas su funcionamiento interno. Bibliografía. Notas de clase. http://www.datasheetcatalog.net/es/ http://es.wikipedia.org/wiki/Tecnolog%C3%ADa_TTL http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/index.html