RISC-V学习第一篇 - boom环境的建立

一、相关工具

系统: RHEL 6.8 x64

GCC: 4.8.2

虚拟机; VMware 12

JDK: jdk-8u111-linux-x64


二、步骤

1. 第一步要升级GCC,因为RHEL 6.8的GCC版本好像是4.4.7,在后面建立环境的过程中出错

    按照网上的步骤先把GCC升级到了4.8.2版本,够用就行

    GCC下载地址: http://ftp.gnu.org/gnu/gcc/gcc-4.8.2


    首先需要保证系统内已经装了旧版的gcc和gcc-c++,也就是系统自带的版本,否则后面无法编译gcc的源码包

    然后需要下载编译gcc的依赖包。gcc-4.8.2解压后有个脚本:

    contrib/download_prerequisites

    用这个可以自动完成下载依赖包的步骤,但是我这里下载总是失败,所以我手动下载的,版本一致即可

    这三个依赖包是gmp-4.3.2, mpc-0.8,1, mpfr-2.4.2,这三个在网上很多,一搜便知

    下载后放在gcc-4.8.2解压后的根目录下

    然后我修改了 contrib/download_prerequisites这个文件

    将三行wget开头的文字注释掉,再把rm开头的文字注释掉

    然后执行contrib/download_prerequisites

    此后过程网上有很多

    这一步后,一般是安装三个依赖包和gcc,安装有先后顺序: GMP, MPFR, MPC, GCC

    我在此时没有手动安装三个依赖包,直接升级gcc,也可以过

    但是升级完gcc,在后面再进行到某个步骤时,还是不得不把这三个依赖包装好

    安装glibc-devel

    yum install glibc-devel.i686 glibc-devel

   mkdir gcc-build-4.8.2

   cd gcc-build-4.8.2

   然后用经典的三步:

   ../configure --enable-checking=release --enable-language=c,c++ --disable-multilib

   make

   make install

   最后用gcc -v查看一下版本

 

2.  gcc升级完以后就可以安装boom的环境了

    网址是这个:

    https://github.com/ucb-bar/riscv-boom


    先要安装git和一堆依赖的工具

    yum install git

    yum install texinfo

    yum install bison

    yum install flex

    yum install zlib-devel

    yum install libncurses.so.5

    yum install libX11,so.6

    yum install libXext.so.6

    yum install libSM.so.6

    在这过程中,需要把之前gcc依赖的三个包gmp-4.3.2, mpc-0.8,1, mpfr-2.4.2装上,否则某个东西可能装不上,具体是哪个搞忘了


    然后要安装JDK

    我用的版本是jdk-8u111-linux-x64.tar

    在网上下载解压后,放到/usr/local/jdk1.8.0_111目录下

   然后设置JDK和JRE的环境变量

   export JAVA_HOME=/tools/jdk1.8.0_111   
   export JRE_HOME=${JAVA_HOME}/jre     
   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib     
   export PATH=${JAVA_HOME}/bin:$PATH

   这一步需要注意的是要把jdk1.8.0_111/bin的路径放在$PATH变量前面

   否则,因为系统很可能有个默认的OpenJDK,版本是1.7

   在我这导致的问题是JDK使用的1.8版本,但是运行java的时候,JRE是系统自带的1.7版本,报告版本太低

   最简单的方法就是把自己装的路径放在$PATH前面

    

    接着要升级libstdc++.so.6,否则在编译过程中会报版本太低

    因为gcc已经升级到了4.8.2,已经有了libstdc++.so.6.0.18这个高版本

    系统默认的是libstdc++.so.6.0.13

    所以把链接换一下即可

    cd /usr/lib64

    rm -f libstdc++.so.6

    cp -f /usr/local/lib64/libstdc++.so.6.0.18

    ln -s libstdc++.so.6.0.18 libstdc++.so.6

    也许你的libstdc++.so.6.0.18和我的路径不一样,改用root用户,执行locate libstdc++.so.6.0.18找一下即可


   然后就按照https://github.com/ucb-bar/riscv-boom这个网页的步骤安装环境


   我建立了/work/boom目录,所有的工作都在这个目录下

  

   先执行这几步:

   $ git clone https://github.com/ucb-bar/rocket-chip.git
   $ cd rocket-chip
   $ git checkout boom
   $ git submodule update --init
   然后


   $ export RISCV=/work/boom/rocket-chip/riscv-tools/riscv-gnu-toolchain
   $ export PATH="${PATH}:$RISCV/bin"
   $ git clone https://github.com/ucb-bar/rocket-chip.git
   $ cd rocket-chip
   $ git checkout boom
   $ git submodule update --init
   $ cd riscv-tools
   $ git submodule update --init --recursive
   $ ./build.sh
   $ cd ../emulator; make run CONFIG=BOOMConfig

然后就安装完了


3.  安装完成之后,我们可以照着参考文档来运行

     先要安装vcs

     verdi自己可以选装

     这两个工具的安装请自行百度

 

     接着参考这个文件 

     /work/boom/rocket-chip/README.md

  

    cd emulator

    make


     cd vsim

    make

    这一步应该就会产生RTL代码

    在在vsim/generated_src下

    

    然后make -j4 run-asm-tests是跑单个case的测试

   make -j4 run-bmark-tests是跑benchmarck测试


    生成的波形在vsim/output下,格式为vpd,用dve工具打开

    我这里能看到dhrystone.riscv.vpd的波形

    用dve打开以后,boom core的hier是:

    /TestDriver/testHarness/ExampleRocketTop/coreplex/RocketTile/core

    其interface可能是AXI接口

   

    

 RISC-V学习第一篇 - boom环境的建立_第1张图片



完毕。


还有很多没搞清楚,慢慢看


    

你可能感兴趣的:(CPU,RISC-V)