Aprende › Tema 7
Sumadores binarios: medio sumador, completo y en cascada
Lectura de 8 min · Equipo bitGateLab
Sumar es la operación más importante de una computadora: con ella se resta, se multiplica, se calculan direcciones de memoria y se cuentan eventos. Aquí vas a construir un sumador desde cero: primero el medio sumador de un bit, luego el sumador completo que acepta un acarreo, después el sumador de varios bits en cascada y, al final, cómo el mismo circuito resta usando complemento a 2.
Sumar en binario a mano
Las reglas para sumar dos bits son cuatro: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 y 1 + 1 = 102, es decir, 0 con acarreo de 1 hacia la siguiente columna. Si además llega un acarreo, 1 + 1 + 1 = 112: resultado 1 y acarreo 1. Igual que en decimal, se suma columna por columna de derecha a izquierda, pasando el acarreo a la izquierda.
Medio sumador
El medio sumador suma dos bits, A y B, y entrega dos salidas: la suma S y el acarreo C.
| A | B | C | S |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
La columna S es la tabla de una XOR y la columna C es la de una AND. Por lo tanto:
S = A ⊕ B C = AB
Se llama "medio" porque no tiene entrada para el acarreo que viene de una columna anterior, así que solo sirve para el bit menos significativo.
Sumador completo
El sumador completo suma tres bits: A, B y el acarreo de entrada Cin. Entrega la suma S y el acarreo de salida Cout. Fíjate que el par (Cout, S) es, en binario, la cantidad de unos que hay en las entradas.
| A | B | Cin | Cout | S |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
S vale 1 cuando hay una cantidad impar de unos: S = Σm(1, 2, 4, 7) = A ⊕ B ⊕ Cin. Cout vale 1 cuando hay dos o más unos: Cout = Σm(3, 5, 6, 7), que simplificada es la función de mayoría:
Cout = AB + ACin + BCin
Si en el mapa de Karnaugh de S intentas agrupar, verás que ningún 1 tiene un vecino con 1: es el patrón de tablero de ajedrez típico de la XOR, que no se simplifica en suma de productos.
Sumador completo con dos medios sumadores
Una forma práctica de armarlo es encadenar dos medios sumadores y una OR:
- Primer medio sumador: P = A ⊕ B y G = AB.
- Segundo medio sumador, con P y Cin: S = P ⊕ Cin y un acarreo parcial P·Cin.
- Cout = G + P·Cin = AB + (A ⊕ B)Cin.
Esta expresión es equivalente a la de mayoría: si A y B valen 1, AB ya da el acarreo; si exactamente uno de ellos vale 1, el acarreo depende de Cin. A G se le llama señal de generación y a P señal de propagación.
Sumador de acarreo en cascada
Para sumar números de n bits se conectan n sumadores completos en fila: el Cout de cada etapa entra como Cin de la siguiente. El Cin de la primera etapa se pone en 0, y el Cout de la última es el acarreo final. A esta estructura se le llama sumador de acarreo en cascada o ripple carry, porque el acarreo "se propaga" de etapa en etapa como una onda. En la familia 74HC existe un chip que contiene cuatro sumadores completos ya conectados así (el 74HC283).
Ejemplo 1: 1011 + 0110 con un sumador de 4 bits. En decimal es 11 + 6.
| Etapa | Ai | Bi | Cin | Si | Cout |
|---|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 | 1 |
| 2 | 0 | 1 | 1 | 0 | 1 |
| 3 | 1 | 0 | 1 | 0 | 1 |
Suma: S3S2S1S0 = 0001 con acarreo final 1, es decir 100012 = 17. Correcto: 11 + 6 = 17, que no cabe en 4 bits y por eso aparece el acarreo final.
El costo es el tiempo. La etapa 3 no puede dar su resultado definitivo hasta que le llegue el acarreo de la etapa 2, que a su vez espera al de la etapa 1. Si cada etapa tarda dos niveles de compuerta en producir su acarreo, un sumador de n bits tarda del orden de 2n retardos de compuerta en el peor caso. Para 64 bits eso es demasiado lento, por eso los procesadores usan sumadores con acarreo anticipado, que calculan los acarreos en paralelo a partir de las señales G y P. En el cronograma del simulador puedes ver cómo las salidas cambian por pasos hasta estabilizarse.
Restar con el mismo sumador
Como se explica en sistemas numéricos, en complemento a 2 el negativo de B es B + 1. Entonces:
A − B = A + B + 1
Para obtenerlo basta con poner una XOR en cada bit de B, con la otra entrada conectada a una línea de control M, y conectar M también al Cin de la primera etapa. Con M = 0 las XOR dejan pasar B y Cin = 0: el circuito suma. Con M = 1 las XOR invierten B y Cin = 1 aporta el "+1": el circuito resta.
Ejemplo 2: restas de 4 bits.
- 9 − 5: A = 1001, B = 0101, B = 1010. 1001 + 1010 + 1 = 1 0100. Se descarta el acarreo final: 0100 = 4.
- 5 − 9: A = 0101, B = 1001, B = 0110. 0101 + 0110 + 1 = 0 1100. Sin acarreo final. 1100 en complemento a 2 vale −8 + 4 = −4.
Cuando restas números sin signo, el acarreo final indica si hubo préstamo: 1 significa que A ≥ B y 0 significa que A < B.
Errores comunes
- Usar un medio sumador en las etapas intermedias. Toda etapa que recibe un acarreo necesita un sumador completo.
- Dejar flotante el Cin de la primera etapa. Debe ir a 0 para sumar, o a M en un sumador-restador.
- Confundir acarreo final con desbordamiento. En números con signo, el acarreo final se descarta; el desbordamiento se detecta con C3 ⊕ C4.
- Olvidar el "+1" al restar y conectar solo los inversores: el resultado sale una unidad abajo.
- Escribir S = A + B + Cin con OR. La suma de un bit es una XOR, no una OR.
Pruébalo en el simulador
Armar un sumador en el editor es el mejor puente entre las compuertas y la aritmética. Empieza con un bit y crece hasta cuatro.
- Coloca dos entradas, una XOR y una AND, y conéctalas como en el diagrama del medio sumador. Genera su tabla de verdad.
- Arma un sumador completo con dos medios sumadores y una OR, y verifica sus 8 renglones contra la tabla de este artículo.
- Copia el sumador completo cuatro veces y encadena los acarreos. Pon el primer Cin en 0.
- Cambia las entradas a 1011 y 0110 y observa que la salida sea 0001 con acarreo final 1.
- Abre el cronograma, cambia una entrada que obligue al acarreo a recorrer las cuatro etapas (por ejemplo 1111 + 0001) y observa cómo se estabilizan las salidas.
Ejercicios
- Calcula S y Cout de un sumador completo con A = 1, B = 0, Cin = 1.
Respuesta
Hay dos unos: S = 0 y Cout = 1 (1 + 0 + 1 = 102).
- Suma 0111 + 0101 con un sumador de 4 bits e indica los acarreos de cada etapa.
Respuesta
Etapa 0: 1 + 1 = 0, acarreo 1. Etapa 1: 1 + 0 + 1 = 0, acarreo 1. Etapa 2: 1 + 1 + 1 = 1, acarreo 1. Etapa 3: 0 + 0 + 1 = 1, acarreo 0. Resultado 1100 = 12 (7 + 5).
- Con un sumador-restador de 4 bits calcula 6 − 3 y escribe qué valor tiene M.
Respuesta
M = 1. 0110 + 1100 + 1 = 1 0011. Se descarta el acarreo: 0011 = 3.
- Interpretando como números con signo de 4 bits, ¿hay desbordamiento en 0111 + 0101?
Respuesta
Sí. 7 + 5 = 12 no cabe en el rango −8 a +7. El resultado 1100 se leería como −4. Los acarreos son C3 = 1 y C4 = 0, y V = 1 ⊕ 0 = 1.