面向 RISC-V 的可视化计算机体系结构模拟器与汇编代码编辑器,用于学习处理器如何执行程序。
cvut/qtrvsim
基于 Qt 的 RISC-V CPU 模拟器,用于计算机体系结构教学,提供可在浏览器中运行的 WebAssembly 版本。
- Star
- 651
- Fork
- 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 系统调用,便于运行简单程序。
该项目由捷克技术大学计算机体系结构教育小组开发。WebAssembly 版本无需安装即可在浏览器中试用,但目前仍属实验性质。项目使用 CMake 构建,支持 Qt 5 和 Qt 6,部分 Linux 发行版也提供了二进制安装包。
核心功能
- 01运行静态链接的 32 位和 64 位 RISC-V ELF 可执行文件。
- 02内置基础集成汇编器,支持部分 GNU 汇编指令。
- 03模拟 UART 串口、LED 与旋钮面板、LCD 帧缓冲和 ACLINT 定时器。
- 04实现机器模式下常用的 CSR 寄存器和中断处理。
- 05提供一组 Linux 系统调用,用于运行简单程序。
- 06可通过 WebAssembly 版本在浏览器中直接使用。
适用场景
- 在计算机体系结构课程中,用可视化的 CPU 模型讲解指令执行过程。
- 演示 RISC-V 程序如何通过串口、中断和定时器与外设交互。
- 在上板前,用模拟器测试由 GCC 或 Clang 编译的小型汇编或 C 程序。
快速上手
- 1
克隆仓库及其子模块
git clone --recurse-submodules https://github.com/cvut/qtrvsim.git - 2
在 Linux 上于项目根目录运行 make,使用封装的 Makefile 构建
make - 3
或者无需安装,在浏览器中试用实验性的 WebAssembly 版本
使用前须知
- 采用 GPL-3.0 许可证,这是一种 copyleft 许可证,衍生作品须以相同条款开源。
- 尚不支持压缩指令(compressed instructions)。
- 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 模型讲解指令执行过程。 演示 RISC-V 程序如何通过串口、中断和定时器与外设交互。 在上板前,用模拟器测试由 GCC 或 Clang 编译的小型汇编或 C 程序。
- qtrvsim 怎么安装和运行?
- 克隆仓库及其子模块: git clone --recurse-submodules https://github.com/cvut/qtrvsim.git 在 Linux 上于项目根目录运行 make,使用封装的 Makefile 构建: make 或者无需安装,在浏览器中试用实验性的 WebAssembly 版本
- 在哪里获取 qtrvsim?
- 源代码和安装说明在 GitHub 上:https://github.com/cvut/qtrvsim
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 QEMU 的轻量级多架构 CPU 模拟框架,通过统一的 API 运行机器码。
一个在浏览器中运行的 x86 PC 模拟器,运行时将机器码转为 WebAssembly 以启动真实操作系统。
一个完全运行在浏览器中的 Windows 风格桌面环境,内置文件管理器、窗口系统、终端及应用和游戏。
用于创建、分发、自动评分和人工批改 Jupyter Notebook 作业的系统。