Projetos

Simulador RISC-V

Montador e simulador de pipeline de 5 estágios

  • Python
  • Assembly

Sobre o projeto

Simulador funcional de um processador RISC-V de 32 bits com pipeline de 5 estágios (IF, ID, EX, MEM, WB), feito para a disciplina de Arquitetura de Computadores.

O programa lê um arquivo .asm, monta as instruções para binário e hexadecimal e executa ciclo a ciclo, gerando um log detalhado do estado de cada estágio do pipeline e dos registradores.

Destaques

  • Montador de duas passadas que exporta cada instrução em binário (32 bits) e hexadecimal

  • Subconjunto do RV32I: tipos R, I, S, B e J, além das pseudo-instruções LI e MV

  • Unidade de forwarding opcional para resolver hazards de dados

  • Detecção de hazards com inserção de bolhas (stalls)

  • Preditor de desvio de 2 bits

  • Com as otimizações, o programa de teste cai de ~45 para ~25 ciclos

  • Log ciclo a ciclo do pipeline no arquivo de saída

Tecnologias

  • Python 3
  • RISC-V RV32I
  • Assembly
Ver código no GitHub