看我公众号的粉丝应该都知道,最近我们组织了一群粉丝攻克pulp这个项目。经过我们一段时间努力,我们已经将pulp的simulation跑起来了。今天和大家分享一下如何将pulp这个项目跑起来。
PULP全称Parallel Ultra Low Power (PULP),是苏黎世理工大学发起的一个开源项目,旨在研究低功耗、小面积的芯片处理架构。该计划自2013年开始到现在已经8年了。这个项目的研究已经从单核拓展到了簇的研究。下面是该项目的一些产出成果。
PULP项目已经被用于很多芯片设计,其中有40多款芯片已经流片成功,下面是部分流片芯片的介绍。
内置pulp的开发板在Greenwave等官网平台有售,有兴趣的粉丝可以去官网搜罗。
PULP的资源库是相当丰富的,我和我的粉丝们选择了OpenPulp这个多核的项目作为我们的研究对象。以下是我们将仿真跑起来的一些步骤,小伙伴们如果也想学习可以参考下。
第一步是我们的环境搭建,我们开始选择采用虚拟机作为开发环境,但是遇到一些问题,第一个是我们需要翻墙抓代码,第二个虚拟机里面的相关软件不全,会遇到一些奇怪的问题,第三个我们小伙伴人手一个虚拟机,那么会做很多重复的工作。在此情况下我们采用了云服务器,安装的操作系统是ubuntu18.04。对于这一部分的介绍可以参考我之前的文章。
[看完这个中学生也可以设计芯片-如何用云服务器搭建一个芯片SOC环境(上)]
第二步是EDA软件的安装,这部分网上有很多文章介绍,这里不做多说。
下面我将介绍安装pulp,在安装pulp的时候,我们用git clone 抓代码遇到以下无法访问的权限问题。
对于这个问题,可以参照下面链接解决。
https://docs.github.com/en/authentication/connecting-to-github-with-ssh
第三步是安装riscv编译需要的工具链
下载工具链代码
git clone --recursive https://github.com/pulp-platform/pulp-riscv-gnu-toolchain
安依赖库
apt-get install autoconf automake autotools-dev curl libmpc-devlibmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtoolpatchutils bc zlib1g-dev
安装toolchain
cd pulp-riscv-gnu-toolchain
./configure --prefix=/data/eda/pulp-toolchain --with-arch=rv32imc--with-cmodel=medlow --enable-multilib
make
这个编译时间会比较久,请耐心等待。
安装好后,到/data/eda/pulp-toolchain’目录下看看是否有东西。
设置环境变量
exportPULP_RISCV_GCC_TOOLCHAIN=/data/eda/pulp-toolchain
exportPATH=${PULP_RISCV_GCC_TOOLCHAIN}/bin:$PATH
第四步build pulp
克隆代码
git clone https://github.com/pulp-platform/pulp
编译代码
cd pulp
source setup/vsim.sh
make checkout
make scripts
make build
编译结果如下
第五步 下载regression和pulp runtime
cd pulp
git clone https://github.com/pulp-platform/regression_tests.git
git clone https://github.com/pulp-platform/pulp-runtime.git
跑仿真
source pulp-runtime/configs/pulp.sh
cd regression_tests/hello
make clean all run gui=1
会自动打开questasim图像界面,然后点"run-all"的图标。
到此我们的pulp 跑起来了。接下来我们将从环境,架构等各方面对pulp进行深入研究。
作者:IC bug 猎人
原文链接:处芯积律
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。