XiangShan 项目使用教程
1. 项目目录结构及介绍
XiangShan 项目是一个开源的高性能 RISC-V 处理器项目,其目录结构如下:
.
├── src
│ └── main/scala # 设计文件
│ ├── device # 模拟用的虚拟设备
│ ├── system # SoC 封装
│ ├── top # 顶层模块
│ ├── utils # 工具代码
│ └── xiangshan # 主设计代码
│ └── transforms # 一些有用的 firrtl 转换
├── scripts # 敏捷开发用的脚本
├── fudian # XiangShan 的浮点单元子模块
├── huancun # XiangShan 的 L2/L3 缓存子模块
├── difftest # difftest 联合仿真框架
└── ready-to-run # 预构建的模拟镜像
2. 项目的启动文件介绍
启动 XiangShan 项目通常需要以下几个步骤:
- 设置环境变量:包括
NEMU_HOME
、NOOP_HOME
和AM_HOME
等相关路径。 - 初始化子模块:通过运行
make init
命令来初始化项目中的所有子模块。 - 构建模拟器:使用
make emu
命令来构建 C++ 模拟器,该命令会生成一个可执行文件./build/emu
。
启动文件的示例命令如下:
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
3. 项目的配置文件介绍
XiangShan 项目的配置文件主要用于设置项目的编译选项和运行参数。以下是一些主要的配置文件:
Makefile
:包含项目的构建规则和依赖。build.sbt
:Scala 构建工具的配置文件,用于构建 Scala 代码。verilator.mk
:包含使用 Verilator 生成 Verilog 代码的相关规则。
在 Makefile
中,可以通过修改 CONFIG
和 EMU_THREADS
等变量来调整项目的配置。例如:
make emu CONFIG=YourConfig EMU_THREADS=YourThreadCount
在实际使用中,开发者需要根据自己的需求和环境来调整这些配置文件,以实现最佳的项目启动和运行效果。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考