Diseño De Una Alu De 4 Bits
Un ALU, o Unidad Aritmético Lógica, es un circuito digital que realiza operaciones aritméticas y lógicas. Es un componente fundamental de las CPUs (Unidades Centrales de Procesamiento) y de las GPUs (Unidades de Procesamiento Gráfico). Vamos a diseñar una ALU sencilla que pueda procesar datos de 4 bits.
Representación Binaria
Primero, comprendamos cómo se representan los números en binario. Un bit puede ser 0 o 1. Un número de 4 bits puede representar valores desde 0 (0000) hasta 15 (1111). Cada posición del bit tiene un valor ponderado: 23, 22, 21, 20, de derecha a izquierda. Por ejemplo, 1010 representa (1 * 23) + (0 * 22) + (1 * 21) + (0 * 20) = 8 + 0 + 2 + 0 = 10.
Operaciones Básicas
Nuestra ALU de 4 bits soportará las siguientes operaciones básicas: SUMA, RESTA, AND, OR, y NOT. Estas operaciones son suficientes para comprender el principio de funcionamiento de una ALU más compleja. Cada operación se seleccionará mediante una señal de control.
Must Read
Diseño de un Sumador de 4 Bits
La suma es la operación aritmética principal. Necesitamos un circuito que sume dos números de 4 bits y genere un resultado de 4 bits, más un posible bit de acarreo (carry-out). Este circuito se construye combinando sumadores completos (full adders). Un full adder suma tres bits: dos bits de entrada (A y B) y un bit de acarreo de entrada (carry-in), generando un bit de suma (SUM) y un bit de acarreo de salida (carry-out).
Para un sumador de 4 bits, se conectan cuatro full adders en cascada. El carry-out de cada full adder se convierte en el carry-in del siguiente. El primer full adder tiene un carry-in inicial, que puede ser 0 para una suma simple o 1 para sumar un valor adicional. El último carry-out indica si hubo un desbordamiento (overflow) en la suma.

Diseño de un Restador de 4 Bits
La resta se puede implementar utilizando el concepto de complemento a dos. Para restar B de A, se calcula el complemento a dos de B y se suma a A. El complemento a dos de un número binario se obtiene invirtiendo todos los bits (complemento a uno) y luego sumando 1. Para implementar esto, necesitamos un inversor (puertas NOT) para invertir los bits de B y un sumador para sumar A con el complemento a dos de B. El carry-in inicial del sumador se establece en 1 para completar el complemento a dos.
Operaciones Lógicas
Las operaciones lógicas AND, OR y NOT se implementan utilizando las correspondientes puertas lógicas. Para la operación AND, se utiliza una puerta AND para cada par de bits de entrada. El resultado son 4 bits resultantes del AND bit a bit. Similarmente, para la operación OR, se utilizan puertas OR. La operación NOT simplemente invierte cada bit de entrada utilizando una puerta NOT.
Selector de Operaciones
Para seleccionar la operación que la ALU debe realizar, se utiliza un multiplexor (MUX). El MUX recibe como entrada los resultados de todas las operaciones (SUMA, RESTA, AND, OR, NOT) y, en función de la señal de control, selecciona una de estas entradas para la salida de la ALU. La señal de control es un conjunto de bits que especifican qué operación se debe realizar. Por ejemplo, 000 podría seleccionar la SUMA, 001 la RESTA, 010 el AND, y así sucesivamente.
Componentes de la ALU
En resumen, nuestra ALU de 4 bits consta de los siguientes componentes principales: Sumador/Restador de 4 bits, puertas lógicas AND, OR, NOT, y un multiplexor para seleccionar la salida. Las señales de control determinan qué operación se lleva a cabo. El resultado es un valor de 4 bits, y posiblemente un bit de acarreo o desbordamiento.
