查看: 772|回复: 0
收起左侧

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

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-1-15 13:53
  • 签到天数: 26 天

    [LV.4]

    发表于 2020-8-18 11:31:36 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 新ちゃん 于 2020-8-21 04:08 编辑

    一、相关工具


    系统: 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目录,所有的工作都在这个目录下


       先执行这几步:

    1.    $ git clone https://github.com/ucb-bar/rocket-chip.git
    2.    $ cd rocket-chip
    3.    $ git checkout boom
    4.    $ git submodule update --init
    复制代码


       然后

    1.    $ export RISCV=/work/boom/rocket-chip/riscv-tools/riscv-gnu-toolchain
    2.    $ export PATH="${PATH}:$RISCV/bin"
    3.    $ git clone https://github.com/ucb-bar/rocket-chip.git
    4.    $ cd rocket-chip
    5.    $ git checkout boom
    6.    $ git submodule update --init
    7.    $ cd riscv-tools
    8.    $ git submodule update --init --recursive
    9.    $ ./build.sh
    10.    $ 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环境的建立risc-v单片机中文社区(1)

    完毕。


    本篇完,感谢关注:RISC-V单片机中文网





    上一篇:国产芯回忆录:造光刻的去卖早点,搞 EDA 的去组装电脑
    下一篇:RISC-V中国路演
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-26 00:50 , Processed in 1.071307 second(s), 49 queries .

    快速回复 返回顶部 返回列表