Repolode
munetomo-maruyama

munetomo-maruyama/mmRISC-2

Um núcleo de CPU RISC-V de 64 bits em SystemVerilog que inicializa o Linux em uma placa FPGA Arty A7, com RTL, verificação e documentação escritos com Claude Code.

Estrelas
168
Forks
32
Issues abertas
0
Último commit
há 18 dias

O que é?

mmRISC-2 é um processador RISC-V (RV64GC) de 64 bits feito em casa e escrito em SystemVerilog, desenvolvido para a placa FPGA Digilent Arty A7-100T. Ele inclui um pipeline in-order de 8 estágios, MMU Sv39 com PMP, predição de desvios, FPU de precisão simples e dupla, caches L1 de instruções e dados de 16 KB e um cache L2 de 256 KB. Os periféricos vêm do LiteX, e há depuração JTAG/cJTAG integrada ao chip.

Na placa, a 50 MHz, o projeto inicializa o LiteX BIOS, o OpenSBI e o Linux 7.2 a partir de um cartão SD, chegando a um shell BusyBox. O Debian 13 (riscv64) também pode inicializar, com gcc, make e gdb sendo executados na própria placa. Programas C bare-metal podem ser compilados e depurados no IDE Eclipse via JTAG. O núcleo disponibiliza 29 eventos de contadores de desempenho que podem ser usados com o Linux perf.

O repositório também documenta o ambiente de verificação, que inclui testes feitos em casa, riscv-tests, modelos de referência e injeção de bugs, além do histórico do projeto e das especificações em inglês e japonês.

Recursos principais

  • 01Núcleo RV64GC com modos M, S e U, MMU Sv39 e PMP de 8 entradas.
  • 02Pipeline in-order de 8 estágios com predição de desvios (BTB, gshare e pilha de endereços de retorno).
  • 03FPU de precisão simples e dupla com datapath em pipeline.
  • 04Caches L1 de instruções e dados de 16 KB, além de um cache L2 de 256 KB.
  • 05Inicializa Linux 7.2 e Debian 13 a partir de um cartão SD na Arty A7-100T.
  • 06Depuração JTAG/cJTAG integrada ao chip, com gatilhos de hardware e compatibilidade com OpenOCD e gdb.

Casos de uso

  • Estudar como um núcleo de CPU RISC-V, caches e uma MMU são implementados em SystemVerilog.
  • Executar Linux em um núcleo RISC-V personalizado usando uma placa FPGA de baixo custo.
  • Desenvolver e depurar programas C bare-metal em um núcleo RISC-V executado em FPGA, via Eclipse.
  • Usar como referência para verificação de processadores com modelos de referência e injeção de bugs.

Antes de usar

  • Ele funciona em uma placa FPGA específica, a Digilent Arty A7-100T, portanto não pode ser executado em outro hardware sem ser portado.
  • O projeto se encerra na Rev.02, portanto não há planos para continuar o desenvolvimento.

Tópicos

#risc-v#cpu#fpga#systemverilog#hardware-design#linux#rtl#processor-verification

Perguntas frequentes

O que é mmRISC-2?
Um núcleo de CPU RISC-V de 64 bits em SystemVerilog que inicializa o Linux em uma placa FPGA Arty A7, com RTL, verificação e documentação escritos com Claude Code. mmRISC-2 é um processador RISC-V (RV64GC) de 64 bits feito em casa e escrito em SystemVerilog, desenvolvido para a placa FPGA Digilent Arty A7-100T. Ele inclui um pipeline in-order de 8 estágios, MMU Sv39 com PMP, predição de desvios, FPU de precisão simples e dupla, caches L1 de instruções e dados de 16 KB e um cache L2 de 256 KB. Os periféricos vêm do LiteX, e há depuração JTAG/cJTAG integrada ao chip.
mmRISC-2 é gratuito? Qual é a licença?
mmRISC-2 é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
mmRISC-2 ainda é mantido?
Manutenção ativa. O último commit de mmRISC-2 foi em 20 de out. de 2026.
Para que posso usar mmRISC-2?
Estudar como um núcleo de CPU RISC-V, caches e uma MMU são implementados em SystemVerilog. Executar Linux em um núcleo RISC-V personalizado usando uma placa FPGA de baixo custo. Desenvolver e depurar programas C bare-metal em um núcleo RISC-V executado em FPGA, via Eclipse. Usar como referência para verificação de processadores com modelos de referência e injeção de bugs.
Onde consigo mmRISC-2?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/munetomo-maruyama/mmRISC-2

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

Um núcleo de CPU RISC-V de 32 bits, compacto e pronto para produção, escrito em SystemVerilog e voltado a aplicações de controle embarcado.

Outros#risc-v#cpu-core#hardware
2,2 mil+20 esta semana831SystemVerilogApache-2.0Atualizado há 12 horas