Go to file
anzipomelo 861f28d369 Update README.md 2023-12-28 16:14:55 +08:00
README.md Update README.md 2023-12-28 16:14:55 +08:00

README.md

HowtoUseXiangShan

非常感谢大家阅读此篇文章。如果你看到这篇文章,说明你已经对于芯片设计、开源芯片有所了解,并出于对香山的兴趣萌发了试一试的想法、又或者是跑个分看看的好奇。本文详细介绍了新手如何通过安装 Docker 实现使用香山的操作指南(在实际操作中可以降低本地安装香山环境和工具的难度),或者亲手在本地部署来体验(需要强动手能力)。通过一步一步的操作引导,可以直接进行香山及其配套工具的使用去实现程序的运行。

文档会逐步补充更多实践内容!欢迎更多香山爱好者加入共建。

##文档使用说明

  1. 具体操作说明文档在Issue 中发布;
  • 通过Docker 使用香山,新手推荐,制作了资源包排除了新手上手的一切障碍,丝滑体验香山及工具的使用。
  • 本地安装运行香山, 自行安装相对难度大一些,但可以切身感受到本地部署香山开发环境的乐趣
  1. 有任何问题欢迎大家在issue中留下评论如果是优质问题有奖励。
  2. 香山新手村qq群793255484

##如何就算入门使用香山:

###第一步:编译香山,运行仿真程序 香山本身是运用 chisel 写的是高级软件语言需要转换为verlog语言即 RTL语言即实际的硬件设计之后进行仿真模拟来验证通过仿真软件程序来模拟硬件的形式来模拟 CPU 的执行,这样就可以来验证香山的设计和运行一些程序。

###第二步:学会使用香山基本工具:

香山的基本工具包括NEMU、AM、difftest其他工具都建立在这三个基础工具之上。以下用最朴实的话语描述 ● The Abstract Machine 即为 AM在代码库中搜索“nexus-am”编译要在香山上跑的程序例如 coremark、hello 、microbench 等。 ● NJU Emulator 即为 NEMU在代码库中搜索“NEMU”模拟处理器的执行获得标准结果。在仿真的时候这个结果会被提供给 difftest 作为正确结果进行与香山结果的对照,进而确认香山执行结果的正确性。 ● difftest 差分测试在代码库中搜索“DiffTest”仿真验证框架就是直接拿香山结果和标准结果做对比的工具。

###第三步搞清香山基本工具NEMU、AM、difftest之间的相互关系 多多操作,就能理解了。

完成以上操作,即可视为完成入门使用香山。 熟练理解以上操作,可以探索修改香山的配置,给香山加功能。

##特别鸣谢贡献者:

  1. 贾志杰,硕士,中国科学院计算技术研究所,在他的帮助下,完善了所有 Docker 所需内容,为初次使用香山排除了一切障碍,并指导完成本说明文档

  2. 香山官方文档 本文档是在此基础上完善和增加了详细说解说。