Práctica 3 · ALU para procesador RISC-V de 32 bits
viernes 25 de septiembre · 16:00–17:40 · en 34 días
GUÍA 25-09-26 Laboratorio de Arquitecturas Computacionales
LA116 · viernes 25/09/2026 · 16:00-17:40 · Sesión 7
Práctica 3 · ALU para procesador RISC-V de 32 bits
OBJETIVO DE LA PRÁCTICA
Descripción en Verilog y simulación de una Unidad Lógica-Aritmética para un procesador RISC-V de 32 bits.
EL REPERTORIO BASE RV32I
- 32 registros de 32 bits, con x0 cableado a cero.
- Instrucciones de 32 bits de longitud fija.
- Arquitectura de carga y almacenamiento.
- Formatos R, I, S, B, U y J.
OPERACIONES QUE DEBE SOPORTAR LA ALU
- ADD y SUB.
- AND, OR, XOR.
- SLL, SRL y SRA — desplazamientos lógico izquierdo, lógico derecho y aritmético derecho.
- SLT y SLTU — comparación con signo y sin signo.
LA DIFERENCIA ENTRE SRL Y SRA
SRL rellena con ceros; SRA replica el bit de signo. En Verilog el operador >> es lógico y >>> es aritmético, pero >>> solo funciona si el operando está declarado signed. Es una trampa habitual: si el dato es un reg sin signo, >>> se comporta como >>.
SLT Y SLTU
SLT compara con signo y SLTU sin signo. Con los mismos bits el resultado difiere: 0xFFFFFFFF es −1 con signo y 4 294 967 295 sin signo. Hay que declarar explícitamente $signed() donde corresponda.
EL DESPLAZADOR DE BARRIL
Desplazar hasta 31 posiciones en un ciclo requiere cinco capas de multiplexores, una por bit del conteo. En Verilog basta escribir el operador y la herramienta lo infiere, pero conviene entender qué hardware se está pidiendo: no es gratis.
CODIFICACIÓN DEL CONTROL DE LA ALU
Definir un código de operación de cuatro bits y documentar la tabla. Ese código lo generará la unidad de control en la Práctica 5, así que conviene fijarlo ahora y no cambiarlo después.
PARA LA PRÓXIMA SESIÓN
Simulación exhaustiva y entrega.
Nada anotado en esta sesión todavía.