一、项目背景
香山高性能 RISC-V 开源项目,自 2019 年启动以来,已迭代多个架构版本,性能逐步提升至国际主流水平。该项目采用开源协作模式,吸引了全球开发者参与,并成功运行 Linux 系统,验证了其工业可用性。
2025 年,香山进入“交付年”,其最新架构在性能、功耗和面积(PPA)优化上取得显著进展,成为国产芯片自主创新的重要突破。目前,香山已获产业界应用,并融入国际主流工具链生态,推动中国在全球 RISC-V 领域的影响力。
作为开源芯片标杆,香山不仅助力国产芯片自主可控,也为全球 RISC-V 生态发展贡献了中国方案。
二、总体开发框架介绍
香山开源仓库提供处理器仿真原型平台以及功能验证框架,并进行性能分析。
用户可以基于该平台定制化处理器IP交互功能
开源代码链接:https://github.com/OpenXiangShan/XiangShan
文档链接:https://docs.xiangshan.cc/zh-cn/latest/
(1)核心使用工具
▲
Chisel(基于 Scala)
● 香山的全部硬件代码(流水线、缓存等)均使用 Chisel3 编写,通过 Scala 的面向对象和函数式特性实现模块化设计。
● 优势:减少传统 Verilog 的冗余代码,支持参数化设计和高级抽象(如面向对象继承、生成器模式)。
▲
Verilator
● 用于将生成的 Verilog 代码转换为高性能 C++ 仿真模型,支持快速功能验证和性能分析。
● 香山提供定制化的仿真器 ./build/emu,支持多线程和缓存行为模拟。
▲
Git & GitHub
● 代码托管和版本管理,支持社区协作(Pull Request、Issue 跟踪)。
(2)举例一个迭代工作流
这一节介绍一些香山代码库的脚手架,并将这些脚手架的使用关系串联起来
▲
Difftest(差分测试框架)
● 通过对比香山仿真结果与 QEMU/Spike 等标准模拟器的输出,验证指令执行的正确性。
● 关键目录:difftest/src(测试用例和比对逻辑)。
▲
NEMU(指令集模拟器)
● 作为差分测试的参考模型,确保硬件行为符合 RISC-V 规范。
▲
GDB(软件断点调试工具)
● 支持连接 OPENOCD <> gdb 进行仿真以及回片的软件调试。
▲
LightSSS(轻量级 Bug 定位工具)
● LightSSS 是香山团队开发的调试工具,用于快速定位 RTL 仿真中的逻辑错误,支持波形对比和信号追踪。
▲
Waveform 工具(GTKWave/DVE)
● 用于调试仿真生成的波形文件(如 vcd 或 fsdb)。
▲
OpenLC(CHI 版本香山自测试框架)
● OpenLC 是香山处理器(CHI 架构版本)的自动化自测试框架,专为验证香山 RISC-V 核的缓存一致性协议(CHI) 和多核协同逻辑而设计。
▲
DRAMSim3(内存系统仿真)
● 用于模拟现代 DRAM 设备(如 DDR4、LPDDR5)的时序行为,支持与 GEM5 集成,提供精确的内存访问延迟和功耗分析。
▲
GEM5(性能架构分析)
● 支持多种 CPU 模型(Atomic、Timing、O3)和内存系统(Ruby、Classic),适用于性能分析和架构探索。
……
上文的工具脚手架通过功能和使用场景串联后,构建如下图功能/性能迭代示意图。
三、开启第一次仿真
(1)列出香山开源代码库教程索引:
▲
香山新手村入门教程(附带启动 docker)
YAMLhttps://www.gitlink.org.cn/OSchip/HowtoUseXiangShan/about
▲
官方教程索引
YAMLhttps://docs.xiangshan.cc/zh-cn/latest/
其中教程 1 中提供了一键的 docker 的使用方案,可以快速进行香山代码测试。
下文结合香山新手村 docker 使用方法做介绍:
(2)推荐电脑配置
? 操作系统:Windows 11
? CPU:不做强制性要求,但是性能越高越好
? 内存:推荐 32G+(过低会导致 java 编译爆栈)
? 整合包推荐放在固态硬盘中
(3)第一次打印
使用如下命令可以在 docker 内进行第一次仿真
Shell# 进入香山目录cd /root/XiangShan/# 设置环境变量export NOOP_HOME=$(pwd)export NEMU_HOME=$(pwd)# 仿真运行coremark./ready-to-run/emu_master -i ready-to-run/coremark-2-iteration.bin --diff ready-to-run/riscv64-nemu-interpreter-so 2> perf.log
步骤解析
1. docker 内 ready-to-run 文件夹包含编译好的可执行程序。
2. emu_master 为使用 verilator 工具将仿真平台编译成的可执行 C 程序。
3. coremark-2-iteration.bin 是基准测试程序。
4. --diff 开启仿真平台对比检查功能,并接收 NEMU 参考模型的程序路径。
5. 2> perf.log 性能计数器等信息会通过调试日志打印。
串口打印
四、总结
本文深度剖析香山开源 RISC-V 处理器的技术架构与开发工具链:
▲
1. 核心开发框架
● 基于 Chisel 硬件构造语言实现模块化设计,显著提升开发效率
● 完整验证体系:集成差分测试(Difftest)、轻量级调试(LightSSS)和波形分析工具
● 性能优化方案:支持 DRAMSim3 内存仿真与 GEM5 架构探索
▲
2. 关键技术组件
● 采用 Verilator 将 Verilog 转换为高性能 C++ 仿真模型
● 提供 NEMU 指令集模拟器作为黄金参考模型
● 支持 OpenOCD+GDB 硬件调试方案
▲
3. 开发者工具链
● Docker 化开发环境,一键运行 CoreMark 基准测试
● 完整文档覆盖从 RTL 仿真到硅后调试全流程
▲
4. 技术资源
● 开源仓库:GitHub/OpenXiangShan
● 详细文档:docs.xiangshan.cc
香山项目通过创新的技术架构和完整的工具链,为 RISC-V 开发者提供了高性能处理器开发平台。
点击下方图标,关注开芯院平台
▼
