OpenXiangShan/XiangShan
XiangShanプロジェクトが開発する、ScalaとChiselで記述されたオープンソースの高性能RISC-Vプロセッサコア。
- スター
- 7,368
- フォーク
- 977
- 未解決の Issue
- 336
- 最終コミット
- 昨日
これは何?
XiangShanは、オープンソースの高性能RISC-Vプロセッサプロジェクトです。設計はScalaに組み込まれたハードウェア構築言語Chiselで記述されており、チップ開発に利用できるVerilogを生成します。
このリポジトリには、Yanqihu、Nanhu、Kunminghuなど、世代ごとのマイクロアーキテクチャが収録されており、それぞれ独立したブランチで管理されています。現在の開発ラインはKunminghu-V2とV3で、V3は活発に開発が進められています。また、VerilatorベースのC++エミュレータ、difftestコシミュレーションフレームワーク、キャッシュサブシステム、Pythonベースのデバッガ(xspdb)など、周辺ツールチェーンも提供しています。
設計ドキュメントとユーザーガイドはプロジェクトのドキュメントサイトで公開されており、パフォーマンスダッシュボードではコミット単位の結果やSPECのリグレッションを確認できます。
主な機能
- 01高性能なアウト・オブ・オーダー・マイクロアーキテクチャでRISC-V命令セットを実装します。
- 02Chiselで記述されており、make verilogでVerilogを生成します。
- 03RISC-Vバイナリを実行できる、VerilatorベースのC++シミュレータを同梱しています。
- 04NEMUリファレンスモデルとのdifftestコシミュレーションを提供します。
- 05実行のステップ実行や状態確認に使えるPythonベースのデバッガxspdbを提供します。
ユースケース
- フル機能のオープンRISC-Vコアを使った、プロセッサマイクロアーキテクチャの研究。
- ハードウェア検証やコシミュレーションのワークフローの学習。
- 公開されているVerilogを基にした、下流のRISC-Vチップ設計。
- VerilatorシミュレータでのRISC-Vワークロードのベンチマーク。
クイックスタート
- 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 とは?
- XiangShanプロジェクトが開発する、ScalaとChiselで記述されたオープンソースの高性能RISC-Vプロセッサコア。 XiangShanは、オープンソースの高性能RISC-Vプロセッサプロジェクトです。設計はScalaに組み込まれたハードウェア構築言語Chiselで記述されており、チップ開発に利用できるVerilogを生成します。
- XiangShan は無料で使えますか?ライセンスは?
- XiangShan は MulanPSL-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- XiangShan は今もメンテナンスされていますか?
- 活発にメンテナンス中。XiangShan の最終コミットは 2026年11月5日 です。
- XiangShan は何に使えますか?
- フル機能のオープンRISC-Vコアを使った、プロセッサマイクロアーキテクチャの研究。 ハードウェア検証やコシミュレーションのワークフローの学習。 公開されているVerilogを基にした、下流のRISC-Vチップ設計。 VerilatorシミュレータでのRISC-Vワークロードのベンチマーク。
- 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 をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
LeRobotライブラリに対応する、低価格なSO-100/SO-101ロボットアームのオープンソース3Dプリント設計データと部品リスト。
ESP32を搭載し、OLEDの顔とサーボ駆動の歩行機能を備えた、オープンソースの3Dプリント対応ミニ四足歩行ロボット。