Circuito Sumador
![]() |
Fig1. Sumador binario |
- Tabla de verdad
- Función lógica simplificada
- Esquema del circuito
- Descripción con HDL
- Implementacion
Veremos como realizar la descripción del circuito con el lenguaje
Verilog, por lo que es recomendable que tengas conocimientos básicos
sobre el uso de lenguajes de descripción de hardware HDL. Te dejo aquí
un par de enlaces interesantes <Sitio1><Sitio2>. En
vista que no realizaremos una implementación física como tal, vamos a
verificar la funcionalidad lógica del circuito mediante simulación
utilizando el software ModelSIM que viene instalado
con la suite Quartus/Intel que al día de hoy se llama QuestaSIM.
Aquí te dejo los enlaces para la descarga gratuita del software necesario previo registro:
Introducción
Dentro del contexto de la electrónica digital; Un sumador es un circuito que realiza la suma aritmética de dos números binarios. En su forma mas simple este circuito opera con dos bits de entrada (A, B) y dos salidas, una para el resultado de la suma (S) y otro para el indicador de acarreo (co) conformando asi un circuito conocido como sumador medio (Half Adder); si a este sumado agregamos una entrada de acarreo (ci), el circuito corresponderá con un sumador completo (Full Adder), tal como se observa en la figura 2.
![]() |
Fig2. Sumador Medio (HA) y Completo (FA) |
Los sumadores que se muestran en la figura 2, operan con entradas de 1-bit, pero pueden interconectarse fácilmente para incrementar el ancho de bits en la suma, el circuito resultante se conoce también como Sumador Paralelo. La figura 3 por ejemplo ilustra la composición de un sumador completo de 4-bits.
![]() |
Fig3. Sumador paralelo de 4-bit |
Diseño Lógico del Circuito
Tomando en practica el dicho "divide y vencerás", nos bastara analizar el funcionamiento logico que tiene el sumador medio (HA) empezando por la tabla de verdad de dos entradas para obtener la suma de productos (mini-terminos) y una función final simplificada para cada salida. En la figura 4 que muestra este analisis junto al esquema de circuito.
![]() |
Fig4. Diseño del sumador medio (HA) |
De la misma manera en la figura 5 se analiza el sumador completo y el esquema del circuito. Notara que es una extensión al sumador medio.
![]() |
Fig5. Diseño del sumador completo (FA) |
Implementacion
En esta parte veremos como implementar el circuito utilizando el lenguaje Verilog y la creación de módulos descriptivos.
Tomaremos
como ejemplo la función lógica de ambas salidas del sumador completo analizado en la figura 5. Para este nivel de descripción utilizaremos la palabra de asignación concurrente assign junto a los operadores lógicos del lenguaje, quedando el modulo con la siguiente codificación:
module fa(a,b,ci,s,co);
input a, b, ci; //Entradas del sumador + acarreo
output s, co; //Salida del sumador + acarreo
assign co = (a&b)|(ci & (a^b));//Función del acarreo Co
assign s = a^(b^ci); //Función de salida S
endmodule
Ahora si
consideramos implementar el sumador paralelo de 4-bit que se ve en la figura 3, podemos realizar la descripción del modulo utilizando varios sumadores completos, declarando instancias del modulo fa, algo similar a la llamada de procedimientos utilizados en los lenguajes de programación. Entonces nuestra codificación del modulo quedara así:
module adder4bit(a, b, s);
input [3:0] a, b;//Entradas del sumador
output [4:0] s; //Salida del sumador + 1bit
wire c1, c2, c3; //Puntos de interconexión
fa un1(a[0], b[0], 0, s[0], c1);
fa un2(a[1], b[1], c1, s[1], c2);
fa un3(a[2], b[2], c2, s[2], c3);
fa un4(a[3], b[3], c3, s[3], s[4]);
endmodule
Podemos optar también por utilizar el operador binario (+) en la asignación para un mayor nivel de abstracción en la codificación, lo que resulta muy útil al no necesitar una funciona lógica como tal, basta saber como opera la suma aritmética para lo cual nos bastara tomar como referencia un diagrama de bloques como el de la figura 6. Entonces el sumador final quedara así:
![]() |
Fig6. Esquema de sumador |
module adder4bit(a, b, s);
input [3:0] a, b;//Entradas del sumador
output [4:0] s; //Salida del sumador + 1-bit
assign s = a + b;//Asigna la suma
endmodule
Hemos visto de forma general como es la lógica y estructura de sumador paralelo de 4-bit que fácilmente se adapta a cualquier ancho. Se elaboro la descripción del circuito con lenguaje Verilog para su implementación en un dispositivo logico programable con la idea de ganar mas experiencia en este campo. Una alternativa para ver la implementación de este sumador, es utilizar un circuito integrado de función fija como ser el 74LS283.
Para finalizar solo quiero agradecer tu visita a mi blog, espero que el contenido de esta entrada hubiera sido de ayuda en tu formación educativa, favor cualquier consulta al respecto pueden escribirme a:
pablinzte@gmail.com / pablinza@me.com
@blinzar (Twitter)
Pablo Cesar Zárate.