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.