Repolode
munetomo-maruyama

munetomo-maruyama/mmRISC-2

Un núcleo de CPU RISC-V de 64 bits escrito en SystemVerilog que arranca Linux en una placa FPGA Arty A7, con el RTL, la verificación y la documentación escritos íntegramente por Claude Code.

Estrellas
168
Forks
32
Issues abiertos
0
Último commit
hace 17 días

¿Qué es?

mmRISC-2 es un procesador RISC-V (RV64GC) de 64 bits, desarrollado por su autor en SystemVerilog para la placa FPGA Digilent Arty A7-100T. Incluye una pipeline en orden de 8 etapas, una MMU Sv39 con PMP, predicción de saltos, una FPU de precisión simple y doble, cachés L1 de instrucciones y datos de 16 KB y una caché L2 de 256 KB. Los periféricos provienen de LiteX y dispone de depuración JTAG/cJTAG en el chip.

A 50 MHz, la placa arranca LiteX BIOS, OpenSBI y Linux 7.2 desde una tarjeta SD hasta llegar a una shell de BusyBox. También puede arrancar Debian 13 (riscv64), con gcc, make y gdb ejecutándose en la propia placa. Se pueden compilar y depurar programas C bare-metal desde el IDE Eclipse mediante JTAG. El núcleo expone 29 eventos de contadores de rendimiento que se pueden usar con Linux perf.

El repositorio también documenta el entorno de verificación, que incluye pruebas propias, riscv-tests, modelos de referencia e inyección de errores, además del historial de diseño y las especificaciones en inglés y japonés.

Funciones clave

  • 01Núcleo RV64GC con modos M, S y U, MMU Sv39 y PMP de 8 entradas.
  • 02Pipeline en orden de 8 etapas con predicción de saltos (BTB, gshare y pila de direcciones de retorno).
  • 03FPU de precisión simple y doble con una ruta de datos segmentada.
  • 04Cachés L1 de instrucciones y datos de 16 KB, además de una caché L2 de 256 KB.
  • 05Arranca Linux 7.2 y Debian 13 desde una tarjeta SD en la Arty A7-100T.
  • 06Depuración JTAG/cJTAG en el chip con disparadores de hardware, compatible con OpenOCD y gdb.

Casos de uso

  • Estudiar cómo se implementan en SystemVerilog un núcleo de CPU RISC-V, las cachés y la MMU.
  • Ejecutar Linux en un núcleo RISC-V personalizado, usando una placa FPGA económica.
  • Desarrollar y depurar programas C bare-metal en un núcleo RISC-V implementado en una FPGA mediante Eclipse.
  • Usarlo como referencia para la verificación de procesadores con modelos de referencia e inyección de errores.

Antes de usarlo

  • Se ejecuta en una placa FPGA específica, la Digilent Arty A7-100T, por lo que no puede funcionar en otro hardware sin adaptarlo.
  • El proyecto finaliza con Rev.02, así que no se prevé continuar su desarrollo.

Temas

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

Preguntas frecuentes

¿Qué es mmRISC-2?
Un núcleo de CPU RISC-V de 64 bits escrito en SystemVerilog que arranca Linux en una placa FPGA Arty A7, con el RTL, la verificación y la documentación escritos íntegramente por Claude Code. mmRISC-2 es un procesador RISC-V (RV64GC) de 64 bits, desarrollado por su autor en SystemVerilog para la placa FPGA Digilent Arty A7-100T. Incluye una pipeline en orden de 8 etapas, una MMU Sv39 con PMP, predicción de saltos, una FPU de precisión simple y doble, cachés L1 de instrucciones y datos de 16 KB y una caché L2 de 256 KB. Los periféricos provienen de LiteX y dispone de depuración JTAG/cJTAG en el chip.
¿mmRISC-2 es gratuito? ¿Qué licencia tiene?
mmRISC-2 es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿mmRISC-2 sigue mantenido?
Mantenimiento activo. El último commit de mmRISC-2 fue el 20 oct 2026.
¿Para qué puedo usar mmRISC-2?
Estudiar cómo se implementan en SystemVerilog un núcleo de CPU RISC-V, las cachés y la MMU. Ejecutar Linux en un núcleo RISC-V personalizado, usando una placa FPGA económica. Desarrollar y depurar programas C bare-metal en un núcleo RISC-V implementado en una FPGA mediante Eclipse. Usarlo como referencia para la verificación de procesadores con modelos de referencia e inyección de errores.
¿Dónde consigo mmRISC-2?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/munetomo-maruyama/mmRISC-2

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Un núcleo de CPU RISC-V de 32 bits, compacto y con calidad de producción, escrito en SystemVerilog y pensado para aplicaciones de control integradas.

Otros#risc-v#cpu-core#hardware
2,2 mil+17 esta semana830SystemVerilogApache-2.0Actualizado hace 17 horas