首页 > 最新动态 > [香山开源代码介绍系列]香山开源仓库使用总览
最新动态
[香山开源代码介绍系列]香山开源仓库使用总览
2025-10-2426

图片


一、项目背景



香山高性能 RISC-V 开源项目,自 2019 年启动以来,已迭代多个架构版本,性能逐步提升至国际主流水平。该项目采用开源协作模式,吸引了全球开发者参与,并成功运行 Linux 系统,验证了其工业可用性。

2025 年,香山进入“交付年”,其最新架构在性能、功耗和面积(PPA)优化上取得显著进展,成为国产芯片自主创新的重要突破。目前,香山已获产业界应用,并融入国际主流工具链生态,推动中国在全球 RISC-V 领域的影响力。

作为开源芯片标杆,香山不仅助力国产芯片自主可控,也为全球 RISC-V 生态发展贡献了中国方案。



二、总体开发框架介绍



香山开源仓库提供处理器仿真原型平台以及功能验证框架,并进行性能分析。

用户可以基于该平台定制化处理器IP交互功能

开源代码链接:https://github.com/OpenXiangShan/XiangShan

文档链接:https://docs.xiangshan.cc/zh-cn/latest/

image.png




(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),适用于性能分析和架构探索。


……

上文的工具脚手架通过功能和使用场景串联后,构建如下图功能/性能迭代示意图。

image.png



三、开启第一次仿真




(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 性能计数器等信息会通过调试日志打印。


串口打印

image.png



四、总结



本文深度剖析香山开源 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 开发者提供了高性能处理器开发平台。



点击下方图标,关注开芯院平台

·






点我访问原文链接