搭建pulp-platform/ara测试环境
ara是一个比较完整的开源riscv-vector加速器,也是目前为止我所见到的最认真、更新最积极的riscv-vector加速器项目。不过pulp项目组比较高冷,其入门帮助写的比较简略,我在配置这个项目时踩了不少坑,故记录分享一下经验。
我的系统:deepin 20.4(其它Debian发行版可以参考)
- clone项目:git clone https://github.com/pulp-platform/ara.git
- 检查ara各个子项目的依赖需求,依次安装:
- riscv-gnu-toolchain:sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
- riscv-isa-sim:sudo apt-get install device-tree-compiler
- riscv-llvm:sudo apt-get install clang cmake ninja-build
- 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 libfl2 # Ubuntu only (ignore if gives error) && sudo apt-get install libfl-dev # Ubuntu only (ignore if gives error) && sudo apt-get install zlibc zlib1g zlib1g-dev # Ubuntu only (ignore if gives error)
- 额外还需要安装sudo apt-get install libelf-dev,否则编译hardware的时候会报错
- 在ara目录中执行:git submodule update --init --recursive(这一步需要下载大量文件,建议科学上网)
- 在ara目录中执行make toolchain-llvm、make riscv-isa-sim、make verilator
- 该步仅deepin需要,ubuntu系统应该不需要:去https://github.com/pulp-platform/bender/releases下载一个新版本的bender-{xxx}-x86_64-linux-gnu.tar.gz,解压后将可执行文件bender放到/ara/hardware目录中,编辑hardware目录下的Makefile文件,注释掉第95行的“curl --proto ‘=https’ --tlsv1.2 https://fabianschuiki.github.io/bender/init -sSf | sh -s – 0.23.1”,最后一行 rm -f bender也需要注释掉
- (可选)如果发现执行完上述步骤,在编译apps时报gcc相关的错误,可以在ara目录下执行make toolchain-gcc,单独编译一次riscv gcc(在一台电脑上碰到了,另一台倒是没有)
到此万事大吉,可以按照https://github.com/pulp-platform/ara#software的步骤在apps目录下编译软件或者按照https://github.com/pulp-platform/ara#rtl-simulation在hardware目录下编译RTL(注意,没安装ModelSim的话,编译RTL需要用Verilator,即包含simv的指令)
需要用gtkwave看波形的话,记得单独sudo apt-get install ,在hardware里clean一下,从make verilator开始,每一步都要加上trace=1