Práctica 5 · Señales de control y entrega
viernes 30 de octubre · 16:00–17:40 · en 69 días
GUÍA 30-10-26 Laboratorio de Arquitecturas Computacionales
LA116 · viernes 30/10/2026 · 16:00-17:40 · Sesión 12
Práctica 5 · Señales de control y entrega
LAS SEÑALES QUE GOBIERNAN EL CAMINO DE DATOS
- RegWrite — habilita la escritura en el banco de registros.
- ALUSrc — elige entre el segundo registro y el inmediato.
- ALUOp — código de operación de la ALU.
- MemRead y MemWrite — acceso a la memoria de datos.
- MemToReg — elige entre el resultado de la ALU y el dato leído.
- Branch y Jump — control del siguiente valor del contador de programa.
TABLA DE CONTROL
Construir la tabla con una fila por tipo de instrucción y una columna por señal. Esa tabla es la especificación completa de la unidad de control y se traduce directamente a un case.
- Tipo R: RegWrite 1, ALUSrc 0, MemToReg 0, Branch 0.
- lw: RegWrite 1, ALUSrc 1, MemRead 1, MemToReg 1.
- sw: RegWrite 0, ALUSrc 1, MemWrite 1.
- beq: RegWrite 0, ALUSrc 0, Branch 1, ALU en modo resta.
CONTROL DE LA ALU EN DOS NIVELES
El control principal genera un ALUOp de dos bits y un control secundario lo combina con funct3 y funct7 para producir el código final. Se hace en dos niveles para que el control principal no dependa de todos los bits de la instrucción, lo que lo mantiene pequeño.
LA DECISIÓN DEL SALTO
Para beq se resta y se usa la bandera Z. El PC toma el valor de salto solo si Branch y Z están ambas activas. Es una AND, y es todo el hardware de decisión de salto en la versión monociclo.
VERIFICACIÓN
Escribir un testbench que aplique una instrucción codificada por tipo y verifique que todas las señales coinciden con la tabla. Es una prueba mecánica y detecta de inmediato los errores de codificación de opcode.
ENTREGA DE LA PRÁCTICA 5
Reporte con la tabla de control completa, el diagrama del decodificador, la verificación por tipo de instrucción y las mediciones de recursos.
Nada anotado en esta sesión todavía.