当前位置: 首页 > 工具软件 > MILL > 使用案例 >

折腾CPU系列:chisel+mill+difftest环境配置

季阳朔
2023-12-01

摘要


在这篇文档中,将介绍chisel项目+difftest环境配置。在完成所有步骤之后,工作目录下会有如下内容:

./
	chisel_env.sh
	NEMU/
	difftest/
	DRAMsim3/

java和mill

chisel基于scala语言,运行环境为JVM。mill作为编译工具,因此需要安装milljava

  • mill
sudo sh -c "curl -L https://github.com/com-lihaoyi/mill/releases/download/0.9.8/0.9.8 > /usr/local/bin/mill && chmod +x /usr/local/bin/mill"

这个过程很快,因为下载的其实是一个安装脚本

然后运行:

mill

之后会进入到一个下载程序,默认会把程序安装到${HOME}/.cache/mill/download,运行之后会在这个文件夹放置可运行文件。

  • java
sudo apt-get install default-jre

检查是否成功:

mill -v

如果显示如下即可成功:

Mill Build Tool version 0.9.8
Java version: 11.0.11, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "Linux", version: 4.4.0-19041-Microsoft, arch: amd64

预备工作

HOME_DIR=$(pwd)
echo "export NOOP_HOME=$HOME_DIR" >> chisel_env.sh
echo "export NEMU_HOME=$HOME_DIR/NEMU" >> chisel_env.sh
echo "export AM_HOME=$HOME_DIR/abstract-machine" >> chisel_env.sh
echo "export DRAMSIM3_HOME=$HOME_DIR/Zhoushan/DRAMsim3" chisel_env.sh

然后根目录下会新建chisel_env.sh,运行以下来声明必要的环境变量:

source chisel.sh

difftest

difftest是chisel开发非常好用的工具,提供的online的测试,极大的提升了debug效率。

  • 首先安装依赖:
sudo apt-get install verilator libsdl2-dev
  • 然后从github下载
git clone --recursive https://github.com/OpenXiangShan/difftest.git

DRAMsim3

DRAMsim3为difftest提供运行时dram环境,作为co-simulation功能的静态库。

  • 首先安装依赖
sudo apt-get install cmake
  • 然后从github下载
git clone --recursive https://github.com/OpenXiangShan/DRAMsim3.git

这里因为我们不是需要源代码,而是编译成为静态库,需要运行:

mkdir build
cd build
cmake -D COSIM=1 ..
cmake ..
make -j 16

随后可以检查build/下是否有libdramsim3.a文件

NEMU

NEMU为difftest提供了运行时的“标答”,主要需要其动态库。

  • 安装依赖bisonflex
sudo apt-get install bison flex libreadline-dev

安装nemu

git clone https://github.com/OpenXiangShan/NEMU.git
cd NEMU
export NEMU_HOME=$pwd
make riscv64-xs-ref_defconfig # load default configuration
make

然后检查build下是否有<your/isa>-so文件。

 类似资料: