# arRISCado

Um sistema computacional RISC-V

Participantes:
- Ângelo Renato Pazin Malaguti   - 165429  - [@llturtle22ll](https://github.com/llTurtle22ll)
- Claudio dos Santos Junior      - 195727  - [@jr-santos98](https://github.com/jr-santos98)
- Elton Cardoso do Nascimento    - 233840  - [@eltoncn](https://github.com/EltonCN)
- Gabriel Costa Kinder           - 234720  - [@Kinder-Eggs](https://github.com/Kinder-Eggs)
- Iago Caran Aquino              - 198921  - [@iagocaran](https://github.com/iagocaran)
- João Pedro de Moraes Bonucci   - 218733  - [@Joao-Pedro-MB](https://github.com/Joao-Pedro-MB)

[This project](https://github.com/arRISCado/arRISCado)

## Entrega 1 - Suporte a RV32I

Meta:
Para essa entrega, os alunos devem planejar e desenvolver um processador RISC-V de 32 bits, com pipeline, que suporte o conjunto RV32I. Deve ser possível desenvolver programas em alto nível para o processador e executa-los corretamente no kit de FPGA.

Para realizar essa entrega, o grupo deve:

- Compreender e desenvolver um pipeline para o processador RISC-V;
- Compreender e desenvolver programas de teste para o processador;
- Compreender e desenvolver um ambiente de execução (restrito ao momento) para o processador;
- Compreender e utilizar o ambiente de execução em FPGA para implementar o processador;

## Entrega 2 - Suporte a RV32IMA

Meta:
Para essa entrega, o conjunto de instruções do processador deve ser incrementado para suportar RV32IMA, novamente com suporte de software para execução em FPGA. Além disso, um primeiro periférico precisa ser desenvolvido e integrado ao processador.

Para realizar essa entrega, o grupo deve:

- Compreender e desenvolver a cache L1;
- Compreender e desenvolver um periférico para o processador;
- Compreender e desenvolver um ambiente de execução (restrito ao momento) para o periférico;
- Compreender e utilizar o ambiente de execução em FPGA para implementar o periférico;
- Demonstrar um código que utilize as instruções e o periférico em FPGA;
  
## Entrega 3 - Instruções Compactas

Para essa entrega, o conjunto de instruções do processador deve ser incrementado para suportar as instruções compactas. Além disso, outro periférico precisa ser desenvolvido em integrado ao processador.

Para realizar essa entrega, o grupo deve:

- Compreender e desenvolver um periférico para o processador;
- Compreender e desenvolver um ambiente de execução (restrito ao momento) para o periférico;
- Co-mpreender e utilizar o ambiente de execução em FPGA para implementar o periférico;
- Demonstrar um código que utilize as instruções e os periféricos em FPGA;
  
## Entrega 4 - Suporte a RV32IMAC

A meta para essa entrega é complementar o sistema computacional desejado. Além disso, o processador deve conseguir executar programas em alto nível, compilados para o conjunto de instruções RV32IMAC.

Todas as pendências de entregas anteriores precisam ser sanadas até a entrega final.
