Python-фреймворк для создания собственных FPGA-ядер и SoC: шины, периферия, интеграция CPU и поддержка симуляции.
OpenXiangShan/XiangShan
Высокопроизводительное ядро RISC-V с открытым исходным кодом, написанное на Scala с использованием Chisel и разработанное проектом XiangShan.
- Звёзды
- 7,368
- Форки
- 977
- Открытые issues
- 336
- Последний коммит
- вчера
Что это?
XiangShan — открытый проект высокопроизводительного процессора RISC-V. Его архитектура описана на Chisel — языке проектирования аппаратуры, встроенном в Scala. Chisel генерирует Verilog, который можно использовать при разработке микросхем.
В репозитории представлены последовательные поколения микроархитектуры, включая Yanqihu, Nanhu и Kunminghu; каждое поддерживается в отдельной ветке. Текущие поколения — Kunminghu-V2 и V3, причём V3 активно разрабатывается. Проект также включает сопутствующий инструментарий: эмулятор на C++ на базе Verilator, фреймворк совместного моделирования difftest, подсистему кэша и отладчик на Python (xspdb).
Документ по архитектуре и руководство пользователя опубликованы отдельно на сайте документации проекта, а на дашборде производительности отслеживаются результаты регрессионных тестов SPEC и показатели для отдельных коммитов.
Ключевые возможности
- 01Реализует систему команд RISC-V с высокопроизводительной внеочередной микроархитектурой.
- 02Написан на Chisel и генерирует Verilog с помощью команды make verilog.
- 03Включает симулятор на C++ на базе Verilator, который запускает бинарные файлы RISC-V.
- 04Предоставляет совместное моделирование difftest с эталонной моделью NEMU.
- 05Включает отладчик на Python xspdb для пошагового выполнения и анализа работы программы.
Сценарии использования
- Исследование микроархитектуры процессоров с помощью полнофункционального открытого ядра RISC-V.
- Изучение рабочих процессов верификации аппаратуры и совместного моделирования.
- Создание производных проектов микросхем RISC-V на основе опубликованного Verilog.
- Тестирование производительности задач RISC-V в симуляторе Verilator.
Быстрый старт
- 1
Задайте переменные окружения NEMU_HOME, NOOP_HOME и AM_HOME и установите mill
- 2
Клонируйте проект и инициализируйте подмодули
make init - 3
Установите Verilator, затем соберите симулятор на C++
make emu CONFIG=MinimalConfig EMU_THREADS=2 -j10 - 4
Запустите программу в симуляторе
./build/emu -b 0 -e 0 -i ./ready-to-run/coremark-2-iteration.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so
Что важно знать
- Для сборки нужны несколько внешних проектов (NEMU, nexus-am, mill, Verilator), поэтому настройка довольно трудоёмкая.
- Ветка kunminghu-v3 всё ещё развивается и может быть нестабильной; для исследований рекомендуется kunminghu-v2.
Темы
Частые вопросы
- Что такое XiangShan?
- Высокопроизводительное ядро RISC-V с открытым исходным кодом, написанное на Scala с использованием Chisel и разработанное проектом XiangShan. XiangShan — открытый проект высокопроизводительного процессора RISC-V. Его архитектура описана на Chisel — языке проектирования аппаратуры, встроенном в Scala. Chisel генерирует Verilog, который можно использовать при разработке микросхем.
- XiangShan можно использовать бесплатно? Какая у него лицензия?
- XiangShan распространяется с открытым исходным кодом под лицензией MulanPSL-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- XiangShan всё ещё поддерживается?
- Активно поддерживается. Последний коммит в XiangShan — 6 нояб. 2026 г..
- Для чего можно использовать XiangShan?
- Исследование микроархитектуры процессоров с помощью полнофункционального открытого ядра RISC-V. Изучение рабочих процессов верификации аппаратуры и совместного моделирования. Создание производных проектов микросхем RISC-V на основе опубликованного Verilog. Тестирование производительности задач RISC-V в симуляторе Verilator.
- Как установить XiangShan?
- Задайте переменные окружения NEMU_HOME, NOOP_HOME и AM_HOME и установите mill Клонируйте проект и инициализируйте подмодули: make init Установите Verilator, затем соберите симулятор на C++: make emu CONFIG=MinimalConfig EMU_THREADS=2 -j10 Запустите программу в симуляторе: ./build/emu -b 0 -e 0 -i ./ready-to-run/coremark-2-iteration.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so
- Где скачать XiangShan?
- Исходный код и инструкции по установке — на GitHub: https://github.com/OpenXiangShan/XiangShan
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Встроенный в Scala язык описания аппаратуры для создания параметризуемых генераторов цифровых схем, выпускающих Verilog.
Открытые файлы для 3D-печати и списки комплектующих для недорогих роботизированных манипуляторов SO-100/SO-101, совместимых с библиотекой LeRobot.
Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.