プロセッサのコード実行を学べる、RISC-Vコンピューターアーキテクチャのビジュアルシミュレーター兼アセンブリエディター。
cvut/qtrvsim
コンピュータアーキテクチャ教育向けのQtベースRISC-V CPUシミュレータ。WebAssembly版はブラウザで実行できます。
- スター
- 651
- フォーク
- 97
- 未解決の Issue
- 25
- 最終コミット
- 9 日前
これは何?
QtRvSimは、コンピュータアーキテクチャの授業向けに開発されたグラフィカルなRISC-V CPUシミュレータです。静的リンクされた32ビットまたは64ビットのリトルエンディアンELF実行ファイルを読み込んで実行し、ELFヘッダーからXLENを選択します。基本的な統合アセンブラを備え、外部のmakeユーティリティを呼び出して編集中のプログラムをビルドすることもできます。
シミュレータは、UARTシリアルポート、LEDとノブのパネル、RGB565 LCDフレームバッファ、ACLINTタイマーおよびソフトウェア割り込みデバイスといった、メモリマップド周辺機器をモデル化します。また、CSRの一部と割り込み処理に加え、簡単なプログラムを実行するためのread、write、openat、exitなどのLinuxシステムコールを少数実装しています。
このプロジェクトは、チェコ工科大学のComputer Architectures Educationグループが開発しています。WebAssembly版は実験的な位置づけですが、インストール不要でオンラインから試せます。複数のLinuxディストリビューション向けにバイナリパッケージが提供されており、Qt 5またはQt 6とCMakeを使ってビルドできます。
主な機能
- 01静的リンクされたRISC-V ELF実行ファイルを、32ビットおよび64ビットモードで実行します。
- 02GNU assemblerディレクティブの一部を受け付ける、基本的な統合アセンブラを備えています。
- 03UART、LED/ノブパネル、LCDフレームバッファ、ACLINTタイマー周辺機器をエミュレートします。
- 04マシンモード向けに、一般的なCSRと割り込み処理を実装しています。
- 05簡単なプログラムを実行するためのLinuxシステムコールを提供します。
- 06WebAssembly版を使ってブラウザ上で実行できます。
ユースケース
- 視覚的なCPUモデルを使った、学部または大学院のコンピュータアーキテクチャの授業。
- シリアルI/O、割り込み、タイマーがRISC-Vプログラムとどのように連携するかのデモ。
- GCCまたはClangでコンパイルした小規模なRISC-Vアセンブリ/Cプログラムを、ハードウェアで実行する前にテストする。
クイックスタート
- 1
サブモジュールも含めてリポジトリをクローンします
git clone --recurse-submodules https://github.com/cvut/qtrvsim.git - 2
Linuxでプロジェクトのルートディレクトリからmakeを実行し、ラッパーMakefileを使ってビルドします
make - 3
または、インストールせずにブラウザーで実験版のWebAssemblyバージョンをお試しください
使う前に知っておきたいこと
- GPL-3.0ライセンスの下で公開されています。このコピーレフトライセンスでは、派生物も同じ条件でオープンソース化する必要があります。
- 圧縮RISC-V命令にはまだ対応していません。
- WebAssemblyバージョンは実験段階です。
トピック
よくある質問
- qtrvsim とは?
- コンピュータアーキテクチャ教育向けのQtベースRISC-V CPUシミュレータ。WebAssembly版はブラウザで実行できます。 QtRvSimは、コンピュータアーキテクチャの授業向けに開発されたグラフィカルなRISC-V CPUシミュレータです。静的リンクされた32ビットまたは64ビットのリトルエンディアンELF実行ファイルを読み込んで実行し、ELFヘッダーからXLENを選択します。基本的な統合アセンブラを備え、外部のmakeユーティリティを呼び出して編集中のプログラムをビルドすることもできます。
- qtrvsim は無料で使えますか?ライセンスは?
- qtrvsim は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- qtrvsim は今もメンテナンスされていますか?
- 活発にメンテナンス中。qtrvsim の最終コミットは 2026年10月29日 です。
- qtrvsim は何に使えますか?
- 視覚的なCPUモデルを使った、学部または大学院のコンピュータアーキテクチャの授業。 シリアルI/O、割り込み、タイマーがRISC-Vプログラムとどのように連携するかのデモ。 GCCまたはClangでコンパイルした小規模なRISC-Vアセンブリ/Cプログラムを、ハードウェアで実行する前にテストする。
- qtrvsim のインストール方法は?
- サブモジュールも含めてリポジトリをクローンします: git clone --recurse-submodules https://github.com/cvut/qtrvsim.git Linuxでプロジェクトのルートディレクトリからmakeを実行し、ラッパーMakefileを使ってビルドします: make または、インストールせずにブラウザーで実験版のWebAssemblyバージョンをお試しください
- qtrvsim はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/cvut/qtrvsim
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
QEMUをベースにした軽量なCPUエミュレータフレームワーク。アーキテクチャに依存しないAPIで、複数のアーキテクチャのマシンコードを実行できます。
実機のOSを起動できる、実行時にマシンコードをWebAssemblyへ変換してブラウザー上で動作するx86 PCエミュレーター。
File Explorerやターミナル、アプリ、ゲームを備え、Webブラウザーだけで動作するWindows風デスクトップ環境。
Jupyter Notebookの課題の作成、配布、自動採点、手動採点を行うシステム。