Práctica 2 · Unidad Lógica-Aritmética de 4 bits: diseño
viernes 11 de septiembre · 16:00–17:40 · en 20 días
GUÍA 11-09-26 Laboratorio de Arquitecturas Computacionales
LA116 · viernes 11/09/2026 · 16:00-17:40 · Sesión 5
Práctica 2 · Unidad Lógica-Aritmética de 4 bits: diseño
OBJETIVO DE LA PRÁCTICA
Descripción en Verilog e implementación en FPGA de una Unidad Lógica-Aritmética de 4 bits básica.
OPERACIONES A IMPLEMENTAR
- Suma y resta en complemento a dos.
- AND, OR, XOR y NOT bit a bit.
- Desplazamiento a la izquierda y a la derecha.
- Comparación, que se implementa como resta y lectura de banderas.
ESTRUCTURA
La ALU se construye calculando todas las operaciones en paralelo y seleccionando la salida con un multiplexor gobernado por el código de operación. En hardware calcular de más es barato; decidir antes de calcular cuesta latencia.
EL SUMADOR-RESTADOR ÚNICO
A − B = A + ~B + 1. Se invierte B con XOR contra la señal de resta y se usa esa misma señal como acarreo de entrada. Un solo sumador hace ambas operaciones.
- assign {cout, sum} = a + (b ^ {4{sub}}) + sub;
LAS BANDERAS
- Z — resultado cero: assign z = (result == 0);
- N — negativo: el bit más significativo del resultado.
- C — acarreo de salida, válido para aritmética sin signo.
- V — desbordamiento con signo: XOR entre el acarreo de entrada y el de salida del bit más significativo.
EL ERROR CLÁSICO DE LAS BANDERAS
Usar el acarreo para detectar desbordamiento con signo. No funciona: son condiciones distintas. Con 4 bits, 7 + 1 da −8, hay desbordamiento con signo y no hay acarreo. Conviene tabular los ocho casos y verificarlos.
VERIFICACIÓN
Con 4 bits hay 256 pares de operandos por operación: la prueba puede ser exhaustiva. Generar los valores esperados en Python y compararlos automáticamente en el testbench.
PARA LA PRÓXIMA SESIÓN
Implementación en FPGA y entrega.
Nada anotado en esta sesión todavía.