Skip to content

Trabalho da matéria de Organização e Arquitetura de Computadores, UnB - 2020/2

Notifications You must be signed in to change notification settings

bananahell/riscv-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OAC - Processador RiscV Monociclo em C++

Trabalho de Organização e Arquitetura de Computadores
Pedro Nogueira - 14/0065032
UnB - 2020/2

Projeto de um processador monociclo na arquitetura RISC-V na linguagem C++.
O trabalho simula a arquitetura de um processador RISC-V na linguagem C++ como o programa RARS faz. Ele recebe um dump de dados de memória tanto de instrução quanto de memória em um arquivo externo que ele lê e roda cada instrução conforme.

Especificações

Plataforma

WSL2|Ubuntu em um Windows 10
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
VSCode

Como rodar

O comando g++ -o ./main.exe -std=c++17 -Wall -Wno-overflow -pedantic -Wextra -g main.cpp compila o projeto todo, bastando depois rodar o executável main.exe resultante. O comando cppcheck . --enable=all --suppress=missingIncludeSystem funciona para checagem do projeto.

PDF

O PDF do professor está na raiz do projeto.

main.cpp

Código que começa o projeto, procurando na raiz os arquivos de dump.

globals.h

Constantes e flags utilizadas pelo projeto inteiro.

acessoMemoriaRV.c

Trabalho antigo contendo as funcionalidades para escrita e leitura na memória.

riscvcommands.cpp

Comandos possíveis do projeto, cada um com sua função correspondente.

riscv.cpp

Arquitetura completa do processador, unindo a ideia de cada funcionalidade na sequência lógica dos acontecimentos dentro da estrutura.
A arquitetura é dividida em 3 pedaços de funcionamento:

  • fetch: Fase em que cada instrução é reconhecida como uma instrução e carregada para o processador de uma em uma.
  • decode: Identificação da funcionalidade requisitada pela instrução pegada no fetch.
  • execute: Execução da funcionalidade reconhecida no decode.

code.bin/data.bin

Arquivos de dump das instruções gerados pelo RARS. O arquivo code.bin contém as instruções (.text) enquanto o arquivo data.bin contém os dados (.data).

Esse README.md

Vamos sempre atualizar, se atentando ao formato markdown dele. Inclusive os espaços no final das linhas!!!

Estilo

Estilo Google nativo do VSCode.

About

Trabalho da matéria de Organização e Arquitetura de Computadores, UnB - 2020/2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published