littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于C++的RISCV指令集模拟器

项目简介

本项目是基于C++语言开发的RISC-V指令集模拟器,严格遵循RISC-V标准。它主要对32位、仅支持整数指令和机器模式的核心处理器进行模拟,同时模拟主内存、内存映射设备(如uart ns16550a)、系统定时器和同步原语等。该模拟器可运行RISC-V整数测试套件,生成的二进制文件能在Linux和Mac OS-X系统直接运行。

项目的主要特性和功能

  1. 全面模拟:能模拟RISC-V核心、内存、设备以及内存监视器。
  2. 文件处理:拥有ELF文件读取和反汇编功能。
  3. 调试支持:支持使用GDB进行调试。
  4. 代码复用:复用了windvane的部分组件,像物理内存、逻辑内存API、独占监视器、ELF读取器、GDB接口和ns16550a UART等。
  5. 依赖管理:依赖elftoolchain和boost program options等开源库。

安装使用步骤

环境准备

确保系统为Ubuntu 18,并安装GCC 8.3和RISC-V工具链(包含汇编器、链接器、C编译器、用户库、ELF读取器等)。

安装依赖

bash sudo apt-get install bison build-essential flex libarchive-dev m4 bmake zlib1g-dev cd tools;./get_boost.sh cd tools;./get_elftoolchain.sh

编译项目

bash mkdir build cd build cmake .. cmake --build . make install

运行测试

把RISC-V整数测试套件以ELF格式的文件加载到模拟器中运行,观察执行结果。可借助GDB等调试工具进行调试,例如设置断点、查看寄存器值等。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】