一些相关软件和库的版本号:
名称 | 版本 |
Ubuntu | 20.04 |
chipyard | 1.8.0 |
conda | 23.3.1 |
conda-lock | 2.5.1 |
1、安装Conda
在Chipyard中,推荐使用Conda管理项目依赖。使用Miniforge安装程序安装Conda。但是github上的我很难下载下来(网络原因吧),因此使用清华源(别的也可以)进行下载。网址如下:
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-`uname -m`.sh
chmod +x ./Miniforge3-Linux-`uname -m`.sh
bash Miniforge3-Linux-x86_64.sh
(2)激活软件,在命令行中输入以下命令:
source ~/.bashrc
conda install -n base conda-lock
conda activate base
2、初始化子模块&安装工具链
(1)拉取chipyard仓库,并切换到1.8.0版本(我用别的版本发现会有python库pydantic相关的报错,故最后选择了1.8.0)
git clone https://github.com/ucb-bar/chipyard.git
cd chipyard
git checkout 1.8.0
(2)运行初始化脚本
./build-setup.sh riscv-tools
如果有报错,可以再度运行上述命令直到所有模块都git下来
上述脚本成功执行后会在当前目录下生成env.sh
,以后每次新开启终端需要执行该脚本以设置环境变量:
source ./env.sh
3、测试
由于Chipyard自带Verilator,可以直接使用Verilator进行仿真测试
cd sims/verilator
Chipyard的仿真分成两个步骤,第一步是使用Chisel代码生成Verilog代码,然后用Verilator编译生成可执行文件; 第二步是执行可执行文件,这一步处理器就会仿真执行用户指定的软件代码。
# 先选择RocketConfig进行编译
make CONFIG=RocketConfig
# 然后运行dhrystone程序
./simulator-chipyard-RocketConfig $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv
执行结果如下图所示:
4、参考资料
Chipyard Tutorials | Chipyard (gitbook.io)
chipyard——自定义配置生成和前仿 - Haowen_Zhao - 博客园 (cnblogs.com)
通过 JTAG 对 VCU128 上的 Rocket Chip 进行调试 - 杰哥的{运维,编程,调板子}小笔记 (jia.je)