HowtoUseXiangShan
非常感谢大家阅读此篇文章。如果你看到这篇文章,说明你已经对于芯片设计、开源芯片有所了解,并出于对香山的兴趣萌发了试一试的想法、又或者是跑个分看看的好奇。本文详细介绍了新手如何通过安装 Docker 实现使用香山的操作指南(在实际操作中可以降低本地安装香山环境和工具的难度),或者亲手在本地部署来体验(需要强动手能力)。通过一步一步的操作引导,可以直接进行香山及其配套工具的使用去实现程序的运行。
文档会逐步补充更多实践内容!欢迎更多香山爱好者加入共建。
文档使用说明具体操作说明文档在Issue 中发布;有任何问题欢迎大家在issue中留下评论,如果是优质问题有奖励。香山新手村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)之间的相互关系
多多操作,就能理解了。
完成以上操作,即可视为完成入门使用香山。熟练理解以上操作,可以探索修改香山的配置,给香山加功能。
特别鸣谢贡献者:
贾志杰,硕士,中国科学院计算技术研究所,在他的帮助下,完善了所有 Docker 所需内容,为初次使用香山排除了一切障碍,并指导完成本说明文档
香山官方文档: 本文档是在此基础上完善和增加了详细说解说。