You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trabalho de Organização e Arquitetura de Computadores
4
+
Pedro Nogueira - 14/0065032
5
+
UnB - 2020/2
6
+
7
+
Projeto de um processador monociclo na arquitetura RISC-V na linguagem C++.
8
+
O trabalho simula a arquitetura de um processador RISC-V na linguagem C++ como o programa [RARS](https://github.com/TheThirdOne/rars/releases) 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.
9
+
10
+
## Especificações
11
+
12
+
### Plataforma
13
+
14
+
WSL2|Ubuntu em um Windows 10
15
+
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
16
+
VSCode
17
+
18
+
### Como rodar
19
+
20
+
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.
21
+
22
+
### PDF
23
+
24
+
O PDF do professor está na raiz do projeto.
25
+
26
+
### main.cpp
27
+
28
+
Código que começa o projeto, procurando na raiz os arquivos de dump.
29
+
30
+
### globals.h
31
+
32
+
Constantes e flags utilizadas pelo projeto inteiro.
33
+
34
+
### acessoMemoriaRV.c
35
+
36
+
Trabalho antigo contendo as funcionalidades para escrita e leitura na memória.
37
+
38
+
### riscvcommands.cpp
39
+
40
+
Comandos possíveis do projeto, cada um com sua função correspondente.
41
+
42
+
### riscv.cpp
43
+
44
+
Arquitetura completa do processador, unindo a ideia de cada funcionalidade na sequência lógica dos acontecimentos dentro da estrutura.
45
+
A arquitetura é dividida em 3 pedaços de funcionamento:
46
+
47
+
- fetch: Fase em que cada instrução é reconhecida como uma instrução e carregada para o processador de uma em uma.
48
+
- decode: Identificação da funcionalidade requisitada pela instrução pegada no fetch.
49
+
- execute: Execução da funcionalidade reconhecida no decode.
50
+
51
+
### code.bin/data.bin
52
+
53
+
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).
54
+
55
+
### Esse README.md
56
+
57
+
Vamos sempre atualizar, se atentando ao formato markdown dele. Inclusive os espaços no final das linhas!!!
0 commit comments