Universidad de chile Laboratorio 1 Implementación de un sumador binario Autor: Sergio Liberman Bronfman Thomas Peet Moraga Curso: EL4002 Profesores: Francisco Rivera Profesor auxiliar: Andrés Sanhueza
1. Sumador de un bit Figura 1: Esquema pines de sumador de un bit Se desea implementar un bloque de sumador simple que posea dos entradas binarias correspondientes a los dígitos del numero, y una tercera entrada con el valor del Carry in previo. Las salidas de este bloque debe ser una salida binaria correspondiente al digito del número de salida y otra correspondiente al valor del Carry out. Las salidas del bloque básico es la siguiente Cuadro 1: Tabla de verdad de sumador de un bit a b Carry-in s Carry-out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1.1. Planteamiento de la solucion Para conseguir un circuito que retornara la tabla de verdad propuesta, se utilizo el método de los mini-términos el cual consiste en tomar todas las combinaciones de la tabla de verdad que retornan un 1 en la salida y luego sumarlas como boolean según sus entradas. Se hizo esto para ambas salidas, la suma S y el Carry out. Según este método, el circuito que logra la primera salida, S, es el que implementa la siguiente expresión booleana. Ā BC + ĀB C + A B C + ABC Esta expresión escrita con variables y operaciones booleanas es la siguiente: (ā b c) (ā b c) (a b c) (a b c) 1
Cuadro 2: Combinaciones que hacen que S sea 1 a b Carry-in 0 0 1 0 1 0 1 0 0 1 1 1 Cuadro 3: Combinaciones que hacen que Carry out sea 1 a b Carry-in 0 1 1 1 0 1 1 1 0 1 1 1 Esta expresión se puede reducir un poco factorizando por ā los dos primeros términos y por a los dos últimos. (ā (( b c) (b c))) (a (( b c) (b c))) Y con esta expresión reducida armar el circuito lógico resulta muy simple ya que consta de 4 AND s que compararan todas las combinaciones de b, b,c y c, luego las salidas de esos bloques se concatenaran con 2 OR s y la salida de cada uno de estos OR ira comparada con a o ā según corresponda para por ultimo unir estas dos con un OR. Para la segunda salida, correspondiente al Carry out la expresión que se necesita analizar es la siguiente: ābc + A bc + AB c + ABC Que escrita con términos booleanos queda de la siguiente forma: (ā b c) (a b c) (a b c) (a b c) Esta expresión se puede reducir notablemente si se agrupan el segundo y cuarto término de la siguiente manera: (b ((ā c) (a c))) ((a c) (b b)) Como el término b b es siempre verdadero, se ignora al compararlo con un término cualquiera por medio de un AND. Por lo tanto la expresión más reducida queda escrita de la siguiente manera. (b ((ā c) (a c))) (a c) La cual se implementa utilizando un AND para concatenar el bloque de la derecha y 3 AND para el bloque de la izquierda, uniéndolos a través de un OR. Para el bloque de la izquierda se necesitara un OR para comparar la salida entre (ā c) y (a c ). Utilizando los dos circuitos en paralelo se arma el bloque básico de la suma binaria. Las simulaciones hechas en Quartus II arrojaron los siguientes resultados al someter el circuito lógico a todas las entradas posibles. 2
Figura 2: Esquema de implementación de sumador de 1 bit Figura 3: Simulación de suma de 1 bit 3
Figura 4: Esquema de implementación de sumador de 4 bits Se comprueba que los resultados obtenidos en la simulación, corresponden exactamente a lo requerido para la suma binaria según la tabla de verdad de esta. 2. Sumador de cuatro bits 2.1. Planteamiento La implementación de una suma binaria para cuatro bits con carry se puede realizar al concatenar 4 sumadores de un bit tal que los carry-out de los tres primeros sean traspasados a los carry-in de los tres últimos. 4
Figura 5: Esquemático de sumador de 4 bits 2.2. Implementación Para hacer esto, se procedió a convertir el sumador de 1 bit a un circuito integrado. De es forma, varios sumadores de un bit pueden formar conjuntamente a un sumador de 4 bits. Esta opción se puede usar fácilemente con el programa Quartus II, el cual utiliza el integrado como un componente más entre los que trae el programa. La solución propuesta en el enunciado es la que muestra la figura 4. Se observa que existen dos entradas por sumador de 1 bit disponibles. Se enumeran las entradas a de los sumadores del uno al cuatro, de forma que el resultante es el arreglo con componentes {a1, a2, a3, a4}. De esa forma, la variable a1 es el primer bit del número a, a2 es el segundo bit del número a, y así sucesivamente. De forma análoga, las cuatro entradas b representan a los cuatro bits que representan al número b. Se observa también que los carry-out de los tres primeros sumadores están conectados al carry-in de los tres últimos. Este procedimiento es el mismo que se hace cuando se hace la operación de suma binaria en un papel. El carry-out del primer bit (s4 ) se convierte en el carry-in del segundo bit (s3 ) y así sucesivamente. El resultado lo representa la salida de cada sumador de un bit concatenado y el carry-out del cuarto sumador. El arreglo {cout4, s4, s3, s2, s1} es el resultado de la suma, respresentado en cinco bits. 5
Figura 6: Todas las combinaciones posibles del sumador de cuatro bits 2.3. Resultados El esquemático quedó tal como se muestra en la figura 5. Se observan las 9 entradas de la suma constituídas por 4 bits de un número, 4 bits del segundo y el carry-in. El resultado se muestra en la figura 6 para todas las posibles combinaciones de números binarios de entrada, es decir, 2 9 = 512 combinaciones posibles. A modo de prueba, se tomó una operación al azar. Se hizo la operación 0110 2 + 0110 2, es decir, 6 10 +6 10. El resultado mostrado por el circuito fue 01100, tomando el orden del arreglo de resultado que fue descrito anteriormente. Convirtiendo 1100 2 a base decimal se encuentra que la suma es correcta, pues 1100 2 = 12 10. 6