Práctica 3 · Simulación, verificación y entrega
viernes 2 de octubre · 16:00–17:40 · en 41 días
GUÍA 02-10-26 Laboratorio de Arquitecturas Computacionales
LA116 · viernes 02/10/2026 · 16:00-17:40 · Sesión 8
Práctica 3 · Simulación, verificación y entrega
OBJETIVO
Verificar la ALU de 32 bits con una estrategia de prueba que no puede ser exhaustiva y documentar los resultados.
EL PROBLEMA DE LA COBERTURA
Con dos operandos de 32 bits hay 2⁶⁴ combinaciones: probarlas todas es imposible. Hay que elegir casos con criterio, y explicar ese criterio en el reporte es parte de lo que se evalúa.
CASOS FRONTERA OBLIGATORIOS
- Cero, uno y menos uno.
- Máximo positivo con signo: 0x7FFFFFFF.
- Mínimo negativo con signo: 0x80000000.
- Máximo sin signo: 0xFFFFFFFF.
- Sumas que desbordan con signo y sumas que generan acarreo sin desbordar.
- Desplazamientos de 0 y de 31 posiciones.
PRUEBA ALEATORIA DIRIGIDA
Complementar los casos frontera con algunos miles de pares aleatorios comparados contra un modelo de referencia en Python. Es la técnica estándar de verificación de hardware y encuentra los errores que los casos escogidos a mano no cubren.
MODELO DE REFERENCIA
Escribir en Python la misma ALU, con aritmética de 32 bits enmascarada. Generar un archivo de vectores con operandos y resultados esperados, y hacer que el testbench lo lea y compare. Cualquier discrepancia se reporta con $display.
UN DETALLE QUE SUELE FALLAR
En Python los enteros son de precisión arbitraria. Hay que enmascarar con & 0xFFFFFFFF después de cada operación y manejar el signo explícitamente; si no, el modelo de referencia y el hardware discrepan y el error está en el modelo.
ENTREGA DE LA PRÁCTICA 3
Reporte con la tabla de operaciones, la estrategia de verificación justificada, los resultados de las pruebas aleatorias, las mediciones de recursos y frecuencia, y las conclusiones.
NOTA
Las prácticas de mayor dificultad pueden recibir puntos adicionales si el equipo demuestra desempeño, comprensión e innovación sobresalientes.
Nada anotado en esta sesión todavía.