Este repositório contém os arquivos base para o projeto da disciplina Infraestrutura de Hardware (IF674) no CIn-UFPE. O objetivo do projeto é implementar instruções em um processador RISC-V usando SystemVerilog.
As instruções a serem implementadas são as do conjunto RV32I, que é parte oficial do conjunto de instruções RISC-V. A tabela abaixo mostra o status de implementação das instruções no projeto atual:
# | Instrução | Implementada | Testada | Funcionando |
---|---|---|---|---|
1 | BEQ |
✅ | ✅ | ✅ |
2 | LW |
✅ | ✅ | ✅ |
3 | SW |
✅ | ✅ | ✅ |
4 | ADD |
✅ | ✅ | ✅ |
5 | AND |
✅ | ✅ | ✅ |
Seu objetivo é implementar as instruções restantes listadas abaixo:
# | Instrução | Implementada | Testada | Funcionando |
---|---|---|---|---|
1 | JAL |
✅ | ✅ | ✅ |
2 | JALR |
✅ | ✅ | ✅ |
3 | BNE |
✅ | ✅ | ✅ |
4 | BLT |
✅ | ✅ | ✅ |
5 | BGE |
✅ | ✅ | ✅ |
6 | LB |
✅ | ✅ | ✅ |
7 | LH |
✅ | ✅ | ✅ |
8 | LBU |
✅ | ✅ | ✅ |
9 | SB |
✅ | ✅ | ✅ |
10 | SH |
✅ | ✅ | ✅ |
11 | SLTI |
✅ | ✅ | ✅ |
12 | ADDI |
✅ | ✅ | ✅ |
13 | SLLI |
✅ | ✅ | ✅ |
14 | SRLI |
✅ | ✅ | ✅ |
15 | SRAI |
✅ | ✅ | ✅ |
16 | SUB |
✅ | ✅ | ✅ |
17 | SLT |
✅ | ✅ | ✅ |
18 | XOR |
✅ | ✅ | ✅ |
19 | OR |
✅ | ✅ | ✅ |
20 | LUI |
✅ | ✅ | ✅ |
21 | HALT |
✅ | ✅ | ❌ |
Você tem permissão para modificar a implementação do processador como desejar (por exemplo, incluir fios, alterar tamanhos, modificar sinais, remover ou adicionar módulos, etc.), desde que o resultado final continue funcionando como um pipeline e produza os resultados corretos.
O repositório está organizado da seguinte forma:
design
: Contém o código-fonte do projeto do processador RISC-V.doc
: Contém mais explicações sobre a implementação do pipeline.sim
: Contém exemplos de arquivos de simulação e seus resultados esperados.verif
: Contém os arquivos de testbench e as instruções de como testar o projeto.
-
Para iniciar o estudo do conjunto de instruções RISC-V, consulte:
-
Para simular e testar o projeto do processador RISC-V, utilize:
-
Para verificar os resultados:
- Compare seus resultados com os exemplos fornecidos em
sim
- Utilize o simulador CompSim
- Utilize o RISC-V Interpreter, by Cornell University
- Compare seus resultados com os exemplos fornecidos em
A data de entrega do projeto será especificada no Classroom, assim como a quantidade de pessoas por grupo.
A entrega consiste em um relatório seguindo o modelo disponível aqui. Não deve ser extenso, mas precisa conter todas as informações descritas para a avaliação do projeto.
A avaliação do projeto será baseada na implementação correta das instruções, nos testes realizados e no funcionamento adequado do processador.
Encorajamos os alunos a procurarem por bugs e sugerirem melhorias para o projeto, visando aperfeiçoá-lo para as próximas edições da disciplina. Se você identificou algum bug ou possui uma ideia para melhorar o projeto, ficaremos felizes em receber sua contribuição!
Existem duas maneiras de nos enviar suas sugestões:
-
Issue: Abra uma issue detalhando o problema ou a melhoria proposta. Certifique-se de fornecer informações claras e específicas para facilitar a compreensão do que precisa ser corrigido ou aprimorado.
-
Pull Request: Se você é familiarizado com o processo de pull requests, sinta-se à vontade para enviar suas alterações diretamente por meio de um pull request. Certifique-se de descrever claramente as alterações realizadas e o motivo por trás delas.