chipyard1.8.0安装教程
0.安装环境
Ubuntu:22.04
chipyard:1.8.0
conda:23.3.1 (must be version 4.12.0 or higher)
verilator:4.226
1.安装conda
在chipyard1.8.0中,使用Conda管理项目依赖。参阅 Conda 安装说明,了解如何使用 Miniforge 安装程序安装 Conda。具体操作:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
关闭终端,重新打开后,会生效。终端前出现 (base)。运行conda --version 查看版本。要求conda版本大于等于4.12.0。
接着,安装conda-lock(Conda lock is a lightweight library that can be used to generate fully reproducible lock files for conda environments.)
conda install -n base conda-lock
conda activate base
2.初始化子模块&安装工具链
① 拉取chipyard仓库,并切换到1.8.0版本
git clone https://github.com/ucb-bar/chipyard.git
cd chipyard
git checkout 1.8.0
② 运行初始化脚本
该脚本将会创建chipyard Conda环境,包括riscv工具链
运行该脚本时,还会运行init-submodules-no-riscv-tools.sh 和 build-toolchain-extra.sh 两个脚本
./build-setup.sh riscv-tools
运行完成后,通过命令conda env list,将会有一个chipyard相关的环境:$CHIPYARD_DIRECTORY/.conda-env
③ 设置环境变量
通过运行以下命令,进而:
- 激活在 build-setup.sh 中创建的 conda 环境
- 设置将来 Chipyard 步骤所需的必要环境变量(PATH、RISCV 、LD_LIBRARY_PATH)
source ./env.sh
注:每次运行make命令时,都需要先进行这一步
3.修补部分缺失模块
因为网络问题,会有子模块拉取失败的情况。这样会导致在编译时出现很多错误。在上一步,运行build-setup.sh脚本时,会在chipyard目录下,生成init-submodules-no-riscv-tools.log文件。记录了该脚本运行的情况,可以通过查看日志,看到哪些子模块拉取失败了。
同时,可以在chipyard/.gitmodules中查看,chipyard具体有哪些子模块。
接下来,面对缺失的子模块,如tools/torture,你可以通过以下命令来获取。
git submodule update --init --recursive tools/torture
请确保generators和tools目录下的所有子模块都拉取下来了。有时候,它只有文件夹,里面的内容不全,最好一个个文件夹点进去确认一下。
4.生成soc
① 安装verilator
chipyard可以使用Verilator构建和执行仿真。
安装必要的安装包
sudo apt-get install git perl python3 make autoconf g++ flex bison ccache
sudo apt-get install libgoogle-perftools-dev numactl perl-doc
sudo apt-get install libfl-dev
sudo apt-get install zlibc zlib1g zlib1g-dev
github上拷贝源代码:
git clone https://github.com/verilator/verilator
编译前的准备工作:
unset VERILATOR_ROOT # For bash
cd verilator
git pull # Make sure git repository is up-to-date
git checkout v4.226 #切换到4.226版本
配置编译安装:
autoconf # Create ./configure script
./configure # Configure and create Makefile
make -j `nproc` # Build Verilator itself (if error, try just 'make')
sudo make install
如果成功的话输入:
verilator --version
② 安装gtkwave
gtkwave是一个开源的波形查看文件,方便我们查看运行程序后生成的波形。
sudo apt-get install gtkwave
③ 生成boom
通过CONFIG指定编译的项目。第一次编译时会自动安装chisel所需要的依赖。
# Enter Verilator directory
cd sims/verilator
make CONFIG=SmallBoomConfig #这一步必须要做,因为第一次运行时会自动下载chisel运行所必需的包
④ 测试
上述命令将会生成一个可执行文件。可以使用此可执行文件运行任何兼容的 RV64 代码。例如,运行其中一个 riscv 工具链中集成的测试文件。
./simulator-chipyard-RocketConfig $RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv64ui-p-simple #输出success说明没有问题
如果这一步运行顺利,说明chipyard已经安装成功,可以进行软件仿真了。