中文|English
本项目旨在通过开源众包的方式对香山处理器的昆明湖架构进行单元(Unit Test, UT)验证。该项目选择Python作为主要的验证语言,参与验证你将学习到以下内容:
- 电路的运行特性:从软件的角度观察电路的运行特性,深入了解电路设计的原理。
- 高性能处理器设计:学习Chisel硬件描述语言,研读相关代码和论文,掌握最新的架构设计理念。
- 芯片验证的基本流程:熟悉规范文档(Spec文档),学习如何进行UT验证,并评估验证结果的合理性。
- Python芯片验证:掌握异步编程、回调等高级编程模式,利用Python进行芯片验证。
- Linux开发环境:学习基础的Linux操作命令,搭建验证环境。
本项目欢迎多方面的贡献,并将在一定期限内以特定方式给予奖励(如奖金、证书、实习机会等)。具体贡献类型包括:
- 贡献一:开发测试用例,包括针对各个功能点的测试代码与注释,以及相关的说明文档。
- 贡献二:发现并报告香山处理器中的bug(提供原因分析和修复建议可获得额外奖励)。
- 贡献三:编写验证文档,包括设计对象(Design Under Test,DUT)的规范文档、说明文档、功能描述文档等。
- 贡献四:其他方面的贡献,例如为本项目提供的工具增加新功能等。
万众一芯项目网址:https://open-verify.cc
期待你的参与!
参照准备验证环境文档,配置基本环境,然后运行以下命令:
git clone git@github.com:XS-MLVP/UnityChipForXiangShan.git
cd UnityChipForXiangShan
pip3 install -r requirements.txt
make all
上述命令会自动进行以下操作:
- 下载RTL代码;
- 编译所有可用待验模块;
- 搜索
ut_*
目录中所有test_
开头的python文件,并运行其中test_
开头的测试用例 - 生成测试报告(测试报告位于out目录)
- 更新统计数据
*默认配置下,会skip过于耗时的测试,可通过设置环境变量CFG=configs/noskip.yaml
运行所有用例:
make CFG=configs/noskip.yaml
按照文档部署说明配置hugo
环境,然后执行:
cd UnityChipForXiangShan
make doc
执行完上述命令后,出现类似输出:
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at //localhost:1313/ (bind address 0.0.0.0)
Press Ctrl+C to stop
此时,通过浏览器访问提示给出的地址(http://127.0.0.1:1313)即可。
可通过docker快速运行测试:
sudo docker pull ghcr.io/xs-mlvp/uc4xs:latest # 下载镜像
sudo docker run -p 1313:1313 -it --rm ghcr.io/xs-mlvp/uc4xs:latest /home/run_ci.sh # 运行测试
容器中的 run_ci.sh
脚本会依次执行以下操作:
- 更新 picker 到最新版本
- 下载本仓库并安装python依赖
- 执行
make CFG=configs/ci.yaml args="-n auto"
运行测试 - 执行
make doc
可视化文档(测试报告)
在提交Issue、Pull Request、Discussion 时,如果指定对应模块的 Maintainer 能更及时的得到回应。目前已有的维护人员请参考本连接。
如果您对本项目感兴趣,欢迎成为本项目中的维护者。
- 行为准则: CODE_OF_CONDUCT.md
- 如何贡献: CONTRIBUTING.md
- 安全问题: SECURITY.md
更多文档与验证进度请查看:https://open-verify.cc/UnityChipForXiangShan