Skip to content

joaopmarinho/Risc-v-Pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infraestrutura de Hardware - Projeto RISC-V Pipeline 🚀

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.


📝 InstruçÔes

A tabela abaixo mostra o status das instruçÔes implementadas até o momento:

# 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 HALT ❌ ❌ ❌

ObservaçÔes

  • As instruçÔes de 1 a 19 sĂŁo parte oficial do conjunto RV32I. A pseudo-instrução HALT Ă© uma instrução usada em linguagens de montagem para indicar o fim de um programa ou pausar sua execução. Quando o processador encontra a instrução HALT, geralmente Ă© acionada uma ação especĂ­fica, como inserir zeros (ou outro valor prĂ©-determinado) no pipeline do processador e interromper o contador de programa (PC), impedindo a execução de novas instruçÔes. Essa funcionalidade permite que o programador tenha controle sobre o fluxo do programa, indicando explicitamente quando o programa deve terminar.

  • 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. Suas decisĂ”es de projeto devem ser adequadamente documentadas.

📩 Entrega

A data de entrega do projeto serĂĄ especificada no Classroom, assim como a quantidade de pessoas por grupo.

Modelo de entrega

A entrega consiste no link do fork do repositĂłrio no GitHub, contendo o cĂłdigo-fonte do projeto e o relatĂłrio.

  • Faça um fork desse repositĂłrio e inclua as alteraçÔes necessĂĄrias (todos os integrantes do grupo devem contribuir!).

    • AlĂ©m das implementaçÔes, fique Ă  vontade para alterar o README.md como achar melhor.
  • O relatĂłrio deve estar no formato PDF ou como link de um Google Docs. Ele deve conter:

    • Nome dos integrantes do grupo.
    • Link para o fork do repositĂłrio no GitHub.
    • Descrição das escolhas de projeto.
    • Descrição dos testes realizados.
    • Resultados obtidos.
    • Dificuldades encontradas.
    • ConclusĂŁo.

O relatório não deve ser extenso, mas deve conter todas as informaçÔes necessårias para a avaliação do projeto.

📝 Avaliação

A avaliação do projeto serå baseada na implementação correta das instruçÔes, nos testes realizados e no funcionamento adequado do processador.

  • O projeto serĂĄ submetido a casos de teste para verificar seu funcionamento, mas o processo de avaliação tambĂ©m levarĂĄ em conta a qualidade do cĂłdigo e do relatĂłrio.

📁 Estrutura do repositório

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.
  • sim: ContĂ©m os arquivos de simulação e os resultados, para uso nos testes.
  • verif: ContĂ©m os arquivos de testbench e as instruçÔes de como testar o projeto.

📚 Recursos

❓ DĂșvidas

Em caso de dĂșvidas ou dificuldades, entre em contato com os monitores da disciplina:

🐛 Encontrou um bug ou pensou numa melhoria?

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:

  1. 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.

  2. 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published