Cómo diseñar un sumador completo utilizando registros de desplazamiento

Un típico sumador completo de 1 bit se muestra en la siguiente imagen.

La forma clásica de implementar un sumador de N bits es usar N 1 bits de sumadores completos en paralelo. Por ejemplo, para un sumador de 4 bits se necesitan cuatro sumadores completos de 1 bit.

El sumador agrega las dos entradas A y B en paralelo produciendo la suma S. Suponiendo que A y B se almacenan en dos registros de entrada y S se almacena en un registro de salida, el sumador puede realizar la suma en un solo ciclo de reloj.

El mismo sumador se puede implementar con una técnica de serie de bits. El circuito consta de tres registros de desplazamiento (no se muestran en la imagen), un FF y un sumador completo de 1 bit. Para la implementación en serie de bits, se necesitan N ciclos del reloj para realizar la misma adición.

Antes de cada adición, las entradas A y B deben cargarse en dos registros de desplazamiento. Los registros de desplazamiento de entrada desplazan las entradas un bit a la vez comenzando desde el LSB. El sumador completo de 1 bit agrega Ai con Bi y produce un bit de suma y un bit de ejecución. El bit de ejecución se almacena en un FF y se usa en el siguiente ciclo de reloj. Los bits de la suma se desplazan en un registro de desplazamiento de salida. Después de N ciclos de reloj, el resultado está contenido en el registro de salida.

No hay forma de diseñar un sumador completo utilizando registros de desplazamiento.

Un sumador completo es un sumador de 1 bit.

Suma = a xor b xor c, donde a, b son entradas y c es la carga inicial.

El sumador completo está hecho de 2 medios sumadores en cascada y el transporte final es ‘o’ de 2 señales de transporte del medio sumador.

Si necesita una adición de más de 1 bit, podemos optar por un sumador Carry de onda que es una cascada de sumadores completos. Para la adición de 4 bits, necesitamos 4 sumadores completos donde el transporte de un sumador completo va como entrada al siguiente sumador completo.

Para simplificar el diseño del sumador Ripple Carry, podemos usar un sumador completo y almacenarlo en un flipflop para que podamos usarlo para la próxima adición de bits. Aquí usamos solo 1 sumador completo y un flipflop, a diferencia del sumador Ripple Carry.

Lo obtendrá en cualquier libro básico de diseño digital. Recomiendo “Diseño digital” de Morris Mano.

Necesito 2 registros de cambio, flip flop JK, puerta XOR y algunas otras puertas lógicas por lo que recuerdo.

La operación de desplazamiento resulta en multiplicación o división.

Un desplazamiento a la izquierda da como resultado la multiplicación por 2 y un desplazamiento a la derecha da como resultado la división por 2, por ejemplo, considere una variable “x”, ahora si inicialmente x = 2, luego el desplazamiento a la izquierda x por 1 bit da como resultado x = 4 y el desplazamiento a la izquierda por 2 unidades dan como resultado x = 8.

de manera similar para 1 desplazamiento a la derecha obtendremos x = 1, en general podemos escribir que después de n desplazamientos a la izquierda el valor de x es x * (2 ^ n) y para n desplazamientos a la derecha el valor de x es x / (2 ^ n )

Entonces, simplemente usando un registro de desplazamiento no es posible generar un circuito sumador.