Repolode
munetomo-maruyama

munetomo-maruyama/mmRISC-2

64-битное ядро RISC-V на SystemVerilog, запускающее Linux на FPGA-плате Arty A7; RTL, тесты и документация созданы с помощью Claude Code.

Звёзды
168
Форки
32
Открытые issues
0
Последний коммит
18 дней назад

Что это?

mmRISC-2 — самодельный 64-битный процессор RISC-V (RV64GC) на SystemVerilog для FPGA-платы Digilent Arty A7-100T. В его состав входят 8-ступенчатый конвейер с последовательным выполнением команд, MMU Sv39 с PMP, предсказание переходов, FPU одинарной и двойной точности, кэши инструкций и данных L1 по 16 КБ и кэш L2 на 256 КБ. Периферийные устройства предоставляются LiteX, а отладка через JTAG/cJTAG реализована на кристалле.

На плате с частотой 50 МГц проект загружает с SD-карты LiteX BIOS, OpenSBI и Linux 7.2 и запускает оболочку BusyBox. Также загружается Debian 13 (riscv64); gcc, make и gdb при этом работают непосредственно на плате. Программы на C для bare-metal можно собирать и отлаживать в Eclipse IDE через JTAG. Ядро предоставляет 29 событий счётчиков производительности, доступных в Linux perf.

В репозитории также описана среда верификации: самодельные тесты, riscv-tests, эталонные модели и внедрение ошибок. Там же на английском и японском языках изложены история разработки и спецификации.

Ключевые возможности

  • 01Ядро RV64GC с режимами M, S и U, MMU Sv39 и PMP на 8 записей.
  • 028-ступенчатый конвейер с последовательным выполнением команд и предсказанием переходов (BTB, gshare, стек адресов возврата).
  • 03FPU одинарной и двойной точности с конвейерным трактом данных.
  • 04Кэши инструкций и данных L1 по 16 КБ и кэш L2 на 256 КБ.
  • 05Загрузка Linux 7.2 и Debian 13 с SD-карты на Arty A7-100T.
  • 06Встроенная отладка через JTAG/cJTAG с аппаратными триггерами, совместимая с OpenOCD и gdb.

Сценарии использования

  • Изучение устройства ядра RISC-V, кэшей и MMU на SystemVerilog.
  • Запуск Linux на самодельном ядре RISC-V на недорогой FPGA-плате.
  • Разработка и отладка bare-metal-программ на C для ядра RISC-V на FPGA через Eclipse.
  • Использование проекта как примера верификации процессора с эталонными моделями и внедрением ошибок.

Что важно знать

  • Программа работает на конкретной FPGA-плате Digilent Arty A7-100T и не может работать на другом оборудовании без портирования.
  • Разработка проекта завершается на Rev.02, дальнейшая разработка не планируется.

Темы

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

Частые вопросы

Что такое mmRISC-2?
64-битное ядро RISC-V на SystemVerilog, запускающее Linux на FPGA-плате Arty A7; RTL, тесты и документация созданы с помощью Claude Code. mmRISC-2 — самодельный 64-битный процессор RISC-V (RV64GC) на SystemVerilog для FPGA-платы Digilent Arty A7-100T. В его состав входят 8-ступенчатый конвейер с последовательным выполнением команд, MMU Sv39 с PMP, предсказание переходов, FPU одинарной и двойной точности, кэши инструкций и данных L1 по 16 КБ и кэш L2 на 256 КБ. Периферийные устройства предоставляются LiteX, а отладка через JTAG/cJTAG реализована на кристалле.
mmRISC-2 можно использовать бесплатно? Какая у него лицензия?
mmRISC-2 распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
mmRISC-2 всё ещё поддерживается?
Активно поддерживается. Последний коммит в mmRISC-2 — 20 окт. 2026 г..
Для чего можно использовать mmRISC-2?
Изучение устройства ядра RISC-V, кэшей и MMU на SystemVerilog. Запуск Linux на самодельном ядре RISC-V на недорогой FPGA-плате. Разработка и отладка bare-metal-программ на C для ядра RISC-V на FPGA через Eclipse. Использование проекта как примера верификации процессора с эталонными моделями и внедрением ошибок.
Где скачать mmRISC-2?
Исходный код и инструкции по установке — на GitHub: https://github.com/munetomo-maruyama/mmRISC-2

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Небольшое 32-битное ядро процессора RISC-V на SystemVerilog производственного качества для встраиваемых систем управления.

2,2 тыс.+20 за неделю831SystemVerilogApache-2.0Обновлён вчера

Встроенный в Scala язык описания аппаратуры для создания параметризуемых генераторов цифровых схем, выпускающих Verilog.

4,8 тыс.+4 за неделю665ScalaApache-2.0Активно поддерживаетсяОбновлён вчера